본문 바로가기
기술 설정

AI 크롤러와 robots.txt — GPTBot·ClaudeBot·PerplexityBot 허용 설정

목차 8개 항목

AI 검색에 인용되려면 먼저 AI 크롤러가 페이지를 가져갈 수 있어야 합니다. AI 봇은 모델 학습용(GPTBot·ClaudeBot), 검색 색인용(OAI-SearchBot·Claude-SearchBot·PerplexityBot), 사용자 요청 시 실시간 방문용(ChatGPT-User·Claude-User·Perplexity-User)으로 나뉘며, 인용에 직결되는 것은 검색용과 실시간 방문용입니다. robots.txt에서 이 봇들을 허용하고, CDN·방화벽이 robots.txt와 별개로 요청을 막고 있지 않은지 함께 확인해야 합니다.

AI 크롤러는 어떤 종류가 있나요?

AI 크롤러는 목적에 따라 학습용, 검색 색인용, 실시간 방문용으로 나뉘며 robots.txt에서 각각 따로 제어됩니다. 학습용 봇을 막아도 검색 노출은 유지됩니다. OpenAI는 GPTBot과 OAI-SearchBot 설정이 서로 독립적이라고 밝히고 있습니다. 아래 표는 2026년 9월 기준 각 사 공식 문서(OpenAI, Anthropic, Perplexity, Google)를 정리한 것입니다.

User-agent운영사역할막으면 생기는 일
GPTBotOpenAI모델 학습용 수집향후 학습 데이터에서 제외(ChatGPT 검색과는 별개)
OAI-SearchBotOpenAIChatGPT 검색 색인ChatGPT 검색 답변에 나오지 않음
ChatGPT-UserOpenAI사용자 요청 시 방문사용자 요청이라 robots.txt가 적용되지 않을 수 있음
ClaudeBotAnthropic모델 학습용 수집향후 학습 데이터에서 제외
Claude-SearchBotAnthropicClaude 검색 색인Claude 검색 답변 노출·정확도 저하
Claude-UserAnthropic사용자 질문 시 방문사용자가 요청해도 페이지를 가져오지 못함
PerplexityBotPerplexity검색 색인(학습에는 쓰지 않음)Perplexity 답변 출처에서 빠짐
Perplexity-UserPerplexity사용자 요청 시 방문사용자 요청이라 대체로 robots.txt를 따르지 않음
GooglebotGoogle구글 검색·AI 개요·AI 모드검색과 AI 개요에서 함께 사라짐
Google-ExtendedGoogle별도 크롤러가 아닌 제어 토큰. Gemini 앱·Vertex AI의 학습과 그라운딩 사용 여부구글 검색·AI 개요에는 영향 없음
BingbotMicrosoftBing 검색·Copilot 답변Bing과 Copilot에서 사라짐
Yeti네이버네이버 웹문서 수집네이버 웹문서 검색에 노출되지 않음

이 밖에 Applebot-Extended(애플 AI 학습 여부, Siri·Spotlight 검색 노출과는 무관), CCBot(Common Crawl 공개 데이터셋), meta-externalagent(Meta AI 학습)도 학습 관련 토큰입니다. anthropic-ai, Claude-Web은 예전 이름이라 현재 Anthropic 문서에는 없으니 현재 이름으로 바꾸세요.

두 정책 중 하나를 고르면 됩니다. GEO가 목적이라면 정책 A(모두 허용), 콘텐츠가 모델 학습에 쓰이는 것이 부담된다면 정책 B(학습용만 차단)를 권장합니다. 두 경우 모두 검색용·실시간 방문용 봇은 열어 둡니다.

정책 A: 모두 허용

# 검색·실시간 방문·학습 모두 허용 (관리·개인 영역만 제외)
User-agent: *
Disallow: /admin/
Disallow: /mypage/
Disallow: /cart/

Sitemap: https://www.example.com/sitemap.xml

