robots.txt로 AI 크롤러 차단·허용하기: GPTBot, ClaudeBot, PerplexityBot 설정법
핵심 답변: AI 크롤러 차단과 허용은 robots.txt에서 봇마다 따로 정합니다. AI 봇은 크게 세 종류입니다. 모델 학습용 봇(GPTBot, ClaudeBot), 검색용 봇(OAI-SearchBot, Claude-SearchBot, PerplexityBot), 사용자가 요청했을 때 페이지를 가져오는 봇(ChatGPT-User, Claude-User)입니다. AI 검색 답변에서 인용되길 원한다면 검색용 봇은 허용하세요. 학습을 허용할지는 사이트 운영자가 직접 정할 일입니다. 파일 하나로 모두 설정할 수 있지만, 구성에서 사소한 실수 하나만 있어도 규칙이 아무 효과를 내지 못합니다.
AI 크롤러 차단이 규칙 한 줄로 끝나지 않는 이유
예전에는 User-agent: * 한 줄이면 충분했습니다. AI 시대에는 이 방식이 너무 거칩니다. 같은 회사가 용도별로 서로 다른 봇을 운영하기 때문입니다. OpenAI도 각 설정이 서로 독립적이라고 직접 밝힙니다. 예를 들어 OAI-SearchBot은 허용해 ChatGPT 검색 결과에 사이트가 나타날 수 있게 하고, GPTBot은 차단해 콘텐츠가 OpenAI의 기반 모델 학습에 쓰이지 않도록 정할 수 있습니다(OpenAI).
그래서 ChatGPT에서 사라질 생각으로 GPTBot만 막으면 기대와 다른 결과가 나옵니다. 반대로 불안한 마음에 전부 막으면, 답변에서 내 사이트를 인용할 수 있는 봇까지 내쫓게 됩니다.
AI 크롤러의 세 가지 종류
| 종류 | 봇 | 차단하면 일어나는 일 |
|---|---|---|
| 학습 | GPTBot(OpenAI), ClaudeBot(Anthropic), Google-Extended(Google) | 콘텐츠를 학습에 쓰지 말라는 신호를 보냅니다. Google 검색에는 영향이 없습니다 |
| 검색 | OAI-SearchBot(OpenAI), Claude-SearchBot(Anthropic), PerplexityBot(Perplexity) | 해당 서비스의 검색 답변에 사이트가 나타나지 않거나 덜 나타납니다 |
| 사용자 요청 시 | ChatGPT-User(OpenAI), Claude-User(Anthropic) | OpenAI는 사람이 요청한 것이므로 robots.txt 규칙이 적용되지 않을 수 있다고 밝힙니다. Anthropic은 Claude-User를 제어할 수 있으며, 차단하면 사용자가 주도하는 검색에서 노출이 줄어들 수 있다고 설명합니다 |
각 업체가 직접 밝힌 내용을 요약하면 다음과 같습니다.
- OpenAI: OAI-SearchBot을 제외한 사이트는 ChatGPT 검색 답변에 나타나지 않지만, 탐색용 링크로는 여전히 표시될 수 있습니다. robots.txt를 바꾼 뒤 시스템에 반영되기까지 약 24시간이 걸릴 수 있습니다.
- Anthropic: ClaudeBot을 제한하면 앞으로 수집하는 자료를 학습 데이터에서 제외하라는 신호가 됩니다. Claude-SearchBot이나 Claude-User를 비활성화하면 검색 결과에서의 노출이 줄어들 수 있습니다. Anthropic은 robots.txt를 준수하고, CAPTCHA를 우회하지 않으며, 표준은 아닌
Crawl-delay줄을 지원한다고 밝힙니다(Anthropic). - Perplexity: PerplexityBot은 Perplexity 검색 결과에 웹사이트를 보여 주고 링크하기 위한 봇입니다. 기반 모델용 콘텐츠를 수집하는 데는 쓰이지 않으며, Perplexity는 허용을 권장합니다(Perplexity).
- Google: Google-Extended는 별도의 봇이 아니라 robots.txt의 토큰입니다. Google이 크롤링한 콘텐츠를 앞으로의 Gemini 모델 학습과 그라운딩(grounding)에 쓸 수 있는지를 제어합니다. Google 검색에 포함되는지에는 영향이 없고, 순위 신호도 아닙니다(Google).
각 업체는 목록을 바꿉니다. 규칙을 그대로 가져다 쓰기 전에 위 문서를 먼저 확인하세요.
바로 가져다 쓸 수 있는 예시 세 가지
1. 모두 허용하고 내부 API만 막기. seogrinder.com이 직접 쓰는 방식입니다. User-agent 줄을 여러 개 쓰고 그 아래에 규칙 묶음 하나를 두어, 그룹 하나로 구성합니다.
User-agent: *
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
User-agent: ChatGPT-User
User-agent: Claude-User
Disallow: /api/
Allow: /
Sitemap: https://www.example.com/sitemap.xml
2. 검색은 허용하고 학습은 거부하기.
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
Disallow: /
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
Allow: /
이것은 사이트 소유자가 정하는 선택이지 권장 사항이 아닙니다. 콘텐츠가 가능한 한 널리 쓰이길 원한다면 예시 1을 쓰세요. Google-Extended는 학습뿐 아니라 Gemini 앱과 Vertex AI의 그라운딩에도 해당한다는 점에 유의하세요. Google 검색과 AI 개요(AI Overviews)에는 영향을 주지 않습니다.
3. AI 봇을 모두 거부하기. 위에 나온 모든 봇 아래에 Disallow: /를 넣습니다. 그러면 ChatGPT, Claude, Perplexity의 검색 답변에 덜 나타나거나 아예 나타나지 않습니다(탐색용 링크와 사용자 요청에 따른 가져오기는 여전히 가능합니다). Google의 AI 개요는 이 토큰이 아니라 Googlebot으로 제어합니다. 정말 그렇게 하고 싶을 때만 적절한 선택입니다.
함정: 봇 전용 그룹이 있으면 공통 그룹은 적용되지 않습니다
RFC 9309에 따르면 크롤러는 자신의 이름과 일치하는 그룹을 따릅니다. 자기 전용 그룹이 있으면 * 그룹은 그 크롤러에게 적용되지 않습니다(RFC 9309).
예를 들어 User-agent: * 아래에 Disallow: /internal/이 있다고 합시다. 나중에 GPTBot 전용 그룹을 만들면서 Allow: /만 넣었다면, 이제 /internal/은 GPTBot에게 금지 구역이 아닙니다. 규칙은 그룹마다 다시 써 넣거나, 위 예시처럼 같은 규칙 묶음 위에 User-agent 줄을 여러 개 두세요.
같은 명세에서 규칙이 충돌할 때 도움이 되는 원칙이 둘 더 있습니다. 가장 구체적인 일치(가장 긴 경로)가 우선하고, Allow와 Disallow의 길이가 같으면 Allow가 적용됩니다.
콘텐츠 사용 방식을 밝히는 선택 줄: Content-Signal
허용과 차단 말고도 선택 사항인 줄이 하나 더 있습니다. Cloudflare가 2025년 9월에 도입한 것으로, 콘텐츠를 어떤 용도로 써도 되는지 밝힙니다.
Content-Signal: search=yes, ai-input=yes, ai-train=no
search는 검색 색인과 스니펫, ai-input은 AI 답변에 콘텐츠를 직접 활용하는 것, ai-train은 학습을 뜻합니다. 이것은 선언일 뿐 자물쇠가 아닙니다. 지키는 것은 자발적입니다. Cloudflare는 콘텐츠 신호가 선호를 표현하는 것이며 기술적 대응책이 아니고, 일부 기업은 그냥 무시할 수도 있다고 밝혔습니다(Cloudflare).
표준화 작업도 진행 중입니다. Google의 크롤러 문서에는 Google이 2027년 초에 공통의 기계 판독용 학습 선호 신호인 AIPREF를 지원할 계획이라고 적혀 있으며, 표기는 user-agent: __usage_ai-training입니다(Google). 그때까지 Gemini 학습과 그라운딩의 스위치는 Google-Extended입니다.
robots.txt는 접근 차단 수단이 아닙니다
명세는 분명히 말합니다. 이 프로토콜은 실제 보안 조치를 대신하지 않으며, robots.txt에 적은 경로는 누구에게나 보입니다. 규칙을 무시하는 봇은 이 파일로 막을 수 없습니다. 공개되면 안 되는 콘텐츠에는 로그인이나 방화벽 규칙이 필요합니다. Anthropic은 IP 주소로 차단하면 봇이 robots.txt 자체를 읽을 수 없게 되므로 옵트아웃 수단으로 제대로 작동하지 않을 수 있다고도 경고합니다.
robots.txt의 AI 크롤러 규칙 점검하는 방법
- 브라우저에서
https://yoursite.com/robots.txt를 엽니다. 서브도메인마다 자기 파일이 따로 있습니다. - SEOgrinder를 열고 주소를 입력한 뒤 분석을 시작합니다. 가입은 필요 없습니다.
- 리포트의 AI 준비도 탭에서 “AI 에이전트용 검사” 아래의 “AI 봇 제어하기” 항목을 찾습니다. 충족된 상태라면 규정된 AI 크롤러가 몇 개이고 그중 몇 개가 허용, 몇 개가 차단인지 표시됩니다. 충족되지 않았다면 학습과 검색에 대한 명시적 규칙을 찾지 못했다는 뜻입니다.
- 충족된 항목은 펼칠 수 있습니다. 파일에서 발견된 텍스트가 그대로 보입니다.
- 에이전트 프롬프트 복사를 눌러 코딩 AI에 붙여 넣습니다. 빠진 규칙이 있으면 프롬프트가 추가할 내용을 설명하고, 이미 있으면 검토한 뒤 잘못된 부분만 고치도록 요청합니다. 허용할지 차단할지는 계속 사이트 소유자가 결정합니다.
- 수정한 뒤 다시 확인을 누릅니다. 리포트는 최대 24시간 동안 캐시에 남으며, 이 버튼은 새로 검사를 실행합니다(시간당 몇 번까지 쓸 수 있습니다).
OpenAI와 Perplexity의 시스템이 새 규칙을 적용하기까지는 하루 정도 걸린다고 생각하세요.
실제 방문 구분하기: 로그와 IP 대역
봇이 정말 사이트를 방문하는지는 서버 로그의 user agent에서 알 수 있습니다. 누구나 자신을 GPTBot이라고 칭할 수 있으므로, 각 업체는 대조용으로 IP 대역을 공개합니다. OpenAI는 봇마다 JSON 파일로 제공하며(예: openai.com/gptbot.json), Anthropic은 자체 목록을 안내합니다. 방문이 이 대역에서 오지 않았다면 이름이 같아도 해당 업체가 보낸 것이 아닐 가능성이 매우 높습니다. 방문을 분석하거나 방화벽에서 가짜 봇을 걸러 내려 할 때 유용합니다. 다만 Anthropic의 경고를 기억하세요. 진짜 봇을 IP 주소로 차단하면 그 봇이 robots.txt를 읽을 수 없게 됩니다.
자주 하는 실수
- 모두에게
Disallow: /를 그대로 두기. 테스트 서버용 차단 설정이 robots.txt에 남은 채 사이트가 공개되는 경우입니다. 공개할 때마다 확인하세요. - ChatGPT에서 빠지려고 GPTBot만 차단하기. 그것은 학습을 제어할 뿐 검색은 제어하지 않습니다.
- 그룹 안에 빈 줄 넣기. Python의 robotparser 같은 일부 파서는 빈 줄 위에 있는 이름을 버립니다.
User-agent줄은 붙여서 쓰세요. - 상대 경로로 쓴 Sitemap 줄.
https://를 포함한 전체 주소를 쓰세요. - 파일이 엉뚱한 위치에 있기. 루트(
/robots.txt)에 있어야 하며 하위 폴더에 두면 안 됩니다. - Content-Signal과 llms.txt에 지나친 기대하기. 둘 다 선택 사항이며, 순위나 인용에 미치는 효과는 입증되지 않았습니다.
자주 묻는 질문
AI 크롤러를 허용해야 하나요?
목표에 따라 다릅니다. AI 검색 답변에서 인용되길 원한다면 검색용 봇을 허용하세요. 학습을 허용할지 거부할지는 사업상의 결정이며, 두 가지를 따로 설정할 수 있습니다.
Google-Extended를 차단하면 Google에서 사라지나요?
아닙니다. Google은 Google-Extended가 Google 검색 포함 여부에 영향을 주지 않으며 순위 신호도 아니라고 밝힙니다.
변경 사항은 얼마나 빨리 반영되나요?
OpenAI와 Perplexity는 모두 robots.txt를 바꾼 뒤 최대 약 24시간이 걸릴 수 있다고 말합니다.
llms.txt는 robots.txt와 같은 건가요?
아닙니다. robots.txt는 접근을 제어합니다. llms.txt는 언어 모델을 위한 사이트 요약을 담은, 제안 단계의 파일입니다. 2차 보도에 따르면 Google은 이 파일을 지원하지 않습니다(Search Engine Roundtable). 효과는 입증되지 않았습니다. 자세한 내용은 llms.txt란? 만드는 방법과 실제로 효과가 있는지 정리에서 다룹니다.
폴더마다 다른 규칙을 정할 수 있나요?
네. 그룹 안에서 경로별로 Disallow와 Allow를 지정할 수 있습니다. 가장 구체적인 일치가 우선합니다.
다음 단계
robots.txt를 열어 검색용 봇을 실수로 막아 두지 않았는지 확인하세요. 그다음 SEOgrinder로 무료 스캔을 실행해 AI 준비도 탭의 “AI 봇 제어하기”가 충족되었는지 보세요. 충족이란 학습과 검색 각각에 명시적 규칙이 있다는 뜻입니다. 그 규칙이 허용인지 차단인지는 검사 결과에 표시됩니다.