← EonsFlow

색인 요청이 200을 주는데 색인이 안 됩니다 — Google Indexing API 의 진짜 용도

2026년 8월 31일

색인 요청 결과가 매번 성공으로 찍히는데 실제 색인 수는 그대로였습니다. 권한 문제도, 인증 문제도 아니었습니다. 구글이 요청을 받은 뒤 그냥 버리고 있었습니다.

성공인데 성공이 아닙니다

urlNotifications:publish에 일반 블로그 글 주소를 보내면 HTTP 200이 돌아옵니다. 그런데 응답을 자세히 보면 이상합니다.

// 정상 접수라면 이렇게 옵니다
{
  "urlNotificationMetadata": {
    "url": "https://example.com/page/",
    "latestUpdate": {
      "url": "https://example.com/page/",
      "type": "URL_UPDATED",
      "notifyTime": "2026-08-31T02:10:44.123Z"   // 접수 시각
    }
  }
}

// 실제로 받은 응답
{
  "urlNotificationMetadata": {
    "url": "https://example.com/page/"           // 주소만 메아리처럼 돌아온다
  }
}

notifyTime이 없습니다. 접수 시각이 없다는 건 접수가 안 됐다는 뜻입니다. 확인해 보려고 곧바로 조회를 걸면 더 분명해집니다.

GET /v3/urlNotifications/metadata?url=…

404  "Requested entity was not found."

방금 200을 받은 주소인데 기록 자체가 없습니다. "받고 무시"가 아니라 "받은 척하고 버림"에 가깝습니다.

권한 문제였다면 다른 코드가 옵니다

서비스 계정이 사이트 소유자로 등록되지 않았다면 403 Permission denied가 옵니다. 인증이 잘못됐으면 401입니다. 200을 받았다는 건 인증과 권한은 통과했다는 뜻이라, 이 방향으로 계속 파면 시간만 씁니다.

이 API 는 원래 두 가지 용도로만 만들어졌습니다

공식 문서에 명시돼 있습니다. Indexing API가 지원하는 페이지는 다음뿐입니다.

지원 대상용도
JobPosting 구조화 데이터가 있는 페이지채용 공고
VideoObject 안에 BroadcastEvent가 임베드된 페이지라이브 스트리밍

둘 다 수명이 짧아서 빠른 갱신이 중요한 콘텐츠입니다. 마감된 채용 공고나 끝난 라이브를 검색 결과에 남겨두면 곤란하니 별도 통로를 열어 준 것입니다. 일반 블로그 글은 애초에 대상이 아닙니다.

구조화 데이터 없이 주소만 보내면 거절도 하지 않고 200을 돌려줍니다. 에러를 안 주기 때문에 몇 달씩 모르고 쓰게 됩니다. 대시보드에 "요청 성공 1,240건" 같은 숫자가 쌓이는데 실제로는 한 건도 전달되지 않은 상태가 됩니다.

일반 글에는 무엇을 쓰나

방법대상비고
사이트맵 + robots.txt전 검색엔진가장 기본. 이게 안 되면 나머지도 의미가 적다
IndexNowBing · Yandex · Naver 등키 파일을 사이트에 두고 주소를 통보. 구글은 미참여
서치콘솔 URL 검사Google수동. 하루 요청 수 제한이 있다

구글에 대해서는 일반 글을 API로 밀어 넣는 공식 통로가 없다고 보는 편이 맞습니다. 사이트맵을 정확히 유지하고 크롤링이 도는지 확인하는 쪽이 실효가 있습니다.

제출이 안 된 것과 색인을 거부당한 것은 다릅니다

이 둘을 섞으면 엉뚱한 걸 고치게 됩니다.

후자는 어떤 제출 도구로도 해결되지 않습니다. 요청을 반복해서 넣는 것도 효과가 없습니다. 이때 봐야 할 건 제출 방법이 아니라 페이지 자체입니다. 같은 내용이 다른 주소에도 있는지, 사이트의 다른 페이지와 구별되는 내용이 있는지, 들어오는 링크가 있는지를 확인하는 편이 낫습니다.

200을 신뢰 근거로 쓰지 마세요

응답 코드는 "요청이 문법적으로 유효했다"까지만 보장합니다. 처리됐는지는 결과를 다시 조회해서 확인해야 합니다. 이 건에서는 notifyTime 유무와 getMetadata 조회가 그 역할을 했습니다. 성공 여부를 스스로 보고하게 두면 대시보드만 화려해집니다.

정리

이 글은 EonsFlow가 색인 요청 도구를 만들며 겪은 내용을 정리한 것입니다. 사이트맵 쪽 함정은 사이트맵을 못 찾는 이유에, 주소를 임의로 바꿔서 생기는 문제는 lstrip("www.")은 접두사를 지우지 않습니다에 정리해 두었습니다.