robots.txt에 어떤 AI 크롤러를 허용해야 할까요? (GPTBot, PerplexityBot, Google-Extended 등)
요약
AI 크롤러의 종류와 역할을 이해하고 robots.txt 파일을 활용하여 콘텐츠 수집 방식을 관리하는 방법을 안내합니다. 훈련(Training) 목적과 실시간 답변(Answer) 제공 목적에 따라 차단 전략을 다르게 가져가야 합니다.
핵심 포인트
- robots.txt는 요청일 뿐, 절대적인 잠금장치가 아닙니다.
- GPTBot 등은 모델 훈련용 크롤러이며, ClaudeBot 등도 유사합니다.
- 답변 가시성을 유지하려면 답변 크롤러(PerplexityBot 등)를 차단하는 것이 더 큰 비용입니다.
AI 비서들은 두 가지 방식으로 웹사이트를 찾고 인용합니다. 일부 크롤러는 미래 모델을 훈련하기 위해 페이지들을 수집합니다. 다른 크롤러들은 비서가 웹에서 검색하고 답변에 귀하의 사이트를 연결할 수 있도록 페이지들을 가져옵니다. robots.txt 파일은 이러한 두 가지 유형을 다르게 처리할 수 있지만, 각 사용자 에이전트(user-agent)가 무엇을 하는지 알아야만 가능합니다.
먼저 한 가지 주의사항이 있습니다: robots.txt는 요청일 뿐, 잠금장치는 아닙니다. 평판 좋은 크롤러들은 이를 준수합니다. 그 외의 것은 서버 레벨 또는 방화벽 차단이 필요합니다.
주요 AI 크롤러
| User-agent | Owner | 역할 |
|---|---|---|
| GPTBot | OpenAI | OpenAI 모델 훈련을 위한 콘텐츠 수집 |
| ... | ||
Google-Extended와 Applebot-Extended는 별도의 크롤러가 아닙니다. 이들은 Googlebot이나 Applebot에 의해 이미 크롤링된 콘텐츠에 적용되는 옵트아웃 토큰입니다. 이를 차단한다고 해서 Google 검색에서 제외되는 것은 아니며, AI Overviews는 Googlebot과 nosnippet 같은 표준 지침을 따릅니다. |
권장 robots.txt 블록
만약 오늘날 AI 관련 규칙이 없다면, 귀하의 사이트는 이미 이 모든 봇에게 열려 있습니다. 아래의 블록은 AI 검색에서 가시성을 유지하면서 훈련(training)으로부터 옵트아웃하는 방법입니다:
# 훈련 크롤러: 옵트아웃
User-agent: GPTBot
User-agent: ClaudeBot
...
Googlebot과 *에 대한 기존 규칙은 별도의 그룹으로 유지하십시오.
훈련 vs. 답변 크롤러: 트레이드오프
훈련 크롤러는 미래 모델 버전에 데이터를 공급합니다. 이들을 차단하는 것은 귀하의 콘텐츠가 미래 훈련에 사용되기를 원하지 않는다는 신호를 보내는 것입니다. 이는 이미 학습된 모델 내용을 제거하지 않으며, 트래픽에 미치는 영향을 측정하기 어렵습니다.
답변 크롤러는 귀하가 실시간 답변에 나타날지 여부를 결정합니다. PerplexityBot이나 OAI-SearchBot을 차단하면, 사람들이 관련 질문을 할 때 귀하의 페이지가 인용될 가능성이 낮아집니다. 가시성을 원하는 대부분의 사이트에게는 이것이 더 큰 비용입니다.
위의 차단 규칙은 합리적인 기본값입니다. 라이선스 문제, 유료 콘텐츠 또는 비공개 자료가 있는 경우 조정해야 합니다. 또한 공급업체들은 ChatGPT-User와 같은 사용자 트리거 페처(user-triggered fetchers)는 robots.txt 규칙을 따르지 않을 수 있으므로, 해당 규칙은 최선의 노력(best effort)으로 간주해야 한다고 언급합니다.
규칙 확인 방법
- 브라우저에서
https://yoursite.com/robots.txt를 엽니다. 200과 일반 텍스트가 반환되어야 합니다. 404는 규칙이 없다는 의미이므로 모든 것이 허용됩니다. 5xx 오류는 크롤러를 완전히 중단시킬 수 있습니다. - Python의 표준 라이브러리를 사용하여 규칙을 테스트합니다:
from urllib.robotparser import RobotFileParser
rp = RobotFileParser("https://yoursite.com/robots.txt")
...
- 서버 로그 또는 분석에서 이러한 user-agent 문자열을 검색합니다. 허용한 봇이 페이지에 도달하는지, 차단한 봇이
robots.txt만 요청하는지 확인합니다. - CDN 또는 WAF를 확인합니다. robots.txt와 관계없이 크롤러를 차단하는 bot-protection 규칙(403 반환)은 허용하려던 봇까지도 차단할 수 있습니다.
Python의 파서는 Google이 하는 모든 와일드카드(wildcard)를 처리하지 못하므로, 중요한 경로는 여러 도구로 테스트해야 합니다.
흔한 실수
- Googlebot을 실수로 차단하는 경우. Google-Extended는 Googlebot이 아닙니다. Googlebot을 차단하면 Google 검색에서 제외됩니다.
*규칙이 AI 봇을 포괄한다고 가정하는 경우. 크롤러는 이름과 일치하는 가장 구체적인 그룹을 따르며*를 무시합니다. GPTBot에 자체 그룹이 있다면, 그 그룹은 GPTBot에 대한 모든 규칙을 포함해야 합니다.- 개인 정보 보호 목적으로 robots.txt를 사용하는 경우. 이 파일은 공개적이며 단지 요청일 뿐입니다. 비공개 페이지는 인증(authentication)으로 보호해야 합니다.
- Disallow와 Allow를 혼동하는 경우.
Disallow: /는 전체 사이트를 차단하지만, 빈Disallow:는 모든 것을 허용합니다. 잘못 배치된 슬래시(/) 하나가 전체 사이트를 검색에서 숨길 수 있습니다. - CDN을 무시하는 경우. 봇 보호 규칙은 robots.txt의 내용을 재정의할 수 있습니다.
- 즉각적인 결과를 기대하는 경우. 크롤러는 robots.txt를 캐싱하며, AI 답변에서 제거되는 데 시간이 걸립니다.
robots.txt의 AI 크롤러 규칙을 무료로 테스트해 보세요: [https://citescore.vercel.app/free-check]
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기