robots.txt가 하는 일과 못 하는 일
이 파일은 "예의 바른" 크롤러에게 어느 경로를 방문하지 말라고 요청하는 약속입니다. 구글·네이버·빙 같은 검색 엔진은 따르지만, 악성 스크래퍼는 무시합니다. 그러므로 보안 수단이 아니며, 비공개 페이지는 로그인이나 서버 설정으로 막아야 합니다. 오히려 robots.txt에 적힌 경로는 누구나 볼 수 있으므로 숨기고 싶은 주소를 나열하는 것은 역효과입니다. 이 도구는 브라우저 안에서 텍스트만 만들며 파일을 어디에도 업로드하지 않습니다.
차단 ≠ 색인 제외
Disallow는 크롤링만 막습니다. 다른 사이트에서 링크된 페이지는 내용 없이 URL만 검색 결과에 나올 수 있습니다. 검색 결과에서 완전히 빼려면 해당 페이지에 <meta name="robots" content="noindex">를 넣고 robots.txt에서는 차단하지 않아야 합니다. 차단해 버리면 크롤러가 noindex 태그 자체를 읽지 못하기 때문입니다.
AI 크롤러 차단
GPTBot(OpenAI), CCBot(Common Crawl), ClaudeBot(Anthropic), Google-Extended(구글 AI 학습), Bytespider(바이트댄스) 등은 학습 데이터 수집용 봇이며 robots.txt를 존중한다고 밝히고 있습니다. 차단하면 향후 학습에서 내 콘텐츠가 빠지지만, 이미 수집된 데이터는 돌이킬 수 없습니다. AI 검색 봇(OAI-SearchBot, PerplexityBot)은 학습이 아니라 답변에 출처로 인용하기 위한 것이라 별도 옵션으로 나누었습니다. 이쪽까지 막으면 AI 검색에서 사이트가 노출되지 않습니다. Google-Extended 차단은 일반 구글 검색 색인에는 영향이 없습니다.
흔한 실수
CSS·JS 폴더를 차단하면 구글이 페이지를 렌더링하지 못해 모바일 친화성 판정과 순위에 불리해집니다. Disallow: /와 Disallow:(빈 값)는 정반대(전체 차단 vs 전체 허용)이니 슬래시 하나를 잘 봐야 합니다. 개발 서버에서 쓰던 전체 차단 파일을 운영 배포에 그대로 올리는 사고도 흔합니다. 파일은 반드시 루트(/robots.txt)에 있어야 하고, 하위 폴더의 robots.txt는 무시됩니다. 규칙 그룹은 빈 줄로 구분되며, 같은 봇에 대한 규칙은 가장 구체적인(긴) 경로가 우선합니다.
자주 묻는 질문
파일을 올렸는데 반영이 안 돼요.
검색 엔진은 robots.txt를 보통 하루 단위로 다시 읽습니다. 구글 서치 콘솔의 robots.txt 보고서에서 최근 가져온 버전과 오류를 확인할 수 있습니다.
Crawl-delay를 쓰면 트래픽이 줄어드나요?
구글은 이 지시어를 무시하고 서치 콘솔의 크롤링 속도 설정을 따릅니다. 네이버·빙은 참고하지만 보장은 아닙니다. 서버 부하가 문제면 서버 쪽 속도 제한이 확실합니다.
특정 봇만 다르게 설정하려면요?
생성된 내용에 "User-agent: 봇이름" 그룹을 추가하고 그 아래 Disallow/Allow를 적으면 됩니다. 봇은 자기 이름과 가장 잘 맞는 그룹 하나만 따르므로, 그 그룹에 필요한 규칙을 전부 적어야 합니다.