모든 아티클

robots.txt: 검색 봇은 무엇을 크롤링할 수 있는지 어떻게 결정하는가

robots.txt는 사이트 루트에 있는 텍스트 파일로, 검색 로봇이 크롤링을 시작하기 전에 읽어 어떤 영역을 방문해도 되는지 판단하는 데 쓰인다. 한국 시장에서는 Googlebot뿐 아니라 네이버가 운영하는 자체 크롤러 Yeti도 함께 확인해야 한다.

User-agent, Disallow, Allow 지시어

파일은 여러 블록으로 구성되며, 각 블록은 User-agent:로 시작해 금지 경로를 나타내는 Disallow와 허용 경로를 나타내는 Allow가 뒤따른다. 로봇은 자신의 이름과 일치하는 첫 번째 블록의 규칙을 따르고, 일치하는 블록이 없으면 공통 블록인 User-agent: *를 따른다.

Yeti: 네이버의 자체 크롤러

네이버는 Google과 별개로 자체 검색 크롤러인 Yeti를 운영한다. 국내 검색 트래픽에서 네이버 비중이 크기 때문에, robots.txt를 작성할 때 User-agent: Googlebot만 확인하고 Yeti용 블록을 빠뜨리면 실제로 의도한 것과 다른 결과가 나올 수 있다. 두 크롤러에 서로 다른 규칙을 적용하고 싶다면 각각 별도의 User-agent 블록으로 명시해야 한다.

Sitemap 지시어는 의무가 아닌 힌트

Sitemap: 지시어는 sitemap.xml 파일의 위치를 검색엔진에 알려준다. 필수는 아니지만 유용하다. 로봇이 사이트맵 경로를 추측하거나 서치 콘솔 등록에만 의존할 필요가 없어지기 때문이다.

이 검사가 필요한 이유

  • 게시 전에 robots.txt 문법을 확인해, 사소한 오타로 사이트 전체가 크롤링에서 제외되는 사고를 막는다.
  • 서로 다른 블록 간의 규칙 충돌로 중요한 영역이 의도치 않게 가려지지 않았는지 확인한다.
  • 다음 크롤링을 기다리지 않고 특정 user-agent와 경로 조합을 즉시 테스트한다.

Disallow가 페이지를 검색 결과에서 숨기지 못하는 이유

가장 흔한 오해는 이것이다. Disallow는 봇이 페이지 내용을 크롤링하지 못하게 막을 뿐, 그 URL이 색인되는 것 자체를 막지는 않는다. 이미 색인된 다른 사이트가 차단된 페이지로 링크를 걸고 있다면, Google은 내용을 크롤링한 적이 없어 설명 없이도 해당 URL을 검색 결과에 표시할 수 있다.

도구 사용해보기