2026. 10. 16. · 문하율 (매니저)
robots.txt 파일하나로 모델 학습용 봇과 검색·인용용 봇을 따로 끊을 수 있습니다. GPTBot은 막으면서 OAI-SearchBot은 열어 두는 식입니다. 클라우드플레어 집계에서 2026년 3분기 AI 봇 요청 차단률은 13.47%까지 올라왔습니다. 1년 전 같은 분기는 5.98%였습니다. 다만 robots.txt는 접근을 막는 문일 뿐 색인을 지우는 지우개가 아닙니다. 봇 이름을 목적별로 갈라 적는 순서가 AI 답변에 우리 브랜드 이름이 남는지를 가릅니다.

robots.txt에 남아 있던 Disallow: /blog/ 한 줄 때문에 B2B SaaS 기업의 AI 답변 인용이 10주 동안 월 42건에서 3건으로 내려앉은 일이 있습니다. AI 정책을 바꿔서가 아니라 스테이징 서버에서 쓰던 설정이 운영 서버로 그대로 따라 올라왔기 때문입니다.
지오랭크가 2026년 상반기에 진단을 맡은 SaaS 기업 D사의 사례입니다. 사이트를 리뉴얼하면서 개발팀이 테스트용 robots.txt를 그대로 배포했습니다. 블로그 경로 전체가 막혔으니 ChatGPT와 퍼플렉시티는 D사의 가장 좋은 콘텐츠 170여 편을 아예 열어 볼 수 없었습니다. 서버 로그에서 GPTBot 요청은 월 1,180건에서 9건으로 줄어 있었습니다.
여기서 지오랭크도 한 번 헛다리를 짚었습니다. 막힌 줄을 걷어내고 2주를 기다렸는데 인용이 돌아오지 않아 llms.txt와 구조화 데이터를 먼저 의심했습니다. 실제 원인은 다른 곳에 있었습니다. 리뉴얼 기간에 robots.txt가 간헐적으로 500 응답을 내보냈습니다. 구글 문서에 적힌 대로 크롤러는 그 경우 최대 30일까지 예전에 받아 둔 robots.txt를 그대로 재사용합니다. 캐시가 풀릴 때까지는 파일을 아무리 고쳐도 바깥에서는 옛 규칙이 살아 있는 셈입니다.
응답 코드를 200으로 고정하고 사이트맵 줄을 다시 붙인 뒤 6주째에 월 인용이 37건으로 올라왔습니다. 완전히 제자리는 아니었습니다. 공백 기간에 경쟁사 페이지가 인용 자리를 가져간 질문이 네 개 남았는데요 그 자리는 다시 콘텐츠로 밀어내야 했습니다. robots.txt 사고는 복구가 되긴 하지만 공짜로 되지는 않습니다.
robots.txt는 사이트 최상위 경로에 두는 평문 파일로 어떤 크롤러가 어떤 경로에 접근해도 되는지를 알려 주는 안내문입니다. 강제력이 있는 자물쇠가 아니라 규칙을 지키기로 한 봇에게만 통하는 약속입니다.
주소는 언제나 https://도메인/robots.txt입니다. 규칙은 그 파일이 올라간 호스트와 프로토콜, 포트에만 적용됩니다. blog.example.com처럼 서브도메인을 따로 쓰면 그 서브도메인에 robots.txt를 따로 둬야 합니다. 구글은 파일을 500KiB까지만 읽고 그 뒤는 버립니다. 내용은 보통 24시간 정도 캐시됩니다.
줄 문법은 다섯 가지면 거의 끝납니다.
| 줄 | 뜻 | 놓치기 쉬운 점 |
|---|---|---|
User-agent | 아래 규칙을 적용할 봇 이름 | 봇 이름은 대소문자를 가리지 않습니다 |
Disallow | 접근을 막을 경로 | 경로는 대소문자를 가립니다. /Blog/와 /blog/는 다릅니다 |
Allow | 막은 범위 안에서 다시 열어 줄 경로 | 규칙이 겹치면 경로 글자가 더 긴 쪽이 이깁니다 |
Sitemap | 사이트맵 전체 주소 | 프로토콜과 도메인까지 적어야 합니다 |
# | 주석 | 봇은 읽지 않습니다. 사람을 위한 메모입니다 |
경로 표기에는 *와 $를 쓸 수 있습니다. *는 아무 글자가 0개 이상 온다는 뜻이고 $는 주소가 거기서 끝난다는 뜻입니다. 줄 끝에 붙인 *는 의미가 없어서 무시됩니다. /fish*와 /fish는 똑같이 읽힙니다.
작성 순서는 이렇게 잡으면 헷갈리지 않습니다.
Disallow: /를 줍니다User-agent: *와 Sitemap 줄을 붙입니다AI 크롤러는 모델을 학습시키는 봇, 검색 색인을 만드는 봇, 사용자가 질문할 때 그 자리에서 페이지를 열어 보는 봇 세 갈래로 나뉩니다. 운영사가 같아도 이름이 다르면 하는 일이 다릅니다. 이 구분을 모르고 회사 이름만 보고 막으면 학습을 막으려다 인용까지 같이 잃습니다.
| 봇 이름 | 운영사 | 용도 | 막으면 생기는 일 |
|---|---|---|---|
GPTBot | OpenAI | 파운데이션 모델 학습 | 학습 데이터에서 빠집니다. ChatGPT 검색 노출은 유지됩니다 |
OAI-SearchBot | OpenAI | ChatGPT 검색 색인 | ChatGPT 검색 답변에 사이트가 뜨지 않습니다 |
ChatGPT-User | OpenAI | 사용자 요청으로 페이지 열람 | 사용자가 띄운 요청이라 robots.txt 규칙 대상이 아니라고 안내됩니다 |
OAI-AdsBot | OpenAI | 광고 랜딩 페이지 안전성 검사 | 학습에는 쓰이지 않습니다 |
ClaudeBot | Anthropic | 모델 학습용 수집 | 학습 데이터에서 빠집니다 |
Claude-SearchBot | Anthropic | 검색 결과 품질 개선 | Claude 검색 답변의 근거에서 밀립니다 |
Claude-User | Anthropic | 사용자 질문 시 접속 | 사용자가 물어도 페이지 내용을 받아 가지 못합니다 |
PerplexityBot | Perplexity | 검색 결과 노출과 링크 | 퍼플렉시티 답변에 링크가 걸리지 않습니다. 모델 학습용은 아닙니다 |
Perplexity-User | Perplexity | 사용자 요청 열람 | 사용자 요청이라 robots.txt를 따르지 않는다고 공개돼 있습니다 |
Google-Extended | 제미나이 학습과 그라운딩 | 제미나이 학습에서 빠집니다. 구글 검색 포함 여부나 순위에는 영향이 없습니다 | |
Googlebot | 구글 검색 색인 | 구글 검색과 AI 개요에서 함께 사라집니다 | |
CCBot | Common Crawl | 공개 코퍼스 수집 | 이 코퍼스를 쓰는 여러 모델의 학습에서 빠집니다 |
표에서 Google-Extended 줄을 가장 눈여겨봐야 합니다. 구글은 이 토큰이 "구글 검색 포함 여부에 영향을 주지 않고 구글 검색의 순위 신호로도 쓰이지 않는다"고 명시합니다. 제미나이 학습만 빼고 싶을 때 쓰는 유일한 안전한 손잡이인데요 반대로 Googlebot을 막으면 구글 검색과 AI 개요가 통째로 날아갑니다. 두 이름을 혼동하는 실수가 지오랭크가 본 사고 중 가장 비쌌습니다.
사용자 요청형 봇은 성격이 또 다릅니다. ChatGPT-User, Claude-User, Perplexity-User는 사람이 직접 질문을 던져 생긴 요청이라 robots.txt 규칙을 그대로 따르지 않습니다. 이 트래픽을 막고 싶다면 robots.txt가 아니라 방화벽이나 CDN의 봇 관리 기능을 써야 합니다.
실무에서 쓰는 robots.txt는 전체 허용, 학습 봇만 차단, 특정 경로만 차단 이 세 가지 틀에서 거의 벗어나지 않습니다. 아래 예시를 그대로 복사해 도메인만 바꿔 쓰면 됩니다.
첫 번째 틀은 AI 검색 노출을 최대한 가져가는 설정입니다. 콘텐츠 자체가 영업 자산인 B2B나 서비스업에 맞습니다.
# 1. 전체 허용 - AI 검색 노출 우선
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
두 번째 틀은 학습은 막고 인용은 살리는 설정입니다. 기사나 유료 리포트처럼 콘텐츠를 파는 쪽이 많이 씁니다.
# 2. 학습 봇만 차단, 검색·인용 봇은 허용
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: Googlebot
Allow: /
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
세 번째 틀은 봇은 다 받되 보여 줄 필요가 없는 경로만 닫는 설정입니다. 관리 화면이나 검색 결과 페이지, 장바구니처럼 색인 가치가 없는 주소가 대상입니다.
# 3. 특정 경로만 차단
User-agent: *
Disallow: /admin/
Disallow: /cart
Disallow: /search?
Disallow: /*?sort=
Allow: /
Sitemap: https://example.com/sitemap.xml
세 틀 중 무엇을 고를지는 콘텐츠가 유입 수단인지 판매 상품인지로 갈립니다. 콘텐츠로 리드를 받는 회사라면 학습 봇까지 열어 두는 편이 유리할 때가 많습니다. 모델이 브랜드를 기억하는 통로가 학습 데이터이기 때문입니다. 반대로 콘텐츠 열람 자체가 매출인 매체라면 두 번째 틀이 기본값입니다.
학습용 봇만 막는다면 인용은 대체로 남습니다. 검색용 봇까지 같이 막으면 인용은 바로 사라집니다. 두 봇을 구분하지 않고 "AI 차단"으로 뭉쳐 처리하는 순간 AI 검색 유입을 스스로 끊는 셈입니다.
차단 흐름 자체는 이미 업계 평균이 됐습니다. 클라우드플레어 네트워크 기준 AI 봇 요청 차단률은 2026년 3분기 13.47%로 1년 전 5.98%에서 두 배 넘게 올랐습니다. robots.txt 파일 4,242개를 뜬 스냅샷에서 GPTBot은 허용하는 사이트 1곳당 차단하는 사이트가 1.6곳이었습니다. 레이더가 파싱한 robots.txt 중 18.5%가 GPTBot을 이름으로 언급합니다. AI 크롤러 가운데 가장 많이 호명되는 이름입니다.
학계 쪽 관측도 같은 방향입니다. 1만 4천 개 도메인을 추적한 2024년 연구에 따르면 1년 사이 C4 코퍼스 토큰의 5% 이상이 robots.txt로 완전히 닫혔습니다. 활발히 관리되는 핵심 출처로 범위를 좁히면 28% 이상입니다. 이용약관 기준으로 보면 C4의 45%가 크롤링 제한 아래 있습니다. 같은 사이트의 약관과 robots.txt가 서로 다른 말을 하는 경우도 적지 않았습니다.
이 흐름을 따라가며 전면 차단을 택한 쪽에서 문제가 생깁니다. 지오랭크가 본 제조업 H사는 사내 보안 정책 검토 뒤 AI 봇 이름 11개를 한꺼번에 Disallow: /로 막았습니다. 3개월 뒤 브랜드명과 제품군을 묻는 질문 25개를 ChatGPT와 퍼플렉시티에서 확인했는데 H사가 출처로 잡힌 답변은 0건이었습니다. 같은 질문에서 유통 대리점과 가격 비교 사이트가 대신 인용됐습니다. 제품 사양을 가장 정확히 아는 쪽이 설명권을 잃은 상태였습니다.
H사는 결국 학습용 4개만 남기고 검색·인용용 봇을 되돌렸습니다. 5개월째에 25개 질문 중 11개에서 다시 출처로 잡혔습니다. 차단 여부는 보안 부서 혼자 정할 문제가 아닙니다. 마케팅이 잃을 노출을 같이 계산해야 합니다. 반대 의견도 있습니다. 학습 데이터로 콘텐츠가 통째로 쓰이는 것을 보상 없이 두면 장기적으로 매체 생태계가 버티지 못한다는 지적인데요 이쪽 논리도 충분히 설득력이 있습니다. 지오랭크는 그래서 전면 차단과 전면 허용 사이에서 자산 성격별로 경로를 쪼개는 방식을 권합니다. 공개 블로그는 열고 유료 자료실은 닫는 식입니다.
AI 크롤러 통제를 더 깊게 보고 싶다면 자바스크립트로 콘텐츠를 선택적으로 보호하는 방법을 다룬 LLM 클로킹 가이드가 robots.txt 다음 단계를 설명합니다.
robots.txt 사고의 대부분은 문법 자체가 아니라 robots.txt가 하는 일을 잘못 안 데서 나옵니다. 특히 "막으면 검색 결과에서 사라진다"는 오해가 가장 흔합니다.
| 실수 | 실제로 벌어지는 일 | 바로잡는 방법 |
|---|---|---|
색인에서 빼려고 Disallow를 씀 | 다른 사이트가 링크하면 주소는 그대로 검색 결과에 남습니다. 설명만 빠집니다 | 페이지를 열어 두고 noindex 메타 태그를 씁니다 |
Disallow와 noindex를 같이 씀 | 봇이 페이지를 못 읽으니 noindex를 발견하지도 못합니다 | 둘 중 하나만 씁니다. 색인 제거가 목적이면 noindex |
/Blog/로 적고 /blog/를 막은 줄 앎 | 경로는 대소문자를 가려서 아무것도 막히지 않습니다 | 실제 주소를 그대로 복사해 붙입니다 |
Disallow: /blog로 적음 | /blog-2026, /blogroll까지 함께 막힙니다 | 폴더만 막을 땐 끝에 슬래시를 붙여 /blog/로 씁니다 |
Disallow: /private/*로 적음 | 줄 끝 와일드카드는 무시되어 /private/와 같습니다 | 그냥 /private/로 적습니다 |
| 서브도메인에 파일을 안 둠 | 루트 도메인 규칙은 서브도메인에 적용되지 않습니다 | 서브도메인마다 robots.txt를 따로 둡니다 |
| 404나 5xx를 내보냄 | 404는 규칙이 없는 것으로 처리되고 5xx는 옛 캐시가 최대 30일 살아 있습니다 | 응답 코드를 200으로 고정합니다 |
Crawl-delay로 전체 속도를 조절 | 구글은 이 줄을 지원하지 않습니다 | 서치콘솔 크롤링 속도 설정이나 서버단 제한을 씁니다 |
규칙이 겹칠 때의 우선순위도 자주 틀립니다. 구글은 경로 글자 수가 더 긴 규칙을 따릅니다. 길이가 같으면 덜 제한적인 쪽, 즉 Allow가 이깁니다. Disallow: /docs/와 Allow: /docs/public/가 함께 있으면 공개 폴더만 열립니다.
robots.txt는 올리고 끝이 아니라 봇이 실제로 그렇게 읽었는지까지 확인해야 합니다. 파일 내용과 봇이 보는 내용이 다른 경우가 생각보다 자주 있습니다.
확인은 네 단계로 하면 빠짐이 없습니다.
curl -I https://도메인/robots.txt로 응답 코드가 200인지 봅니다. 301이 여러 번 겹치면 크롤러는 다섯 번까지만 따라갑니다네 번째 단계를 빼먹는 경우가 많습니다. robots.txt는 열려 있는데 CDN의 봇 관리 규칙이 AI 크롤러를 403으로 돌려보내는 상황이 지오랭크 진단에서 꾸준히 나옵니다. robots.txt만 보고 "허용했다"고 판단하면 원인을 영원히 못 찾습니다.
로그에 찍힌 봇 이름을 그대로 믿는 것도 위험합니다. 사용자 에이전트 문자열은 누구나 똑같이 적어 넣을 수 있습니다. OpenAI와 퍼플렉시티는 공식 IP 목록을 JSON으로 공개하니 중요한 판단은 IP를 맞춰 보고 내려야 합니다. 사이트 인프라 전반을 점검하려면 AI 검색 기술 SEO 5대 기둥에서 크롤 가능성과 렌더링까지 함께 보시는 편이 좋습니다. 봇 접근 상태를 자동으로 훑고 싶다면 지오랭크 스캐너로 현재 설정을 먼저 떠 보실수 있습니다.
브랜드의 현재 상황과 목표를 알려주시면, 지오랭크가 GEO 전략과 예상 로드맵을 제안해 드립니다. 지금 문의하면 3개월 안에 AI 답변에서의 변화를 함께 확인할 수 있습니다.