AI 봇 이름을 따로 적을 필요는 없습니다. User-agent: * 그룹이 모든 봇에 적용됩니다.

정책 B: 학습용만 차단

# 모델 학습용 수집만 거부
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
User-agent: CCBot
User-agent: meta-externalagent
Disallow: /

# 검색·실시간 방문 봇은 공통 규칙을 따름
User-agent: *
Disallow: /admin/
Disallow: /mypage/
Disallow: /cart/

Sitemap: https://www.example.com/sitemap.xml
  • Google-Extended를 막으면 학습뿐 아니라 Gemini 앱의 그라운딩(답변할 때 검색 결과 참조)에도 쓰이지 않습니다. Gemini 앱 노출까지 원하면 이 줄을 빼세요. 구글 AI 개요·AI 모드에는 영향이 없습니다.
  • 학습용 봇을 막으면 다음 모델이 “기억하는” 브랜드 지식에는 덜 반영될 수 있습니다. 브랜드 인지가 중요하다면 정책 A가 유리합니다.
  • 변경은 바로 반영되지 않습니다. OpenAI와 Perplexity는 약 24시간, 구글은 robots.txt를 보통 최대 24시간 캐시한다고 안내합니다.

흔한 실수

  • 봇 이름으로 그룹을 따로 만들면 그 봇은 User-agent: * 규칙을 무시하고 자기 그룹만 따릅니다. User-agent: GPTBot에 Allow: /만 적으면 /admin/ 차단도 풀리므로 Disallow 줄을 반복해야 합니다.
  • 개발 서버의 Disallow: /가 운영 서버에 그대로 배포되는 경우가 많습니다.
  • robots.txt가 5xx 오류를 내면 구글은 일단 사이트 크롤링을 멈추고, 네이버는 “모두 허용하지 않음”으로 해석합니다.
  • robots.txt는 호스트마다 따로 적용됩니다. blog.·shop. 같은 서브도메인에도 각각 두세요.

문법은 가이드북 5.1 robots.txt 작성 가이드에서 더 볼 수 있습니다.

robots.txt에 사이트맵 줄은 왜 넣나요?

Sitemap: 줄은 모든 크롤러에게 사이트맵 위치를 알리는 가장 간단한 방법입니다. 특정 User-agent 그룹에 묶이지 않으므로 파일 어디에 두어도 되고, 여러 줄을 쓸 수 있으며, https://로 시작하는 전체 URL이어야 합니다. 사이트맵에는 수정일(lastmod)을 정확히 넣고 Google Search Console, Bing 웹마스터 도구, 네이버 서치어드바이저에도 제출하세요. 네이버 대응은 한국 검색 환경의 GEO와 가이드북 9.5를 참고하세요.

robots.txt는 허용인데 AI가 못 읽는 이유는 무엇인가요?

robots.txt는 크롤러에게 보내는 요청일 뿐이고, CDN·방화벽(WAF)의 차단은 그보다 먼저 일어납니다. Anthropic은 자사 봇이 CAPTCHA를 우회하지 않는다고 밝히고 있어, 봇 확인(챌린지) 페이지가 뜨면 사실상 차단입니다. 2026년 9월 기준 Cloudflare에서 확인할 설정은 다음과 같습니다.

  • AI 봇 정책: 검색(Search)·에이전트(Agent)·학습(Training) 동작별로 차단을 고릅니다. 2026년 9월 15일부터 새 도메인은 광고가 있는 페이지에서 학습·에이전트 봇을 기본 차단하며, 에이전트에는 ChatGPT-User 같은 실시간 방문 봇이 포함됩니다.
  • Bot Fight Mode: 봇으로 보이는 요청에 챌린지를 보내며, WAF 규칙으로 예외를 만들 수 없습니다. AI 봇이 막힌다면 끄거나 유료 Super Bot Fight Mode에서 예외를 두세요.
  • 관리형 robots.txt: 켜 두면 GPTBot·ClaudeBot·Google-Extended 등의 Disallow: /가 기존 robots.txt 앞에 자동으로 붙어, 서버의 파일과 실제 응답이 달라집니다.

