robots.txt가 ChatGPT의 인용 여부를 결정합니다. 5분 만에 확인하는 방법
요약
robots.txt 설정 오류로 인해 AI 검색 엔진(Perplexity, ChatGPT 등)에서 사이트 인용이 차단되는 문제를 다룹니다. 학습용 크롤러와 검색용 크롤러를 구분하여 설정하는 방법과 CDN에 의한 의도치 않은 차단 주의사항을 설명합니다.
핵심 포인트
- 학습용(Training)과 검색용(Retrieval) 크롤러를 구분하여 설정해야 함
- 검색 에이전트 차단 시 AI 답변에서 출처 및 링크 인용이 불가능함
- CDN(Cloudflare 등)이 삽입한 관리형 규칙이 설정과 충돌할 수 있음
- 실제 서비스되는 robots.txt 파일은 curl 등으로 직접 확인 권장
점점 더 많은 답변이 파란색 링크(blue link) 대신 ChatGPT, Claude, Perplexity를 통해 독자들에게 전달되고 있습니다. 이러한 답변들이 과연 _당신_을 인용할 수 있을지는 단 하나의 파일, robots.txt에 의해 결정됩니다. 그리고 대부분의 robots.txt 파일은 의도치 않게 이 결정을 내리고 있습니다.
두 종류의 AI 크롤러(crawler) — 그리고 인용을 위해 중요한 것은 단 하나뿐
| 종류 | User agents | 차단 시 의미 |
|---|---|---|
| 학습 (Training) | GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, CCBot | 당신의 콘텐츠가 모델 학습에 사용되지 않음 |
| 검색 (Retrieval) | OAI-SearchBot, ChatGPT-User, Claude-SearchBot, Claude-User, PerplexityBot | AI 답변에서 당신이 절대 인용될 수 없음 — 링크도, 출처 표기도 절대 없음 |
학습용 크롤러를 차단하는 것은 정당한 선택입니다. 하지만 검색 에이전트(retrieval agents)를 차단하는 것은 사이트가 의도한 경우가 거의 없습니다. 이는 그저 AI 답변에서 당신을 조용히 제거할 뿐입니다.
일괄 차단의 실수
2024/25년의 "AI 봇 차단" 열풍은 다음과 같은 설정을 많이 만들어냈습니다:
User-agent: GPTBot
User-agent: ChatGPT-User
User-agent: ClaudeBot
...
이 단일 그룹은 학습과 검색을 모두 차단합니다. 만약 당신이 학습 차단 입장을 유지하면서도 가시성(visibility)을 원했다면, 이는 최악의 결과가 됩니다. 이번 주에 주요 뉴스 사이트들을 확인해 보았습니다: nytimes.com은 7개의 검색 에이전트 중 1개를 허용하고 있으며, reuters.com, theverge.com, wired.com은 각각 2개를 허용하고 있습니다. 이들 중 어느 곳도 완전히 인용될 수 있는 상태가 아닙니다. 그리고 이들은 비즈니스 모델 전체가 인용되는 출처가 되는 것에 기반을 둔 사이트들입니다.
의도적인 정책 — 인용은 허용하되 학습 자료로는 사용하지 않음 — 은 다음과 같은 형태를 띱니다:
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
...
CDN의 반전: 당신이 작성하지 않은 규칙들
제가 직접 겪은 사례는 다음과 같습니다. 제 사이트에서 제공되는 robots.txt에는 제가 직접 작성한 규칙들 **위(above)**에 CDN(Cloudflare)이 삽입한 "관리형(managed)" 차단 목록이 포함되어 있었습니다. 이 목록은 제가 직접 작성한 섹션에서 명시적으로 허용한 크롤러들을 차단하고 있었을 뿐만 아니라, EU DSM 지침(EU DSM Directive) 제4조에 따른 권리 유보를 명시하는 Content-Signal: 라인까지 포함하고 있었습니다. 제가 작성한 적도 없는 법적 성명서가 제 이름으로 게시되어 있었던 것입니다.
두 가지 교훈:
- 소스 파일이 아닌, 실제로 제공되는(served) 파일을 읽으세요.
curl https://yoursite/robots.txt를 실행하여 본인이 작성하지 않은 섹션이 있는지 확인하십시오. - 동일한 크롤러에 대해 상충하는 그룹이 존재하면 사실상 정의되지 않은 동작(undefined behavior)이 발생합니다. 명세서(spec)의 우선순위 결정 규칙(가장 긴 일치 항목이 승리, 길이가 같으면
Allow가Disallow를 이김, 특정 에이전트를 지정한 그룹이*보다 우선함)은 그룹 내부의 충돌은 해결하지만, 두 그룹이 동일한 봇을 대상으로 서로 반대되는 규칙을 적용할 때 어떤 일이 벌어질지는 각 벤더의 구현 방식에 달려 있습니다. 여러분은 해당 크롤러에게 실제로 무엇을 전달하고 있는지 진정으로 알 수 없습니다.
robots.txt를 넘어: 또 다른 두 가지 조용한 살인자
- JavaScript 없이는 비어 있는 페이지. 수집 에이전트(Retrieval agents)는 렌더링을 하지 않습니다. Google이 잘 순위를 매기는 페이지(Google은 렌더링을 수행함)라도 모든 AI 시스템에는 빈 페이지로 보일 수 있습니다. 테스트 방법:
curl로 페이지를 호출하여 텍스트가 HTML 내에 존재하는지 확인하십시오. - 누락된 출처 신호(Attribution signals). AI 답변은 저자, 날짜, 질문 형태의 헤딩(headings), 그리고
FAQPage마크업(markup)이 있는 페이지에서 구절을 더 쉽게 가져오고 출처를 밝힙니다.
5분 체크리스트
curl https://yoursite/robots.txt실행- 위에서 언급한 5가지 수집 에이전트(retrieval agents)를 검색합니다. 이들에 해당하는
Disallow가 있다면 = AI 답변에서 제외됩니다. - 본인이 작성하지 않은 섹션과
Content-Signal:라인이 있는지 확인합니다. - 주요 페이지를
curl로 호출하여 JavaScript 없이도 텍스트가 존재하는지 확인합니다.
한 사이트에 대해서라면, 솔직히 그것만으로도 충분합니다. 저는 또한 대량/예약 버전도 구축했습니다. 이는 벤더별로 정확히 이러한 인용 가능성 (citability) 확인을 포함하고, 이전 실행 결과와의 차이점 (diff)을 비교하는 기술적 SEO 감사 (SEO audit) 도구입니다: SEO Audit + AI Visibility on Apify. 공개 사항: 이것은 제가 만든 도구입니다. 위의 수동 확인 방식은 curl 외에는 아무것도 필요하지 않습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기