지금 읽는 곳robots.txt는 무엇을 할 수 있고 무엇을 못 하나목차
STEP 2 중급·실무 › 2-3. 오가닉 채널·검색 최적화 › 과목 70 › 레슨 02
로봇 제어의 사령탑: robots.txt 파일 문법 규칙과 크롤러 접근 권한 설정 및 sitemap.xml 생성·제출 가이드
크롤러에게 "여기는 오지 마세요"라고 말하는 파일 하나와 "여기부터 보세요"라고 안내하는 파일 하나가 크롤링 효율을 가릅니다.
핵심요약
- robots.txt는 검색 크롤러가 어떤 페이지·파일을 요청할 수 있고 없는지 알려주는 텍스트 파일이다
- robots.txt는 강제 규칙이 아니라 제안(hint)이라 모든 크롤러가 지킨다는 보장이 없다
- sitemap.xml은 사이트의 중요 URL 목록과 최종 수정 시각 등의 메타데이터를 제공하는 XML 파일이다
- 두 파일은 각각 "차단"과 "안내"라는 반대 방향의 역할을 맡는다
robots.txt는 무엇을 할 수 있고 무엇을 못 하나
robots.txt 파일은 검색 엔진 크롤러가 사이트의 어떤 페이지나 파일을 요청할 수 있고 없는지를 알려주는 텍스트 파일입니다. 다만 이 파일은 크롤러에게 보내는 제안(hint)일 뿐이며 모든 크롤러가 이를 준수하지 않을 수 있습니다. 즉 robots.txt로 특정 경로를 막아도 악의적인 크롤러나 규칙을 무시하는 봇은 여전히 해당 경로에 접근할 수 있으므로, 로그인 페이지나 개인정보가 담긴 페이지처럼 정말 민감한 콘텐츠를 보호하려면 robots.txt 대신 비밀번호 보호나 noindex 메타 태그 같은 다른 수단을 함께 써야 합니다.
robots.txt로 흔히 저지르는 실수
가장 흔한 사고는 개발 서버에서 쓰던 "Disallow: /" 설정을 실제 운영 사이트에 그대로 옮기면서 사이트 전체의 크롤링을 막아버리는 경우입니다. 이 실수는 배포 직후 바로 드러나지 않고, 며칠 뒤 검색 트래픽이 서서히 줄어드는 형태로 나타나는 경우가 많아 발견이 늦어지기 쉽습니다. 배포 체크리스트에 robots.txt 내용을 실제 운영 도메인에서 다시 확인하는 항목을 넣어두는 것이 예방책입니다.
sitemap.xml은 왜 별도로 필요한가
sitemap.xml은 웹사이트의 모든 중요한 URL을 나열하고 각 URL의 마지막 업데이트 시간, 변경 빈도 등의 메타데이터를 제공하는 XML 파일입니다. robots.txt가 "여기는 막는다"는 소극적 신호라면, 사이트맵은 "이 URL들이 중요하니 우선 봐달라"는 적극적 신호입니다. 내부 링크만으로는 발견되기 어려운 페이지(신규 상품 페이지, 뎁스가 깊은 카테고리 페이지 등)를 사이트맵에 넣어두면 크롤러가 이를 더 빨리 발견하는 데 도움이 됩니다.
두 파일을 함께 쓸 때 실무에서 챙길 순서
사이트맵을 제출했다고 해서 robots.txt로 막아둔 페이지까지 크롤링·인덱싱되는 것은 아닙니다. 두 설정이 서로 충돌하는 경우(사이트맵에는 올렸는데 robots.txt로는 막아둔 경우)가 실무에서 자주 발생하므로, 신규 페이지를 사이트맵에 추가할 때는 해당 경로가 robots.txt에서 차단돼 있지 않은지 함께 확인하는 순서를 습관으로 만드는 것이 안전합니다.
서치 콘솔에 사이트맵을 제출한 뒤 확인할 것
사이트맵은 만들어서 서버에 올려두는 것으로 끝나지 않고, 구글 서치 콘솔의 "사이트맵" 메뉴에서 제출해야 구글이 이를 적극적으로 참고합니다. 제출 후에는 "가져온 상태"가 정상인지, 제출한 URL 수 대비 실제 색인된 URL 수가 크게 차이 나지는 않는지를 주기적으로 확인해야 합니다. 두 수치의 차이가 크다면 8강에서 다루는 커버리지 리포트로 원인을 더 깊이 들여다봐야 하는 신호입니다.
사이트맵 유형을 나눠 관리해야 하는 경우
페이지 수가 많은 사이트라면 사이트맵 하나에 모든 URL을 몰아넣기보다 상품·카테고리·게시글처럼 콘텐츠 유형별로 사이트맵을 나누고, 이 여러 사이트맵을 다시 하나의 사이트맵 인덱스 파일로 묶어 관리하는 편이 낫습니다. 유형별로 나눠두면 특정 카테고리의 색인률이 유독 낮을 때 문제 범위를 빠르게 좁힐 수 있고, 사이트맵 하나의 URL 개수가 표준 상한에 가까워지는 대형 사이트에서는 이 분리가 사실상 필수입니다.
크롤링 예산이 넉넉지 않은 사이트에서 robots.txt의 역할
상품 수가 많은 이커머스몰이나 필터·정렬 파라미터가 조합되며 URL이 기하급수로 늘어나는 사이트라면, robots.txt로 검색·정렬 파라미터가 붙은 중복 URL 경로를 미리 차단해두는 것이 크롤링 예산을 절약하는 실질적인 방법입니다. 크롤링 예산은 서버 응답 속도로 정해지는 크롤 용량과 사이트 크기·업데이트 빈도로 정해지는 크롤 수요로 구성되는데, 의미 없는 중복 URL이 이 예산을 갉아먹으면 정작 새로 올린 상품 페이지가 크롤링 순번에서 밀리는 결과로 이어질 수 있습니다.
사이트맵 갱신을 캠페인 일정과 맞추는 실무
프로모션·시즌 상품처럼 짧은 기간에 노출이 몰려야 하는 페이지가 있다면, 해당 URL을 담은 사이트맵의 lastmod(최종 수정) 값을 실제 콘텐츠 변경 시점에 맞춰 정확히 갱신해두는 것이 좋습니다. lastmod 값이 실제 변경과 무관하게 매번 오늘 날짜로 찍히도록 자동화돼 있으면, 구글이 이 신호의 신뢰도를 낮게 평가해 오히려 우선 크롤링 신호로서의 효과가 떨어질 수 있습니다. 사이트맵 생성이 CMS에서 자동화돼 있다면, 실제로 콘텐츠가 바뀔 때만 lastmod가 갱신되는지 한 번쯤 직접 확인해보는 것이 좋습니다.