SEO

  • 블로그 키워드 리서치를 뒤늦게 적용한 5개 글, 실제 수정 사례

    블로그 키워드 리서치를 뒤늦게 적용한 5개 글, 실제 수정 사례

    aidojin.com에 새 글을 올리기 시작하면서, 자연스럽게 이미 올라간 글들이 눈에 걸렸다. ujinify.com에는 2026년 10월 5일부터 글 쓰기 전에 네이버 검색광고 API로 키워드부터 조회하는 규칙이 있었다. aidojin.com에는 그 규칙이 없었다. 새 글부터는 블로그 키워드 리서치를 똑같이 적용하기로 했는데, 그러면 기존 5개 글은?

    무시하기가 좀 찜찜했다. 그래서 점검했다.

    이미 올린 글 5개를 확인했다

    올라간 글은 다섯 개였다. 클로드 스킬 팩트체크, OpenCut 과장분석, Claude Code 한도 절약 팁, MCP 저장소 검증, 유튜브 에이전트 스킬 사기. 이 글들은 블로그 키워드 리서치 없이 쓴 글이었다. 주제가 있으면 그냥 썼다. 검색량을 확인한 적이 없었다.

    문제는 크게 두 종류였다.

    • 검색량이 있는 키워드가 있는데 제목이나 본문에 빠져 있는 경우
    • 아예 검색량 자체가 없는 니치 주제인 경우

    두 번째는 사실 문제가 아니다. 처음부터 검색 유입을 기대할 수 없는 주제였을 뿐이다. 진짜 문제는 첫 번째, 검색량이 있는데 놓친 경우다. 그게 아까웠다.

    네이버 검색광고 API로 블로그 키워드 리서치를 점검하는 방법

    점검 방식은 간단했다. 각 글의 제목과 주제를 보고 후보 키워드를 3~5개씩 뽑는다. 그걸 네이버 검색광고 API의 /keywordstool 엔드포인트(API의 세부 기능 주소, 공식 문서에 전체 스펙이 있다)에 넣어서 PC와 모바일 월 검색량, 경쟁도를 조회한다.

    한 가지 주의할 점이 있다. 키워드에 띄어쓰기가 들어가면 수치가 엉뚱하게 나온다. ‘Claude Code’가 아니라 ‘Claude Code’로 붙여서 조회해야 실제 검색량이 나온다. ujinify.com에서 이미 겪어서 알고 있었다.

    결과는 이렇게 나뉘었다.

    글 판정
    클로드 스킬 팩트체크 수정 가치 명확
    OpenCut 과장분석 수정 가치 명확
    Claude Code 한도 절약 팁 소폭 개선 여지 있음
    MCP 저장소 검증 검색량 없거나 내용과 안 맞음
    유튜브 에이전트 스킬 사기 검색량 없거나 내용과 안 맞음

    검색량이 높은 키워드를 놓친 3개 글, 이렇게 고쳤다

    수정한 글은 세 개다. 하나씩 본다.

    ① 클로드 스킬 팩트체크, ‘클로드 스킬 추천’이 없었다

    이 글의 원래 제목에는 ‘클로드 스킬 추천’이라는 문구가 없었다. 팩트체크 글이니까 ‘추천’이라는 단어를 의도적으로 뺀 건 아니고, 그냥 생각을 못 했다.

    API를 돌려봤더니 ‘클로드스킬추천’의 네이버 검색량이 PC 370, 모바일 90, 합계 460이었다. 경쟁도는 중간. 이 정도면 놓치기 아깝다.

    제목을 ‘클로드 스킬 추천 3가지 팩트체크 — 인스타 릴스 vs 저자 검증 결과’로 바꿨다. 본문과 이미지 alt(이미지 대체 텍스트, 검색엔진이 이미지 내용을 파악하는 데 쓰임)에도 ‘클로드 스킬 추천’을 자연스럽게 추가했다.

    ② OpenCut 과장분석, 한글 표기가 아예 없었다

    이 글은 본문 전체에 ‘OpenCut’이라는 영문 표기만 있었다. 한글 ‘오픈컷’이 단 한 번도 나오지 않았다.

    검색량을 비교해봤다. ‘오픈컷’은 PC 100, 모바일 60, 합계 160이었다. ‘OpenCut’ 영문은 PC 40, 모바일 20, 합계 60. 한글 표기가 두 배 이상 검색된다. 당연한 결과인데, 당연한 걸 놓쳤다.

    제목에 ‘오픈컷(OpenCut)’을 병기했다. 본문에도 한글 표기를 추가했다.

    이미 올린 글 5개에 블로그 키워드 리서치를 거꾸로 적용해봤다 ,  aidojin.com 사례 스크린샷 1

    위는 수정 후 실제 라이브 페이지다. 제목이 ‘오픈컷(OpenCut), 캡컷 오픈소스가 맞나 , 과장 분석’으로 바뀌었고, 대표 이미지는 교체 전이라 아직 옛 제목이 남아 있다. upload.ts가 초기 업로드 때만 썸네일을 생성해서 그렇다. URL 슬러그는 그대로다.

    ③ Claude Code 한도 절약 팁, ‘한도’보다 ‘토큰’이 검색된다

    ‘한도’라는 단어가 제목에 있었다. 그런데 API 조회 결과 ‘클로드코드토큰’의 검색량이 PC 50, 모바일 30, 합계 80으로 경쟁도는 중간이었다. ‘한도’로는 검색되는 사람이 적었다.

    본문이 이미 캐시나 비용 얘기를 많이 다루고 있어서 ‘토큰’이라는 키워드와 내용도 맞았다. 제목의 ‘한도’를 ‘토큰’으로 바꿨다.

    이건 좀 웃겼다. 슬러그(slug, URL 주소에 들어가는 글 이름 부분)가 애초에 ‘token-saving’이었다. 영문 URL은 이미 토큰으로 돼 있는데, 한글 제목만 ‘한도’였던 거다. 뒤늦게 맞춰준 셈이 됐다.

    URL 슬러그를 안 건드린 이유, SEO 손상 방지

    슬러그는 건드리지 않았다. 이유는 단순하다. 이미 색인(인덱싱, 검색엔진이 글을 목록에 등록하는 것)됐거나 어딘가에 공유됐을 수 있는 URL을 바꾸면 그 링크가 전부 죽는다. 키워드 하나 바꾸자고 기존 SEO(검색엔진 최적화) 자산을 날릴 이유가 없다.

    수정은 제목, 메타설명(검색결과에 뜨는 글 요약 문구), 본문 텍스트에만 했다. 워드프레스 REST API(워드프레스와 외부 프로그램이 데이터를 주고받는 통로)로 title 필드만 따로 업데이트했더니 슬러그는 자동으로 유지됐다.

    슬러그를 바꿔야 할 상황이 있다면 그건 처음부터 완전히 잘못 만든 경우뿐이다. 키워드 최적화는 그 이유가 되지 않는다.

    키워드 변경 후 랭크매스 점수가 떨어진 이유와 복구 과정

    예상 못 한 문제가 나왔다. 오픈컷 글의 랭크매스(워드프레스 SEO 플러그인) 점수가 수정 후에 오히려 떨어졌다. 70점이었던 게 66점이 됐다.

    이유는 명확하다. 포커스 키워드를 바꾸면, 기존에 그 키워드에 맞춰 세팅된 밀도·링크 체크가 전부 새 키워드 기준으로 재계산된다. 원래 키워드로는 충분했던 항목들이 새 키워드로는 부족해진다.

    외부 DoFollow 링크(검색엔진에 신뢰를 전달하는 외부 연결)와 내부 링크(같은 사이트 내 다른 글로의 연결), 키워드 밀도(본문에서 특정 키워드가 나오는 비율)를 다시 보강해야 했다.

    본문 문구를 바꿀 때마다 이미지 깨짐 방지 절차도 지켰다. REST API(프로그램 간 통신 방식)로 라이브(실제 서버에 올라간 현재 상태) content.raw를 GET(데이터를 가져오는 요청)해서 그 문자열을 수정하고, PATCH(일부만 수정하는 요청) 직후에 이미지 src를 정규식(특정 패턴을 찾는 코드 표현)으로 전부 뽑아 HEAD 요청(파일이 존재하는지 확인하는 요청)으로 200 응답을 확인했다. 이 절차는 번거롭지만 건너뛰면 이미지가 깨진다. 건너뛰지 않는다.

    최종 결과는 이렇다.

    글 수정 전 점수 수정 후 점수
    클로드 스킬 추천 팩트체크 77 81
    오픈컷 과장분석 70 (한때 66까지 하락) 80
    토큰 절약 팁 79 81
    이미 올린 글 5개에 블로그 키워드 리서치를 거꾸로 적용해봤다 ,  aidojin.com 사례 스크린샷 2

    위는 보강 작업을 끝낸 뒤 오픈컷 글의 실제 랭크매스 에디터 화면이다. 포커스 키워드는 ‘오픈컷’, 점수는 80/100.

    이미 올린 글 5개에 블로그 키워드 리서치를 거꾸로 적용해봤다 ,  aidojin.com 사례 스크린샷 3

    위는 클로드 스킬 추천 글의 실제 랭크매스 에디터 화면이다. 포커스 키워드는 ‘클로드 스킬 추천’, 점수는 81/100.

    블로그 키워드 리서치를 반영한 세 글 모두 80점 이상으로 마무리했다. 오픈컷 글이 제일 손이 많이 갔다.

    검색량 없는 글은 억지로 안 고친다, 판단 기준

    MCP 저장소 검증 글과 유튜브 에이전트 스킬 사기 글은 그대로 뒀다. 검색량이 있는 키워드가 없거나, 있다고 해도 내용과 안 맞았다.

    MCP 저장소 검증 글을 더 자세히 보자. ‘MCP서버’라는 키워드의 네이버 검색량이 340이었다. 숫자만 보면 넣고 싶다. 넣지 않았다. 그 글은 MCP 서버를 추천하는 글이 아니라 특정 저장소 7개를 검증한 글이다. ‘MCP서버’를 제목에 넣으면 클릭베이트(제목으로 클릭을 유도하지만 내용은 다른 것)가 된다.

    ujinify.com 자체도 마찬가지다. ‘CLAUDE.md 정리’나 ‘세션 ID 문제’ 같은 글들은 검색량이 거의 없다. 그렇다고 그 글들이 쓸모없는 건 아니다. 키워드 우선 규칙은 검색량이 있을 때 그걸 놓치지 말자는 거다. 검색량 없는 주제에 키워드를 억지로 끼워 맞추라는 규칙이 아니다.

    블로그 키워드 리서치의 판단 기준은 하나다. 넣었을 때 글의 내용이 그 키워드를 검색한 사람의 기대에 부합하는가. 부합하면 넣는다. 아니면 안 넣는다.

    처음부터 키워드를 보고 쓴 사례는 클로드 스킬 추천 글에서 이미 해봤다. 다음에는 그 과정을 아예 처음부터 기록해볼 생각이다. 뒤늦게 고치는 것보다 처음에 맞추는 게 훨씬 덜 번거롭다는 걸, 이번에 확실히 알았다.

  • 랭크매스 포커스 키워드, wp.data로 직접 넣는 법

    랭크매스 포커스 키워드, wp.data로 직접 넣는 법

    ujinify.com 업로드 스크립트가 REST API(Application Programming Interface, 외부에서 워드프레스 데이터를 주고받는 통로)로 랭크매스 포커스 키워드를 보내고 있었다. 응답도 200이 왔다. 에러도 없었다. 그런데 글을 열어보면 포커스 키워드 칸이 비어 있다.

    조용히 무시당한 거다. 한동안 이걸 몰랐고, 그동안은 글마다 에디터를 열어서 손으로 키워드를 입력했다. 글이 늘수록 이게 제일 귀찮은 수작업이었다.

    이 글은 그 문제를 해결한 방법을 정리한다. wp.data라는 워드프레스 내부 저장소(앱 안에서 데이터를 관리하는 공간)를 직접 건드리는 방식이다.

    REST API가 랭크매스 포커스 키워드를 무시하는 이유

    REST API로 글을 저장할 때 meta 필드에 rank_math_focus_keyword를 넣으면 된다고 생각했다. 실제로 그렇게 했다. 그리고 저장은 됐다. 응답 코드도 200이었다.

    랭크매스가 이 값을 받아도 포커스 키워드로 반영하지 않는다. 에러를 주지도 않는다. 그냥 없는 것처럼 동작한다.

    정확한 내부 원인까지는 확인하지 못했다. 확인한 건 하나다. 랭크매스의 점수 계산 엔진(SEO 점수를 계산하는 프로그램)이 브라우저 자바스크립트(JavaScript, 웹 브라우저에서 실행되는 프로그래밍 언어)로 돌아가서, 에디터 화면을 열었을 때만 점수가 계산된다. 키워드도 그 화면 안에서 넣으면 들어갔다.

    스크립트가 이걸 감지해서 경고는 띄워주게 됐지만, 근본 해결은 아니었다. 에디터를 열고 직접 넣는 수밖에 없었다. 그러다 자동화할 방법을 찾기 시작했다.

    wp.data 저장소에서 랭크매스 액션 찾기

    wp-admin(워드프레스 관리자 화면) 글 에디터를 열어둔 상태에서 시작했다.

    이 글의 코드는 브라우저 개발자 도구 콘솔(Console, 코드를 직접 실행할 수 있는 창)에 그대로 붙여 넣어도 돌아가는 코드다. 나는 같은 코드를 Playwright(브라우저 자동 조종 도구)로 실행했다. 워드프레스 블록 에디터는 wp.data라는 내부 저장소 시스템을 쓴다. 워드프레스 공식 문서에도 나오는 방식이다. 플러그인도 여기에 자기 저장소를 등록할 수 있다. 랭크매스도 그렇게 했다.

    콘솔에 이렇게 입력하면 랭크매스 저장소에 접근할 수 있다.

    wp.data.select('rank-math')

    그리고 액션(Action, 저장소에 변경을 가하는 명령)을 확인하려면 이렇게 입력한다.

    wp.data.dispatch('rank-math')

    여기서 액션이 87개나 나왔다. 이름을 하나씩 보다가 바로 눈에 띄는 게 있었다. updateKeywords, updateDescription, updateSerpDescription, updateTitle. 이름만 봐도 뭘 하는지 명확했다.

    아래 스크린샷은 이 방식으로 값을 넣은 글의 에디터 화면이다. 오른쪽 랭크매스 패널에 포커스 키워드와 점수(78/100)가 들어가 있다.

    랭크매스 포커스 키워드가 REST로 안 들어갈 때, wp.data로 직접 넣는 법 스크린샷 1

    액션 이름은 랭크매스 버전에 따라 바뀔 수 있다. 지금 여기서 나열하는 이름들은 현재 ujinify.com에 설치된 랭크매스에서 직접 확인한 것들이다. 버전이 다르면 이름이 달라질 수 있으니 반드시 직접 확인해야 한다.

    updateKeywords로 포커스 키워드 직접 입력하기

    확인했으니 바로 써봤다. 콘솔에서 이렇게 입력했다.

    wp.data.dispatch('rank-math').updateKeywords('세션 ID')

    포커스 키워드 칸에 바로 들어갔다. 4초쯤 기다렸더니 랭크매스 점수가 22점에서 71점으로 뛰었다.

    이게 맞는 방법이었다. REST API를 우회해서 에디터가 직접 받아서 처리하는 경로로 넣는 거다.

    저장까지 마치려면 core/editor(워드프레스 에디터의 핵심 저장소)의 savePost()를 써야 한다. 비동기 함수라서 await를 붙여서 호출했다.

    await wp.data.dispatch('core/editor').savePost()

    내가 쓴 순서는 이렇다. updateKeywords를 먼저 호출하고, 점수 갱신을 잠깐 기다린 뒤, savePost()로 저장했다.

    updateDescription, updateTitle로 다른 메타데이터 채우기

    포커스 키워드만 넣었는데 점수가 71점이었다. 메타 설명(검색 결과에 표시되는 글 요약문)이 비어 있었다.

    updateDescription으로 메타 설명을 넣었더니 73점이 됐다.

    wp.data.dispatch('rank-math').updateDescription('여기에 메타 설명 텍스트를 넣는다')

    같은 방식으로 SEO 제목도 바꿀 수 있다.

    wp.data.dispatch('rank-math').updateTitle('여기에 SEO 제목을 넣는다')

    updateSerpDescription도 있었는데, SERP에 표시되는 설명을 따로 관리하는 액션이다. 저장소에 이름이 있으니 확인해두면 된다.

    이후 본문 첫 10% 안에 키워드가 없다는 항목이 걸려 있어서 첫 문단에 문장을 하나 추가했다. 긴 문단을 쪼개고, 제목이 키워드로 시작하게 순서를 바꿨다. 첫 번째 글은 최종 76점까지 올라갔다. 두 번째 글은 70점에서 시작해서 본문에 실제 캡처 이미지 2장을 추가했더니 78점이 됐다.

    아래 스크린샷은 랭크매스 패널의 항목 목록이다. 통과 항목은 초록, 감점 항목은 빨강이다. URL 항목이 빨간색으로 남아 있다.

    랭크매스 포커스 키워드가 REST로 안 들어갈 때, wp.data로 직접 넣는 법 스크린샷 2

    점수 갱신이 늦거나 예전 값이 나올 때 확인법

    헷갈리는 지점이 있었다. window.rankMathEditor.resultManager.getResults()로 테스트 통과 여부를 읽었는데, 키워드가 제목에도 본문에도 분명히 있는데 전부 false로 나왔다.

    화면 항목 목록에는 ‘제목에 포커스 키워드를 사용하고 있습니다’가 통과로 표시돼 있었다. 이 값은 갱신이 늦거나 예전 스냅샷(특정 시점의 데이터 복사본)을 돌려주는 거였다. 그래서 getResults() 반환값은 신뢰하지 않기로 했다. 화면에 보이는 항목 목록을 기준으로 삼는다.

    또 하나. 통과(has: true)로 표시돼도 점수가 다 들어오지 않는 항목이 있다. 이미지 항목은 1/6점, 본문 길이는 2/8점처럼 부분 점수로 처리되는 경우가 있었다. 점수가 기대보다 낮게 나오면 이걸 먼저 확인해야 한다. 통과 여부만 보고 끝내면 안 된다.

    화면에 뜬 점수와 데이터베이스에 저장된 점수가 다를 수도 있다. 저장 후에는 REST API로 get-post-seo-meta를 조회해서 DB에 실제로 반영된 점수를 따로 확인해야 한다. 이 단계를 빼면 안 된다. 화면 숫자만 믿다가 나중에 데이터가 다른 걸 발견하면 그때는 더 번거롭다.

    이 방법의 한계와 실제 적용 시 주의점

    이 방법에는 명확한 한계가 있다. 숨기지 않겠다.

    • 브라우저 에디터를 열어야 한다. REST API나 MCP(Model Context Protocol, AI 도구가 외부 서비스에 명령을 보내는 통신 방식)만으로는 동작하지 않는다. 점수 계산 엔진이 브라우저 자바스크립트라서, 에디터 화면이 열려 있어야 실행된다.
    • 액션 이름이 버전마다 다를 수 있다. updateKeywords, updateDescription 같은 이름은 현재 내 사이트 랭크매스에서 직접 확인한 것들이다. 업데이트 후에 이름이 바뀌면 동작하지 않는다. 사용 전에 반드시 wp.data.dispatch('rank-math')를 콘솔에서 직접 실행해서 목록을 확인해라.
    • 저장 후 DB 값을 반드시 확인해야 한다. 화면 점수와 실제 DB에 저장된 점수가 다를 수 있다. REST API로 get-post-seo-meta를 조회하는 단계를 절대 생략하지 마라.
    • 올릴 수 없는 점수가 존재한다. URL에 한국어 키워드가 없는 항목(5점), 유료 Content AI 항목(5점)은 구조적으로 올리기 어렵거나 올리지 않을 항목이다. 이 점수를 제외하면 실제 달성 가능한 최대치는 처음부터 그만큼 낮다.

    수작업으로 키워드를 하나씩 입력하는 것보다는 낫다. 하지만 완전 자동화는 아니다. 에디터 화면을 열고 콘솔에서 코드를 실행하는 단계는 여전히 남는다.

    지금은 이 정도로 쓰고 있다.

    랭크매스 점수가 왜 에디터를 열어야 계산되는지는 랭크매스 SEO 16점→76점 글에, 같은 결의 버그 다섯 개는 워드프레스 SEO 버그 5개 총정리에 정리해뒀다.

    같은 랭크매스 주제로 이어서 읽으면 좋은 글: 랭크매스 무료 기능으로 고아 포스트 2개 찾아낸 이야기, 메타 설명 오류 — 색인됐는데 검색 안 되던 이유.

  • 워드프레스 SEO 버그 5개, curl로 찾은 공통 원인

    워드프레스 SEO 버그 5개, curl로 찾은 공통 원인

    블로그에 글이 15개쯤 쌓였을 때 돌아봤다. 그중 5개가 전부 워드프레스 SEO 설정을 자동화하거나 고치다가 만난 버그 이야기였다. 흩어져 있으니까 불편했다. 나중에 비슷한 문제를 다시 만났을 때 어느 글을 찾아야 할지 헷갈렸다. 그래서 한 페이지에 몰아서 정리하기로 했다.

    설정을 저장했는데도 작동하지 않은 이유

    다섯 개를 나란히 놓고 보니까 패턴이 보였다. 전부 같은 이야기였다.

    ‘설정 화면에 값이 있다고 해서 실제로 그게 적용되고 있다는 보장은 없다.’

    WPCode에서는 코드를 저장했는데 실제로는 깨진 채로 배포됐다. 랭크매스에서는 홈페이지 메타 설명을 입력해도 워드프레스 읽기 설정 때문에 그 값이 조용히 무시됐다. REST API(워드프레스에 데이터를 보내고 받는 통로)로 포커스 키워드를 보내도 저장이 안 되는 경우도 여러 번 있었다.

    관리자 화면의 저장 성공 메시지, REST API의 200 응답, 설정 페이지에 입력된 값. 이런 것들은 전부 ‘내가 뭔가를 입력했다’는 증거일 뿐이다. ‘그게 실제로 작동하고 있다’는 증거가 아니다.

    아래 다섯 개가 그 증거다.

    버그 1: 랭크매스 점수가 재계산되지 않는 이유 (16점→76점의 함정)

    랭크매스(워드프레스용 SEO 플러그인)가 매기는 SEO 점수가 16점이었다. 뭘 고쳐야 할지 몰랐다. 점수만 보면 아무것도 알 수 없었다.

    처음에는 REST API로 점수를 강제로 재계산시키려고 했다. 여기서 함정에 빠질 뻔했다. API 응답은 200으로 떴다. 성공처럼 보였다. 그런데 실제 점수는 그대로였다.

    원인은 단순했다. 랭크매스 SEO 점수는 wp-admin(워드프레스 관리자 에디터 화면)을 직접 열어야 제대로 계산된다. API로 우회하면 점수가 갱신되지 않는다. 에디터를 열고 나서야 점수가 76점으로 올라갔다.

    이 경험에서 배운 것은 하나다. API 응답이 성공이어도 실제 결과를 화면에서 직접 확인해야 한다. 200은 ‘요청이 도착했다’는 뜻이지 ‘원하는 대로 됐다’는 뜻이 아니다.

    → 전체 진단 과정: 랭크매스 SEO 16점→76점, API 함정 피하고 올린 과정

    버그 2: WPCode 보안 헤더가 깨지는 현상 (저장은 됐는데 적용 안 됨)

    WPCode(워드프레스에 코드 조각을 추가하는 플러그인)로 보안 헤더(Security Header, 브라우저에 보안 정책을 전달하는 HTTP 응답값)를 추가했다. PHP 코드 스니펫(snippet, 짧은 코드 조각)을 넣고 저장했다. 저장 성공 메시지가 떴다.

    그런데 실제로는 헤더가 적용되지 않고 있었다.

    curl(터미널에서 웹 페이지 응답을 직접 확인하는 명령어)로 라이브 페이지 응답 헤더를 확인하고 나서야 알았다. 보안 헤더가 없었다. 원인은 사소한 문법 오류였다. PHP 코드 안에 오타가 있었고, 그 오류 때문에 코드 전체가 실행되지 않았다.

    저장 성공 메시지만 보고 넘어갔으면 계속 몰랐을 거다. WPCode는 코드 내용의 오류를 검증하지 않는다. 저장 자체는 항상 성공한다. 그래서 더 위험하다.

    보안 설정을 추가한 뒤에는 반드시 curl로 응답 헤더를 직접 확인해야 한다. 저장 성공 메시지를 믿지 마라.

    curl -I https://내-사이트-주소.com

    위 명령어를 터미널에 입력하면 응답 헤더 목록이 나온다. 추가한 헤더 이름이 거기 있어야 진짜 적용된 거다.

    → 전체 진단 과정: WPCode로 보안 헤더 추가하다 코드가 깨진 이유

    버그 3~4: fire-your-seo-agency와 AI Link Genius로 만난 예상 밖의 문제들

    fire-your-seo-agency는 Claude Code에서 쓸 수 있는 스킬(skill, AI에게 특정 작업 방식을 지정하는 설정)이다. 이걸로 블로그 4개를 한꺼번에 SEO 점검했다.

    중간에 파일이 세 번 중복으로 받아지는 해프닝이 있었다. 이건 좀 웃겼다. 그래도 생각보다 빠르게 끝났다. 스킬 하나로 블로그 4개를 동시에 점검한다는 게 실제로 되는 일이라는 걸 이때 처음 확인했다.

    → 전체 진단 과정: fire-your-seo-agency 스킬로 4개 블로그 자동 SEO 최적화한 후기

    네 번째 버그는 AI Link Genius 이야기다. AI Link Genius는 랭크매스 안에 있는 내부 링크 분석 기능이다. 설치는 해놨는데 한 번도 안 써봤다. 어느 날 다시 살펴보다가 고아 포스트(Orphan Post, 다른 글에서 링크를 하나도 받지 못한 글)가 2개 있다는 걸 발견했다.

    그 글들은 검색 엔진이 찾아오기 어려운 상태였다. 내부 링크를 걸어주고 나서야 제대로 연결됐다.

    → 전체 진단 과정: 랭크매스 무료 기능으로 고아 포스트 2개 찾아낸 이야기

    이 두 버그에서 공통으로 배운 게 있다. 설치는 해놨지만 한 번도 안 써본 플러그인 기능이 있는지 주기적으로 점검해야 한다. 있는 기능을 모르고 있으면 없는 거나 마찬가지다.

    버그 5: 메타 설명이 검색엔진에 반영 안 되는 이유 (읽기 설정의 함정)

    홈페이지가 색인됐는데 메타 설명이 이상했다. 랭크매스에 분명히 입력해뒀는데, 검색 결과에 다른 문구가 나왔다.

    ‘색인 = 노출’이라고 착각하고 있었다. 아니었다. 색인됐어도 메타 설명이 틀리면 검색 결과가 이상하게 보인다.

    원인은 워드프레스 읽기 설정이었다.

    워드프레스 관리자 화면 → 설정 → 읽기 에서 홈페이지 표시가 ‘최신 글’로 설정되어 있으면, 랭크매스에 입력한 홈페이지 메타 설명이 무시된다. 대신 워드프레스 기본 태그라인이 메타 설명 자리에 들어간다.

    랭크매스 설정 화면에는 분명히 내가 쓴 문구가 있었다. 그런데 실제 HTML에는 태그라인이 들어가 있었다. curl로 확인하기 전까지 몰랐다.

    curl -s https://내-사이트-주소.com | grep -i "meta name=\"description\""

    위 명령어로 실제 HTML에 박힌 메타 설명을 확인할 수 있다. 설정 화면에 뭐가 적혀 있든 상관없다. 이 결과가 진짜다.

    홈페이지 메타 설명을 제대로 쓰려면 읽기 설정에서 ‘정적 페이지’를 선택하고 홈페이지를 지정해야 한다. 그래야 랭크매스가 입력한 값을 실제로 가져다 쓴다.

    → 전체 진단 과정: 메타 설명 오류 — 색인됐는데 검색 안 되던 이유

    다음 버그를 빨리 찾는 4가지 확인 순서 (curl 포함)

    다섯 번을 겪고 나서 확인 순서가 생겼다. 비슷한 문제를 만나면 이 순서로 본다.

    • 첫째, 설정을 저장한 뒤 바로 curl로 라이브 페이지를 확인한다. 저장 성공 메시지는 신뢰하지 않는다. curl -s 주소 | grep 확인할내용 으로 실제 HTML에 반영됐는지 바로 본다.
    • 둘째, REST API 응답이 200이어도 응답 바디를 다시 읽는다. 200은 요청이 도착했다는 뜻이다. 원하는 처리가 됐다는 뜻이 아니다. 응답 안에 실제로 뭐가 담겨 있는지 확인해야 한다.
    • 셋째, 설정 화면 말고 ‘진짜 소스’가 따로 있는지 의심한다. 워드프레스는 표면 설정 화면 뒤에 그 값을 실제로 가져다 쓰는 다른 설정이 있을 수 있다. 읽기 설정과 태그라인이 그 예다. 플러그인 설정만 보면 안 된다.
    • 넷째, 설치는 해놨지만 한 번도 안 써본 플러그인 기능을 주기적으로 점검한다. AI Link Genius처럼, 있는 기능인지 모르고 넘어간 것들이 반드시 있다.

    이 네 가지는 순서대로 해야 빠르다. 첫째를 건너뛰고 셋째부터 보다가 시간을 날린 적이 있다. 순서를 지켜라.

    지금은 5개지만, 앞으로 비슷한 버그를 만날 때마다 이 글에 추가할 생각이다. 워드프레스 SEO 설정을 직접 만지다가 막히는 사람에게 이 페이지가 첫 번째 참고 지점이 됐으면 한다. 경험이 쌓일수록 이 목록도 길어질 거다.

    같은 워드프레스 주제로 이어서 읽으면 좋은 글: 대표 이미지가 잘리는 이유 , 템플릿 비율 3:2→16:9 차이, 이미지가 삐져나가는 버그, 원인 찾고 자동화까지 한 후기, 워드프레스 SEO 플러그인 충돌 피하기 , 켜야 할 것, 꺼야 할 것.

  • 랭크매스 무료 기능으로 고아 포스트 2개 찾아낸 이야기

    랭크매스 무료 기능으로 고아 포스트 2개 찾아낸 이야기

    고아 포스트(orphan post, 블로그 안에서 어떤 글로부터도 링크를 받지 못한 글)라는 게 있는지도 몰랐다.

    GEO(생성형 AI 검색 최적화) 감사를 마친 뒤, 문득 이런 생각이 들었다. 설치는 해놨는데 한 번도 제대로 열어본 적 없는 플러그인 기능이 더 있지 않을까.

    설치만 했던 랭크매스 플러그인을 다시 열어본 이유

    워드프레스 대시보드(관리자 화면)를 처음부터 훑기 시작했다. 사이트킷, Converter for Media, Head & Footer Code — 하나씩 열어보고 실제로 쓰고 있는 기능인지 확인했다. 그러다 마지막으로 랭크매스 SEO 메뉴를 열었다.

    랭크매스는 검색 엔진 최적화(SEO, Search Engine Optimization)를 도와주는 워드프레스 플러그인이다. 설치한 지는 꽤 됐는데, 메뉴 안에 뭐가 있는지 전부 눌러본 적은 없었다.

    그 날 처음으로 ‘AI Link Genius’라는 항목을 발견했다.

    AI Link Genius란 뭐고 왜 무료 기능인 줄 몰랐을까

    이름 때문에 바로 닫으려 했다. ‘AI’가 들어간 기능은 랭크매스에서 전부 PRO(유료) 전용이었다. 실제로 AI Visibility 같은 다른 기능들을 확인해봤을 때는 전부 샘플 데모 데이터만 보여주고, 실제 데이터는 유료 플랜으로 업그레이드해야 쓸 수 있는 구조였다.

    그냥 넘기지 않고 일단 눌러봤다.

    작동했다. 실제 데이터가 나왔다. AI Link Genius는 무료로 쓸 수 있는 기능이었다.

    설치돼 있던 랭크매스 무료 기능 하나가 실제 고아 포스트를 찾아준 이야기 스크린샷 1

    위 화면이 처음 열었을 때 보인 AI Link Genius 메인 화면이다. 블로그에 올라와 있는 글마다 내부 링크(같은 블로그 안의 다른 글로 연결되는 링크), 외부 링크(다른 사이트로 연결되는 링크) 개수를 보여줬다.

    그리고 들어오는 링크(다른 글에서 이 글로 연결해주는 링크) 개수도 테이블(표) 형태로 함께 보여줬다.

    그리고 그 위에 ‘Orphan Posts(고아 포스트)’라는 필터가 있었다. 들어오는 내부 링크가 단 하나도 없는 글만 따로 골라서 보여주는 필터다. 이름이 좀 직접적이긴 한데, 맞는 표현이다.

    Orphan Posts 필터로 발견한 숨겨진 2개 글

    Orphan Posts 필터를 눌렀다. 글 2개가 걸렸다.

    하나는 WPCode(워드프레스에 코드 조각을 쉽게 추가하는 플러그인) 보안 헤더 트러블슈팅(문제 해결) 글이었다. 다른 하나는 블로그 자동 크로스포스팅(여러 플랫폼에 글을 동시에 게시하는 자동화)을 보류한 이유를 정리한 글이었다.

    설치돼 있던 랭크매스 무료 기능 하나가 실제 고아 포스트를 찾아준 이야기 스크린샷 2

    위 화면처럼 두 글 모두 들어오는 링크 수가 0이었다. 글 자체는 멀쩡했다. 점수도 괜찮고, 내용도 문제없고, 검색 결과에도 나왔다. 근데 블로그 안의 어떤 글에서도 이 두 글로 이어주는 링크가 하나도 없었다.

    이런 상태가 얼마나 됐는지도 몰랐다. 그게 더 문제였다. 겉으로는 아무 티도 안 난다.

    내부 링크가 없는 글을 직접 고치는 방법

    방법 자체는 단순하다. 각 글과 내용상 관련 있는 기존 글을 하나 찾아서, 그 글 본문 끝에 자연스러운 문장 한 줄을 추가하고 거기에 링크를 걸면 된다.

    블로그 자동화 파이프라인(여러 작업을 순서대로 자동 처리하는 흐름)을 소개한 글 끝에는 크로스포스팅을 보류한 이유로 이어지는 문장을 넣었다. 이미지 버그를 고친 글 끝에는 비슷한 트러블슈팅 사례로 WPCode 글을 연결했다.

    실제 수정은 워드프레스 에디터(편집 화면)의 DOM(웹페이지의 구조를 나타내는 트리 구조)을 직접 건드리는 대신, wp.data 블록 스토어(워드프레스 블록 편집기의 데이터 저장소)를 통해 수정하고 저장하는 방식을 썼다.

    설치돼 있던 랭크매스 무료 기능 하나가 실제 고아 포스트를 찾아준 이야기 스크린샷 3

    저장 후에는 그냥 믿고 끝내지 않았다. curl(터미널에서 URL을 직접 불러오는 명령어)로 실제 라이브 페이지(공개된 실제 블로그 주소)를 직접 긁어서, 링크 태그가 HTML에 들어가 있는지 눈으로 확인했다.

    이 확인 과정은 빠뜨리지 말아야 한다. 저장했다고 반드시 반영됐다는 보장은 없다.

    이 경험에서 배운 두 가지 교훈

    첫 번째. 플러그인 이름만 보고 ‘유료겠지’ 하고 넘기면 안 된다. 이번에 AI Link Genius를 그냥 넘겼으면 고아 포스트가 있는지도 몰랐을 거다. 실제로 열어봐야 안다. 이름은 힌트가 아니다.

    두 번째. 내부 링크가 없는 글은 겉으로 멀쩡하다. 글이 깨져 있거나 오류가 나는 게 아니다. 그냥 평범하게 잘 나온다. 이런 도구로 따로 점검하지 않으면 계속 모르고 지나간다. 실제로 나는 그 두 글을 쓴 뒤로 한 번도 문제라고 인식한 적이 없었다.

    랭크매스 메뉴를 전부 열어본 건 이번이 처음이다. 아직 안 열어본 항목이 있을 수도 있다. 다음엔 거기부터 본다.

    고아 포스트 문제는 사이트가 커질수록 더 자주 생긴다. 글이 몇 개 없을 땐 서로 자연스럽게 링크가 이어지는데, 글이 쌓이다 보면 예전에 쓴 글은 잊어버리고 새 글만 계속 쓰게 된다. 그러다 보면 좋은 내용을 담은 글인데도 아무도 찾아 들어올 경로가 없는 글이 하나둘 생긴다.

    검색엔진 입장에서도 마찬가지다. 내부 링크가 하나도 없는 페이지는 사이트 안에서 중요도가 낮다고 판단할 수 있다. 그래서 이번처럼 주기적으로 고아 포스트를 점검하는 게 트래픽 관리에서도 의미가 있다. 랭크매스 공식 문서에서도 내부 링크 구조를 정기적으로 점검하라고 권장한다.

    이 문제는 워드프레스 SEO 버그 5개 총정리 글에도 다른 4개 사례와 함께 정리해뒀다.

    같은 랭크매스 주제로 이어서 읽으면 좋은 글: 랭크매스 포커스 키워드, wp.data로 직접 넣는 법, 랭크매스 SEO 16점→76점, API 함정 피하고 올린 과정, 메타 설명 오류 , 색인됐는데 검색 안 되던 이유.

    키워드를 뒤늦게 끼워 맞춘 사례는 블로그 키워드 리서치를 뒤늦게 적용한 5개 글, 실제 수정 사례에 따로 정리했다.

  • 랭크매스 SEO 16점→76점, API 함정 피하고 올린 과정

    랭크매스 SEO 16점→76점, API 함정 피하고 올린 과정

    처음 랭크매스 점수를 확인했을 때 16점이 떴다. 대표 이미지도 넣었고, 카테고리도 설정했다. 뭘 더 해야 하는지 몰랐다.

    다 설정했는데도 랭크매스 점수가 16점에서 안 움직인 이유

    이상했다. 분명히 다 채웠는데 점수가 꼼짝을 안 했다. 처음엔 랭크매스 플러그인(워드프레스에 설치해서 SEO를 관리하는 도구) 자체 문제인가 싶었다.

    원인은 다른 데 있었다. API(Application Programming Interface, 프로그램끼리 데이터를 주고받는 통로)로 포커스 키워드(검색엔진에 “이 글은 이 단어에 집중합니다”라고 알려주는 핵심 단어)를 설정했는데, 그게 실제 랭크매스 에디터(글을 작성하고 편집하는 화면) 화면에는 반영이 안 되고 있었다. 코드로는 값을 넣었다. 근데 랭크매스는 그걸 모르는 상태였다.

    겉으로는 다 설정된 것처럼 보였다. 실제 점수는 그대로였다. 이 두 가지가 동시에 사실이었다.

    API로 설정한 SEO 정보, 실제로는 먹히지 않는다?

    먹히지 않는다. 적어도 랭크매스 점수 계산에는.

    Claude Code 같은 AI 도구로 워드프레스 API를 통해 글을 발행할 때, SEO 관련 메타(meta, 글의 제목·설명·키워드 같은 부가 정보) 값을 함께 넣을 수 있다. 기술적으로는 데이터가 전달된다. 문제는 랭크매스가 점수를 다시 계산하지 않는다는 거다.

    wp-admin(워드프레스 관리자 페이지) 에디터를 직접 열어보지 않으면 이걸 알 방법이 없다. 포커스 키워드 입력란이 비어 있다. 점수는 16점. API로 아무리 잘 넣어도 랭크매스 입장에선 설정 안 된 상태다.

    이거 모르고 그냥 발행했으면 SEO 점수가 낮은 채로 글이 올라갈 뻔했다. 실제로 그럴 뻔했다.

    랭크매스 점수 16점에서 76점까지 끌어올린 실제 화면

    위 화면이 그 상태다. API로 다 넣었다고 생각했는데, 에디터에서 확인하면 포커스 키워드 칸이 비어 있고 점수는 16점 그대로다.

    에디터에서 포커스 키워드를 직접 입력했을 때 점수가 폭발한 이유

    wp-admin에서 해당 글을 열었다. 랭크매스 패널(화면 한쪽에 붙어 있는 설정 영역)을 찾아서 포커스 키워드를 직접 손으로 입력했다. 저장했다.

    16점에서 57점이 됐다.

    한 단어 입력이 41점을 올렸다. 이게 왜 가능하냐면, 랭크매스는 포커스 키워드를 기준으로 점수를 계산하기 때문이다. 키워드가 없으면 제목에 키워드가 있는지, 본문에 키워드가 있는지 아무것도 판단을 못 한다. 기준이 생기자마자 이미 작성된 글의 내용들이 한꺼번에 점수에 반영된 거다.

    API 설정이 쓸모없다는 게 아니다. 랭크매스 점수 계산만큼은 에디터 직접 입력이 기준이라는 거다. 이 차이를 모르면 계속 헤맨다.

    57점에서 76점까지, 하나씩 고쳐가며 올린 체크리스트

    57점에서 멈추지 않았다. 뭘 더 고쳐야 하는지 랭크매스가 항목별로 알려준다. 하나씩 고쳤다. 찔끔찔끔 올랐다. 이 과정이 은근히 나쁘지 않았다. 뭘 고쳤을 때 점수가 오르는지 직접 눈으로 보니까.

    • SEO 제목(검색 결과에 표시되는 글 제목)에 포커스 키워드 포함 — 제목 앞쪽에 키워드가 있어야 한다.
    • 메타 설명(검색 결과에서 제목 아래 뜨는 짧은 소개글)에 키워드 포함 , 키워드가 자연스럽게 들어가야 한다. 억지로 끼워 넣는 느낌이면 별로다.
    • 본문 시작 부분에 키워드 포함 , 글 앞쪽 한두 문단 안에 키워드가 나와야 한다.
    • 소제목(h2, h3 태그로 표시되는 중간 제목)에 키워드 포함 , 모든 소제목에 다 넣을 필요는 없다. 한두 군데면 된다.
    • 내부 링크(같은 사이트 안의 다른 글로 연결하는 링크) 1개 추가
    • 외부 링크(다른 사이트로 연결하는 링크) 1개 추가

    이 여섯 가지를 순서대로 적용했다. 76점까지 올랐다. 한 번에 다 한 게 아니라, 하나 고치고 저장하고 점수 확인하고, 다시 고치는 식으로 진행했다.

    완벽한 100점을 목표로 하지 않아도 된다. 랭크매스 기준으로 70점 이상이면 초록색으로 바뀐다. 76점이면 충분하다.

    API vs 에디터 직접 설정의 차이와 확인 방법

    정리하면 이렇다.

    구분 API 설정 에디터 직접 설정
    데이터 저장 된다 된다
    랭크매스 점수 반영 안 된다 된다
    포커스 키워드 인식 안 된다 된다
    확인 방법 wp-admin 에디터 열어봐야 앎 저장하면 바로 점수 업데이트

    확인 방법은 하나다. wp-admin에서 해당 글의 편집 화면을 직접 열어라. 랭크매스 패널이 보이면 포커스 키워드 칸이 채워져 있는지 확인해라. 비어 있으면 API 설정은 점수에 아무 영향이 없는 상태다.

    API로 글을 자동 발행하는 워크플로(작업 흐름)를 쓰고 있다면, 발행 후에 반드시 wp-admin에서 한 번 더 열어서 SEO 설정을 수동으로 확인해야 한다. 귀찮다. 근데 안 하면 낮은 점수로 그냥 올라간다.

    자동화가 전부를 해결해주지는 않는다. 이번에 그걸 배웠다. 다음엔 발행 체크리스트에 “wp-admin SEO 확인” 항목을 아예 넣어둘 생각이다. 결국 랭크매스 점수 하나 때문에 발행 프로세스 자체를 다시 점검하게 됐다.

    이 문제는 워드프레스 SEO 버그 5개 총정리 글에도 다른 4개 사례와 함께 정리해뒀다.

    같은 랭크매스 주제로 이어서 읽으면 좋은 글: 랭크매스 포커스 키워드, wp.data로 직접 넣는 법, 랭크매스 무료 기능으로 고아 포스트 2개 찾아낸 이야기, 메타 설명 오류 , 색인됐는데 검색 안 되던 이유.