그 밖에 호스팅사 방화벽, 보안 플러그인, 요청 속도 제한(429), “해외 IP 차단”도 원인이 됩니다. Googlebot과 AI 크롤러는 주로 해외(미국) IP에서 접속합니다.

막혔는지 확인하는 법

# 1) 실제로 응답되는 robots.txt 확인
curl -s https://www.example.com/robots.txt

# 2) 브라우저와 AI 봇 User-Agent의 응답 코드 비교 (403·429·503이면 차단 의심)
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.com/
curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot" https://www.example.com/

User-Agent만 흉내 낸 요청은 검증된 봇 IP가 아니어서 실제 크롤러와 결과가 다를 수 있으므로, CDN 보안 이벤트 로그(Cloudflare는 Security Analytics와 AI Crawl Control의 크롤러 목록)도 함께 확인하세요. 무료 간편 진단의 ‘AI 크롤러 실제 접속 테스트’는 OAI-SearchBot·GPTBot·ClaudeBot·PerplexityBot의 User-Agent로 접속해 일반 브라우저 응답과 비교하고, ‘robots.txt AI 크롤러 규칙’ 단계는 15개 봇의 허용 여부를 판정합니다.

메타 robots·X-Robots-Tag·nosnippet은 어떻게 다른가요?

robots.txt는 “가져가도 되는가”를, 메타 robots와 X-Robots-Tag는 “가져간 뒤 검색과 답변에 어떻게 보여 줄 것인가”를 정합니다. 아래는 구글 문서 기준입니다.

지시어효과
noindex검색 결과에서 제외되어 AI 개요에도 나오지 않음
nosnippet스니펫을 숨기고 AI 개요·AI 모드의 직접 입력으로도 쓰이지 않음
max-snippet:[숫자]스니펫 길이 제한(0은 nosnippet과 같음)
data-nosnippetspan·div·section 요소의 해당 부분만 스니펫에서 제외
<meta name="robots" content="nosnippet">
<div data-nosnippet>회원 전용 가격 안내</div>

# PDF 같은 파일은 HTTP 응답 헤더로
X-Robots-Tag: noindex

Bing은 noarchive가 붙은 콘텐츠를 Copilot 답변에 쓰지 않고, nocache면 URL·제목·스니펫만 쓴다고 안내합니다. robots.txt로 막은 페이지는 크롤러가 noindex를 읽지 못합니다. 간편 진단은 메타 robots와 X-Robots-Tag에 남은 noindex·nosnippet도 찾아냅니다.

자바스크립트로 그린 페이지도 AI가 읽을 수 있나요?

대부분 읽지 못합니다. Vercel이 2024년 12월 공개한 분석에서 OpenAI·Anthropic·Perplexity 등 주요 AI 크롤러는 자바스크립트를 실행하지 않았고, 렌더링한 것은 Googlebot 인프라를 쓰는 Gemini와 Applebot뿐이었습니다. 브라우저에서만 화면을 그리는 페이지(CSR)는 AI 크롤러에게 이렇게 보입니다.

<body>
  <div id="root"></div>
  <script src="/app.js"></script>
</body>

“페이지 소스 보기”나 curl로 받은 HTML에 핵심 문장이 없다면 SSR(서버 렌더링), SSG(정적 생성), 프리렌더링으로 본문을 HTML에 넣으세요. 방식별 비교는 가이드북 5.18에 있고, AI에게 핵심 페이지를 따로 안내하는 방법은 llms.txt 작성법에서 다룹니다.

