크롤링과 색인은 다른 단계입니다
robots.txt의 Disallow는 URL 가져오기를 제한합니다. 크롤러가 본문과 noindex 지시를 읽지 못하므로 ‘검색에서 제외’만을 목적으로 쓰면 URL이 다른 신호를 통해 남을 수 있습니다.
색인을 원하지 않는 공개 HTML은 크롤링을 허용한 상태에서 noindex를 응답해야 합니다. 민감한 콘텐츠는 둘 다 아닌 인증으로 보호합니다.
canonical은 명령이 아니라 강한 힌트입니다
canonical은 내용이 같거나 매우 비슷한 URL 중 어떤 주소를 대표로 삼을지 제안합니다. 리다이렉트, 내부 링크, sitemap이 다른 URL을 가리키면 신호가 충돌합니다.
완전히 다른 페이지를 하나의 canonical로 몰아 색인을 제어하지 않습니다. 검색 시스템이 내용을 비교해 부적절한 canonical을 무시할 수 있습니다.
hreflang은 동등한 대체 페이지의 그래프입니다
한국어 페이지가 영어 페이지를 가리키면 영어도 한국어를 되돌아 가리켜야 합니다. 각 페이지는 자기 자신을 포함하고, 언어·지역 코드는 지원되는 형식으로 작성합니다.
각 언어 페이지의 canonical은 자기 언어 URL을 가리키는 것이 일반적입니다. 한국어 페이지를 영어 canonical로 묶으면 hreflang과 대표 URL 신호가 서로 모순됩니다.
- robots.txt: 이 URL을 가져와도 되는가?
- noindex: 이 응답을 색인해도 되는가?
- canonical: 중복 중 어느 URL이 대표인가?
- hreflang: 어느 URL이 언어·지역 대체 페이지인가?
한 페이지의 신호를 한 줄로 검사합니다
요청 가능 여부 → HTTP 상태 → meta robots → canonical → hreflang → sitemap 포함 → 내부 링크 순으로 한 줄에 적으면 충돌이 빠르게 보입니다. 리다이렉트 대상과 최종 URL도 별도 필드로 둡니다.
대량 사이트에서는 템플릿별 대표 URL을 자동 테스트하고 배포 전후 diff를 저장합니다. 개별 URL 검사만으로는 공통 레이아웃에서 발생한 회귀를 늦게 발견합니다.
배포 전 체크리스트
- ✓ 색인 제외 페이지를 robots.txt로 막고 있지 않은가?
- ✓ canonical, 내부 링크, sitemap이 같은 대표 URL을 가리키는가?
- ✓ 언어 페이지가 자기 canonical을 가지는가?
- ✓ hreflang이 자기 참조와 상호 반환 링크를 포함하는가?
- ✓ 민감한 페이지를 검색 지시문이 아닌 인증으로 보호하는가?
자주 묻는 질문
Disallow와 noindex를 함께 쓰면 더 확실한가요?
대개 반대입니다. Disallow 때문에 크롤러가 noindex를 읽지 못할 수 있습니다. 색인 제외가 목적이면 크롤링 가능 상태에서 noindex를 제공하세요.
x-default는 반드시 필요한가요?
필수는 아니지만 언어 선택 페이지나 기본 글로벌 페이지가 있을 때 유용합니다. WEPLET처럼 명확한 기본 언어 경로가 있으면 그 경로를 일관되게 가리킬 수 있습니다.