- Published on
AI 검색 크롤러와 robots.txt 실전 가이드: 노출과 학습을 따로 제어하는 법
- Authors

- Name
- 테크버킷
목차
- AI 크롤러를 허용하면 바로 인용될까?
- 검색·학습·사용자 요청 크롤러는 무엇이 다를까?
- OpenAI: OAI-SearchBot과 GPTBot은 독립적이다
- Google: AI Overviews는 Googlebot, Google-Extended는 별도 목적이다
- Anthropic: 검색·학습·사용자 접근을 세 봇으로 나눈다
- Perplexity: 자동 검색과 사용자 요청을 구분한다
- Bing과 Apple은 어떻게 볼까?
- robots.txt는 무엇을 제어하고 무엇을 제어하지 못할까?
- noindex와 robots.txt를 동시에 쓰면 왜 문제가 될까?
- 목적별 robots.txt는 어떻게 작성할까?
- 검색 노출은 허용하고 모델 학습은 거부하는 예시
- 검색과 학습을 모두 허용하는 예시
- 일부 경로만 제한하는 예시
- TechBukket의 robots.txt를 직접 확인해보니
- 배포 후 실제 접근은 어떻게 검증할까?
- 1. robots.txt 응답을 확인한다
- 2. 사용자 에이전트별 응답을 비교한다
- 3. 페이지 수준의 색인 제어를 확인한다
- 4. 실제 운영 도구와 로그를 확인한다
- AI 크롤러 설정에서 자주 하는 실수
- GPTBot을 허용하면 ChatGPT 검색에도 나온다고 생각한다
- Google-Extended를 막으면 AI Overviews도 차단된다고 생각한다
- robots.txt에 noindex를 쓴다
- User-agent 문자열만 보고 실제 봇이라고 믿는다
- 모든 서브도메인에 한 파일이 적용된다고 생각한다
- 구체적인 봇 규칙이 와일드카드 규칙을 자동으로 물려받는다고 생각한다
- llms.txt가 robots.txt를 대신한다고 생각한다
- AI 검색 크롤러 점검 체크리스트
- 다음 글
- 참고 자료
AI 검색에 노출되고 싶다고 모든 AI 크롤러를 허용할 필요는 없습니다. 검색 결과를 만드는 크롤러는 허용하고, 모델 학습용 크롤러는 조직의 정책에 따라 별도로 허용하거나 차단할 수 있습니다. 같은 회사의 봇도 검색, 학습, 사용자 요청이라는 목적이 다르므로 이름과 제어 범위를 구분해야 합니다.
예를 들어 ChatGPT 검색 노출은 OAI-SearchBot, OpenAI 모델 학습은 GPTBot으로 관리합니다. GPTBot을 차단하더라도 OAI-SearchBot을 허용하면 ChatGPT 검색에 사용될 가능성은 유지할 수 있습니다. 반대로 GPTBot만 허용하고 OAI-SearchBot을 차단하면 학습용 접근은 열어두면서 ChatGPT 검색 답변의 출처가 될 기회는 줄어듭니다.
AI 크롤러를 허용하면 바로 인용될까?
크롤러 접근은 AI 인용의 보장이 아니라 후보가 되기 위한 기술 조건입니다. 크롤러가 페이지를 읽을 수 있어도 질문과 관련이 없거나, 내용이 부정확하거나, 다른 출처보다 근거가 약하면 답변에 선택되지 않을 수 있습니다.
반대로 좋은 글이어도 robots.txt, 로그인, WAF, CDN, CAPTCHA가 필요한 검색 크롤러를 막으면 발견 기회가 줄어듭니다. GEO에서는 다음 단계를 따로 확인해야 합니다.
| 단계 | 확인할 질문 |
|---|---|
| 접근 | 필요한 크롤러가 URL을 요청할 수 있는가? |
| 발견 | 사이트맵과 내부 링크로 페이지를 찾을 수 있는가? |
| 색인·처리 | 검색 또는 답변 시스템이 내용을 저장하고 처리할 수 있는가? |
| 선택 | 질문에 답할 정확한 문장과 근거가 있는가? |
| 성과 | 인용·언급이 유입과 전환으로 이어지는가? |
robots.txt는 첫 번째 단계에 주로 관여합니다. 접근 허용만으로 나머지 네 단계가 자동으로 해결되지는 않습니다.
검색·학습·사용자 요청 크롤러는 무엇이 다를까?
2026년 8월 각 운영사의 공식 문서를 기준으로 보면 AI 관련 접근은 세 가지 목적으로 나뉩니다.
| 운영사 | 검색·답변 노출 | 모델 학습·개선 | 사용자 요청으로 방문 |
|---|---|---|---|
| OpenAI | OAI-SearchBot | GPTBot | ChatGPT-User |
| Anthropic | Claude-SearchBot | ClaudeBot | Claude-User |
| Perplexity | PerplexityBot | 별도 학습용 봇으로 설명하지 않음 | Perplexity-User |
Google Search의 Googlebot | Google-Extended 제품 토큰 | 별도 항목 없음 | |
| Microsoft | Bingbot | 별도 AI 학습용 토큰을 이 표에서 다루지 않음 | 별도 항목 없음 |
| Apple | Applebot | Applebot-Extended | 별도 항목 없음 |
이 표의 빈칸은 해당 회사가 AI 학습을 하지 않는다는 뜻이 아닙니다. 사이트 운영자가 공식 문서에서 독립적으로 제어할 수 있다고 명시한 제품 토큰과 사용자 에이전트만 표시한 것입니다. 이름과 정책은 바뀔 수 있으므로 실제 설정 전에는 각 운영사의 최신 문서를 다시 확인합니다.
OpenAI: OAI-SearchBot과 GPTBot은 독립적이다
OpenAI는 OAI-SearchBot과 GPTBot의 설정이 서로 독립적이라고 설명합니다.
OAI-SearchBot: ChatGPT 검색 기능에서 웹사이트를 검색 결과와 답변 출처로 표시하기 위한 자동 크롤러GPTBot: OpenAI의 생성형 AI 기반 모델 학습에 사용할 수 있는 콘텐츠를 수집하는 크롤러ChatGPT-User: 사용자가 ChatGPT나 Custom GPT에 특정 작업을 요청했을 때 페이지를 방문하는 사용자 기반 에이전트
OAI-SearchBot을 차단한 사이트는 ChatGPT 검색 답변에 표시되지 않지만 탐색용 링크로는 나타날 수 있습니다. GPTBot 차단은 향후 콘텐츠를 모델 학습에 사용하지 말라는 의사를 나타냅니다. 따라서 “ChatGPT에는 노출되되 모델 학습은 거부”하는 정책을 별도로 구성할 수 있습니다.
ChatGPT-User는 자동 웹 크롤링이나 ChatGPT 검색 포함 여부를 결정하는 봇이 아닙니다. OpenAI는 사용자 요청으로 시작된 접근에는 robots.txt 규칙이 적용되지 않을 수 있다고 안내합니다. ChatGPT 검색 노출을 관리하려면 ChatGPT-User가 아니라 OAI-SearchBot 정책을 확인해야 합니다.
Google: AI Overviews는 Googlebot, Google-Extended는 별도 목적이다
Google Search의 AI Overviews와 AI Mode에 표시될 자격은 일반 Google Search와 마찬가지로 Googlebot이 관리합니다. Google은 해당 AI 기능에 별도 기술 요건이나 특수 구조화 데이터가 없으며, 페이지가 색인되고 스니펫을 표시할 수 있어야 한다고 설명합니다.
Google-Extended는 실제 요청에 쓰이는 별도 HTTP 사용자 에이전트가 아니라 robots.txt에서 읽는 제품 토큰입니다. Gemini Apps와 Vertex AI API의 모델 개선과 grounding 사용을 제어하며, Google은 이 설정이 Google Search 포함 여부나 검색 순위에 영향을 주지 않는다고 명시합니다.
따라서 Google-Extended를 차단했다고 Google AI Overviews까지 차단됐다고 해석하면 안 됩니다. Google Search의 AI 기능은 Googlebot 접근, 색인 상태, 스니펫 제어를 기준으로 관리합니다.
Anthropic: 검색·학습·사용자 접근을 세 봇으로 나눈다
Anthropic은 다음 세 사용자 에이전트를 구분합니다.
Claude-SearchBot: Claude 사용자를 위한 검색 결과의 관련성과 정확성을 높이는 자동 검색 크롤러ClaudeBot: 향후 모델 학습 데이터에 포함될 수 있는 웹 콘텐츠 수집Claude-User: 사용자의 질문에 답하기 위해 웹페이지를 가져오는 사용자 요청 기반 접근
Claude 검색 노출은 유지하면서 모델 학습만 거부하려면 Claude-SearchBot과 Claude-User를 허용하고 ClaudeBot을 차단하는 정책을 고려할 수 있습니다. Anthropic은 IP 주소 차단보다 robots.txt의 사용자 에이전트 규칙으로 의사를 표시하라고 안내합니다.
Perplexity: 자동 검색과 사용자 요청을 구분한다
PerplexityBot은 Perplexity 검색 결과에서 웹사이트를 표시하고 연결하기 위한 자동 크롤러이며, Perplexity는 이 봇을 기반 모델 학습에 사용하지 않는다고 설명합니다. 검색 노출을 원하면 PerplexityBot과 공식 IP 범위를 허용해야 합니다.
Perplexity-User는 사용자가 질문했을 때 페이지를 가져오는 에이전트입니다. Perplexity는 사용자 요청으로 시작된 접근이므로 이 에이전트가 일반적으로 robots.txt를 무시한다고 명시합니다. WAF에서 사용자 에이전트 문자열만 허용하기보다 공식 IP 범위를 함께 확인해야 하는 이유입니다.
Bing과 Apple은 어떻게 볼까?
Microsoft의 일반 검색 크롤러는 Bingbot입니다. Bing 검색 색인과 Microsoft의 AI 표면에서 발견 가능성을 점검하려면 Bingbot 접근, Bing Webmaster Tools의 URL 검사, AI Performance 데이터를 함께 봅니다. 별도 AI 전용 봇 이름을 추측해서 규칙을 만들지 않습니다.
Apple은 Applebot으로 Spotlight, Siri, Safari 등 검색 기능에 필요한 콘텐츠를 수집합니다. 모델 학습 사용을 거부하려면 Applebot-Extended를 차단할 수 있으며, Apple은 이 설정이 일반적인 검색 발견 가능성에는 영향을 주지 않는다고 설명합니다.
robots.txt는 무엇을 제어하고 무엇을 제어하지 못할까?
robots.txt는 사이트 루트에서 크롤러가 요청할 수 있는 URL 경로를 알리는 공개 텍스트 파일입니다.
https://example.com/robots.txt
가장 단순한 형태는 모든 준수 크롤러의 공개 페이지 접근을 허용합니다.
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
하지만 robots.txt에는 다음과 같은 한계가 있습니다.
- 색인 제거 도구가 아닙니다. Google은
robots.txt가 페이지를 Google 검색 결과에서 제외하는 방법이 아니라고 명시합니다. Google 검색에서 빼려면 크롤러가 페이지를 읽을 수 있는 상태에서noindex를 제공하거나 인증으로 보호해야 합니다. - 보안 장치가 아닙니다. 파일 내용과 차단 경로는 누구나 볼 수 있습니다. 개인정보, 관리자 화면, 유료 콘텐츠는 로그인과 권한 검사로 보호해야 합니다.
- 모든 사용자 요청 에이전트를 통제하지 못합니다. ChatGPT-User와 Perplexity-User처럼 사람이 시작한 요청은 일반적인 자동 크롤러와 다르게 처리될 수 있습니다.
- WAF 허용을 대신하지 않습니다.
Allow: /라고 적어도 CDN, 방화벽, 봇 관리, 지역 제한이 요청을 거부하면 실제 접근은 실패합니다. - 인용을 보장하지 않습니다. 접근이 가능해도 콘텐츠 품질, 관련성, 신뢰도와 플랫폼의 선택 과정은 별개입니다.
noindex와 robots.txt를 동시에 쓰면 왜 문제가 될까?
페이지를 검색 결과에서 제외하려고 다음 두 규칙을 동시에 적용하는 경우가 있습니다.
User-agent: Googlebot
Disallow: /private-report/
<meta name="robots" content="noindex" />
Googlebot이 robots.txt 때문에 페이지를 가져오지 못하면 HTML의 noindex도 읽을 수 없습니다. 다른 페이지가 해당 URL을 링크하면 본문 없이 URL만 검색 결과에 남을 수 있습니다. 공개 URL을 검색에서 제외하는 목적이라면 크롤링은 허용하고 noindex를 읽게 하며, 정말 비공개라면 인증으로 보호합니다.
목적별 robots.txt는 어떻게 작성할까?
먼저 조직의 정책을 세 질문으로 정합니다.
- 검색·AI 답변에서 우리 페이지가 출처로 노출되길 원하는가?
- 모델 학습에 향후 콘텐츠를 제공할 것인가?
- 로그인·결제·개인정보 영역은 기술적으로 보호되어 있는가?
검색 노출은 허용하고 모델 학습은 거부하는 예시
다음 예시는 공개 콘텐츠의 검색·답변 노출은 열어두고, 공식적으로 구분 가능한 학습·모델 개선용 토큰은 차단합니다.
# AI 검색과 일반 검색
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Googlebot
User-agent: Bingbot
User-agent: Applebot
Allow: /
Disallow: /blog/draft
Disallow: /404
# 모델 학습·개선 사용 거부
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
User-agent: Applebot-Extended
Disallow: /
# 나머지 크롤러와 비공개가 아닌 공통 경로
User-agent: *
Allow: /
Disallow: /blog/draft
Disallow: /404
Sitemap: https://example.com/sitemap.xml
이 설정이 모든 AI 학습 이용을 법적·기술적으로 차단한다고 보장할 수는 없습니다. 각 운영사가 공식적으로 지원하는 제품 토큰에 사이트 운영자의 의사를 전달하는 설정입니다. 서비스 약관, 라이선스, 접근 제어 문제는 별도로 검토합니다.
검색과 학습을 모두 허용하는 예시
공개 사이트 전체를 검색과 학습 크롤러에 열 계획이라면 사용자 에이전트를 길게 나열할 필요가 없습니다.
User-agent: *
Allow: /
Disallow: /blog/draft
Disallow: /404
Sitemap: https://example.com/sitemap.xml
정상적으로 robots.txt를 따르고 더 구체적인 사용자 에이전트 그룹이 없는 크롤러라면 와일드카드 규칙을 적용합니다. 다만 WAF·CDN에서 AI 봇 카테고리를 별도로 차단하거나, 경로별 인증이 있거나, 하위 도메인의 정책이 다르면 추가 확인이 필요합니다.
일부 경로만 제한하는 예시
검색 노출이 필요 없는 미리보기와 내부 검색 결과만 제한할 수 있습니다.
User-agent: OAI-SearchBot
Allow: /
Disallow: /preview/
Disallow: /search
User-agent: Claude-SearchBot
Allow: /
Disallow: /preview/
Disallow: /search
비밀번호, API 키, 고객 데이터가 있는 경로를 Disallow에 적는 것으로 보호해서는 안 됩니다. 인증되지 않은 요청에는 서버가 401 Unauthorized 또는 403 Forbidden을 반환하도록 구현합니다.
TechBukket의 robots.txt를 직접 확인해보니
2026년 8월 29일 TechBukket 운영 사이트의 /robots.txt를 확인했습니다. 응답은 200 OK, 콘텐츠 유형은 text/plain이었고 다음 공통 규칙과 네 개의 사이트맵이 있었습니다.
User-agent: *
Allow: /
Disallow: /blog/draft
Disallow: /404
특정 AI 크롤러를 별도로 차단하지 않았으므로 robots.txt를 준수하는 자동 크롤러는 두 제한 경로를 제외한 공개 URL에 접근할 수 있습니다.
같은 날 GEO 시리즈 프리뷰 URL을 대상으로 Googlebot, Bingbot, OAI-SearchBot, GPTBot, Claude-SearchBot, PerplexityBot 사용자 에이전트 문자열을 각각 보내 확인했고 모두 200 OK를 받았습니다. 이는 사용자 에이전트 이름만으로 즉시 차단하는 WAF 규칙이 없다는 1차 확인입니다.
하지만 이 테스트는 실제 봇의 공식 IP에서 요청한 것이 아니므로 완전한 허용 증거가 아닙니다. 사용자 에이전트 문자열은 누구나 흉내 낼 수 있고, WAF가 IP·행동·요청 빈도를 함께 판단할 수 있습니다. 실제 운영에서는 서버 로그와 각 운영사가 공개한 IP 범위를 함께 확인해야 합니다.
배포 후 실제 접근은 어떻게 검증할까?
1. robots.txt 응답을 확인한다
curl -i https://example.com/robots.txt
다음을 확인합니다.
- 최종 응답이
200 OK인가? - HTML 오류 페이지가 아니라
text/plain인가? - 의도한 사용자 에이전트 그룹과 경로가 있는가?
- 사이트맵 URL이 현재 도메인을 가리키는가?
- 오래된 스테이징·서브도메인 규칙이 섞이지 않았는가?
2. 사용자 에이전트별 응답을 비교한다
curl -sS \
-A 'OAI-SearchBot' \
-o /dev/null \
-w '%{http_code}\n' \
https://example.com/important-page
Googlebot, Bingbot, Claude-SearchBot, PerplexityBot으로 바꿔 같은 URL을 확인합니다. 일반 브라우저는 200인데 특정 이름에서 403이나 CAPTCHA가 나오면 WAF와 봇 관리 규칙을 점검합니다.
이 명령은 사용자 에이전트 기반의 간단한 재현 테스트입니다. 실제 크롤러 여부를 인증하지는 않으므로 운영사의 공식 IP 목록, 역방향 DNS 또는 서버 로그를 이용한 추가 검증이 필요합니다.
3. 페이지 수준의 색인 제어를 확인한다
curl -sS https://example.com/important-page | grep -i 'robots'
curl -sSI https://example.com/important-page | grep -i 'x-robots-tag'
HTML의 <meta name="robots">와 응답 헤더의 X-Robots-Tag를 함께 봅니다. robots.txt가 허용되어도 noindex, nosnippet, X-Robots-Tag: noindex가 있으면 플랫폼별 표시 범위가 달라질 수 있습니다.
4. 실제 운영 도구와 로그를 확인한다
- Google Search Console URL 검사에서 크롤링·색인 상태 확인
- Bing Webmaster Tools URL 검사와 AI Performance 확인
- 서버·CDN 로그에서 공식 사용자 에이전트, IP, 응답 코드, 요청 URL 확인
- 즉시 결론 내리지 말고 서비스별 정책 반영 시간을 둔 뒤 재확인
- 사이트맵의 핵심 URL이 최종 canonical과 일치하는지 확인
OpenAI와 Perplexity는 크롤러별 공식 IP 범위를 JSON으로 공개합니다. 사용자 에이전트 문자열과 IP 범위를 함께 확인하면 단순한 봇 사칭과 실제 접근을 구분하는 데 도움이 됩니다.
AI 크롤러 설정에서 자주 하는 실수
GPTBot을 허용하면 ChatGPT 검색에도 나온다고 생각한다
GPTBot은 모델 학습용이고 ChatGPT 검색 노출은 OAI-SearchBot이 담당합니다. 검색 노출이 목표라면 OAI-SearchBot 접근을 따로 확인합니다.
Google-Extended를 막으면 AI Overviews도 차단된다고 생각한다
Google은 Google-Extended가 Google Search 포함 여부나 순위에 영향을 주지 않는다고 설명합니다. Google Search의 AI Overviews와 AI Mode는 일반 검색과 마찬가지로 Googlebot과 검색 미리보기 제어를 사용합니다.
robots.txt에 noindex를 쓴다
Google은 robots.txt의 noindex 규칙을 지원하지 않습니다. HTML 메타 태그나 X-Robots-Tag 헤더를 사용하고, 크롤러가 그 지시문을 읽을 수 있게 해야 합니다.
User-agent 문자열만 보고 실제 봇이라고 믿는다
사용자 에이전트는 위조할 수 있습니다. 과도한 요청을 허용 목록에 넣기 전 공식 IP 범위나 역방향 DNS를 확인합니다.
모든 서브도메인에 한 파일이 적용된다고 생각한다
https://example.com/robots.txt는 docs.example.com이나 shop.example.com의 정책을 대신하지 않습니다. 프로토콜, 호스트, 포트가 다른 사이트는 각각 루트에서 robots.txt를 제공하고 확인합니다.
구체적인 봇 규칙이 와일드카드 규칙을 자동으로 물려받는다고 생각한다
크롤러는 보통 자기 이름과 가장 구체적으로 일치하는 사용자 에이전트 그룹을 선택합니다. 특정 봇 그룹에 Allow: /만 쓰고 공통 그룹에만 /preview/ 차단을 두면, 특정 봇이 공통 차단 경로를 물려받지 않을 수 있습니다. 같은 정책이 필요하면 한 그룹에 사용자 에이전트를 함께 나열하거나 각 그룹에 경로 규칙을 반복합니다.
llms.txt가 robots.txt를 대신한다고 생각한다
llms.txt는 사이트의 핵심 문서와 맥락을 안내하는 용도로 제안된 파일입니다. 크롤링 허용·차단을 집행하는 표준 파일이 아니므로 robots.txt, 메타 로봇 지시문, 인증, WAF를 대신하지 않습니다.
AI 검색 크롤러 점검 체크리스트
-
/robots.txt가200 OK와 텍스트로 응답한다. - 검색 노출과 모델 학습 정책을 별도로 정했다.
- OAI-SearchBot과 GPTBot을 같은 목적으로 처리하지 않는다.
- Claude-SearchBot, ClaudeBot, Claude-User의 역할을 구분했다.
- Googlebot과 Google-Extended의 역할을 구분했다.
- PerplexityBot과 Perplexity-User의 차이를 이해했다.
- 필요한 일반 검색 크롤러인 Googlebot과 Bingbot을 확인했다.
-
robots.txt차단과noindex를 충돌하게 설정하지 않았다. - 비공개 콘텐츠는
Disallow가 아니라 인증으로 보호한다. - WAF·CDN·봇 관리가 필요한 크롤러를 막지 않는다.
- 사용자 에이전트뿐 아니라 공식 IP와 서버 로그도 확인한다.
- 사이트맵 URL과 canonical URL이 일치한다.
- 하위 도메인별
robots.txt를 따로 확인한다. - 크롤러 명칭과 운영사 정책의 수정일을 정기적으로 검토한다.
AI 크롤러 정책의 핵심은 많이 허용하는 것이 아닙니다. 검색 노출, 모델 학습, 사용자 요청을 구분하고 사업·저작권·보안 정책에 맞는 접근만 의도적으로 여는 것입니다. 설정 뒤에는 파일 내용만 보지 말고 실제 응답, WAF, 공식 IP, 서버 로그와 검색 도구까지 이어서 검증해야 합니다.
다음 글
- 웹 성능이 GEO에 미치는 영향: 속도가 인용을 직접 올릴까?
- AI 검색 시대에, llms.txt가 떠오르는 이유
- GEO 성과 측정: AI 인용·유입·전환을 함께 보는 방법
- GEO 시리즈 전체 보기
참고 자료
- OpenAI crawler overview
- Google Search Central: AI features and your website
- Google Search Central: Google-Extended
- Google Search Central: Introduction to robots.txt
- Google Search Central: Block indexing with noindex
- Anthropic: Web crawler and site owner controls
- Perplexity Crawlers
- Microsoft Bing: Which crawlers does Bing use?
- Apple: About Applebot