요약

  • 인용에 직결되는 검색용(OAI-SearchBot·Claude-SearchBot·PerplexityBot)과 실시간 방문용 봇은 반드시 허용합니다.
  • 학습 차단이 필요하면 GPTBot·ClaudeBot·Google-Extended 등만 막고, Google-Extended는 Gemini 앱 그라운딩에도 영향이 있음을 감안합니다.
  • 봇별 그룹을 만들 때는 공통 Disallow 줄을 반복하고, Sitemap 줄도 함께 넣습니다.
  • Cloudflare AI 봇 정책·Bot Fight Mode·관리형 robots.txt와 해외 IP 차단을 점검합니다.
  • noindex·nosnippet이 공개 페이지에 남아 있지 않은지, 본문이 자바스크립트 없이 HTML에 있는지 확인합니다.

자주 묻는 질문

GPTBot을 차단하면 ChatGPT 검색에서도 사라지나요?

아니요. OpenAI는 학습용 GPTBot과 검색용 OAI-SearchBot을 서로 독립된 설정으로 운영합니다. OAI-SearchBot을 허용해 두면 GPTBot을 막아도 ChatGPT 검색 답변에 나올 수 있고, 반대로 OAI-SearchBot을 막으면 검색 답변에 나오지 않습니다.

Google-Extended를 차단하면 구글 AI 개요에서 빠지나요?

아니요. 구글 AI 개요와 AI 모드는 Googlebot이 만든 검색 색인을 따르며, 구글은 Google-Extended가 검색 포함 여부나 순위에 영향을 주지 않는다고 밝힙니다. Google-Extended는 Gemini 앱과 Vertex AI의 학습·그라운딩 사용 여부를 정하는 토큰이므로, 막으면 Gemini 앱 답변의 근거로는 쓰이지 않을 수 있습니다.

robots.txt를 수정하면 언제 반영되나요?

즉시 반영되지는 않습니다. OpenAI는 검색용 설정 반영에 약 24시간, Perplexity는 최대 24시간이 걸린다고 안내하며, 구글은 robots.txt를 보통 최대 24시간 캐시합니다. 수정 후 하루 정도 지나 다시 확인하세요.

robots.txt에 AI 봇 이름을 하나씩 적어야 하나요?

모두 허용할 생각이라면 User-agent: * 그룹만으로 충분합니다. 봇 이름으로 그룹을 따로 만들면 그 봇은 * 그룹의 규칙을 따르지 않고 자기 그룹만 따르므로, /admin/ 같은 Disallow 줄을 그 그룹에도 반복해야 합니다.

Cloudflare가 AI 봇을 막고 있는지 어떻게 확인하나요?

Cloudflare 대시보드의 보안 설정에서 AI 봇 정책, Bot Fight Mode, 관리형 robots.txt 사용 여부를 확인하고 Security Analytics와 AI Crawl Control의 크롤러 목록에서 차단 기록을 봅니다. GEO Check 무료 간편 진단의 ‘AI 크롤러 실제 접속 테스트’로도 AI 봇 User-Agent 요청이 브라우저와 다르게 차단되는지 확인할 수 있습니다.

네이버 Yeti도 따로 설정해야 하나요?

User-agent: * 그룹에서 허용되어 있으면 Yeti도 수집할 수 있습니다. 네이버는 robots.txt가 HTML로 반환되면 파일이 없는 것으로, 5xx 오류면 모두 허용하지 않는 것으로 해석할 수 있다고 안내하므로 일반 텍스트로 정상 응답하는지 확인하세요. 네이버 서치어드바이저에 사이트를 등록하고 사이트맵을 제출하면 수집에 도움이 됩니다.

이 가이드의 항목, 우리 사이트는 어떨까요?

GEO Check 무료 간편 진단은 AI 크롤러 허용과 방화벽 차단, llms.txt, JSON-LD, 메타·OG, 사이트맵, 전 세계 8개 지역 속도, 구글 검색 노출을 1분 안에 점검합니다.

무료로 진단하기 정밀 리포트 보기