sitemap은 실제 공개 URL만 담아야 합니다.

sitemap은 검색 엔진에 제출하는 공개 URL 목록입니다. 여기에 관리자 페이지, 편집기, 존재하지 않는 글, 오래된 숫자 URL이 섞이면 크롤러가 사이트 구조를 헷갈리게 됩니다. 그래서 제출 URL은 사용자가 실제로 읽을 수 있는 홈, 정책 페이지, 문의 페이지, 장문 글, 공개 블로그 글로 제한하는 것이 좋습니다.

IGKRAP에서는 `/sitemap.xml`을 동적으로 생성하도록 정리했습니다. 정적 페이지는 고정 목록으로 넣고, 블로그 글은 데이터베이스에서 발행된 글만 읽어 추가합니다. 이렇게 하면 새 글을 발행했는데 sitemap에는 빠지는 문제가 줄어듭니다.

canonical은 대표 URL을 하나로 고정합니다.

같은 글이 `/blog/{id}`와 `/blog/adsense-content-checklist`처럼 여러 주소로 열리면 Search Console에서 Google이 선택한 표준 URL과 사용자가 선언한 표준 URL이 달라질 수 있습니다. 이런 상태가 바로 문제가 되는 것은 아니지만, 심사 전에는 불필요한 혼선을 줄이는 편이 안전합니다.

현재 블로그는 숫자 URL로 들어오면 slug URL로 301 이동시키고, canonical도 slug URL을 가리키도록 정리했습니다. 내부 링크와 sitemap 역시 같은 대표 URL을 사용합니다. 검색 엔진과 방문자가 같은 경로를 따라가게 만드는 것이 목표입니다.

URL 검사는 색인 가능 여부를 먼저 봅니다.

Search Console의 URL 검사에서 먼저 확인할 항목은 “Google에 등록되어 있음” 여부가 아니라 라이브 테스트 결과입니다. 페이지가 200으로 열리는지, robots가 막고 있지 않은지, noindex가 붙지 않았는지, Googlebot이 본문을 볼 수 있는지 확인해야 합니다.

관리자 페이지와 편집기는 색인 대상이 아니므로 noindex와 robots 차단이 맞습니다. 반대로 홈, 블로그, 장문 글, Privacy, Contact, Updates는 막히면 안 됩니다. 공개 페이지와 관리 페이지의 색인 정책을 분리해야 심사 로봇이 읽어야 할 콘텐츠를 안정적으로 찾을 수 있습니다.

색인 생성 제외 사유를 글 품질과 함께 봅니다.

“발견됨, 현재 색인이 생성되지 않음”이나 “크롤링됨, 현재 색인이 생성되지 않음” 상태는 단순한 오류가 아닐 수 있습니다. Google이 URL을 알고 있지만 아직 색인할 가치나 우선순위가 충분하지 않다고 판단한 상태일 수 있습니다. 이때는 제출 버튼만 반복하기보다 페이지의 본문 깊이, 내부 링크, 중복 URL, 최근 업데이트 신호를 함께 봐야 합니다.

얇은 글을 많이 늘리는 방식은 좋은 대응이 아닙니다. 각 글이 실제 운영 경험, 판단 기준, 예외 상황, 관련 페이지 링크를 담고 있어야 합니다. Search Console에서 색인 상태를 확인하고, 사이트에서는 글의 완결성과 연결 구조를 보강하는 식으로 같이 움직여야 합니다.

심사 전 체크리스트

  • `https://igkrap.com/sitemap.xml`이 Search Console에 제출되어 있는가
  • sitemap URL이 200으로 열리고 공개 글과 정책 페이지를 포함하는가
  • 숫자 URL, slash URL, index.html URL이 대표 URL로 정리되는가
  • 홈, 블로그, 장문 글, Privacy, Contact, Updates가 noindex 없이 열리는가
  • 관리자와 편집기 페이지는 검색 결과에 노출되지 않게 분리되어 있는가
  • URL 검사에서 라이브 테스트가 통과하고 본문이 렌더링되는가

Search Console은 승인 버튼이 아니라 진단 도구입니다. 여기서 확인한 문제를 사이트 구조와 콘텐츠에 반영해야 AdSense 심사에서도 같은 약점이 반복되지 않습니다.