robots.txt, 뭔가 달라졌다
Cloudflare Pages로 배포한 사이트의 robots.txt를 열어보면, 예전과는 사뭇 다른 내용이 눈에 들어온다.
User-agent: *
Content-Signal: search=yes,ai-train=no
Allow: /
User-agent: ClaudeBot
Disallow: /
User-agent: GPTBot
Disallow: /
User-agent: Bytespider
Disallow: /Content-Signal이라는 생소한 디렉티브가 추가되었고, ClaudeBot, GPTBot 등 AI 크롤러들에 대한 Disallow: / 규칙이 들어가 있다. 직접 작성한 적 없는 이 내용은 Cloudflare가 자동으로 주입한 것이다.
이것이 바로 Cloudflare의 Managed robots.txt 기능이다.
Content-Signal이란
Content-Signal은 Cloudflare가 2025년 9월에 제안한 새로운 robots.txt 디렉티브다. 기존 Allow/Disallow가 “크롤링 자체를 허용할지 말지”를 결정하는 것이라면, Content-Signal은 한 단계 더 나아가 “크롤링한 콘텐츠를 어떤 용도로 사용해도 되는지”를 명시한다.
세 가지 signal이 정의되어 있다:
| Signal | 의미 |
|---|---|
search | 검색 인덱스 구축 및 검색 결과 제공 (링크, 짧은 발췌문). AI 생성 검색 요약은 포함하지 않음 |
ai-input | AI 모델의 입력으로 사용 (RAG, grounding, AI 검색 답변 등 실시간 활용) |
ai-train | AI 모델의 학습 또는 fine-tuning 데이터로 사용 |
각 signal의 값은 yes(허용), no(거부), 또는 생략(의사 표시 없음)이다.
# 검색 인덱싱은 허용, AI 학습은 거부, AI 입력은 판단 유보
Content-Signal: search=yes,ai-train=no기존 robots.txt의 한계를 생각해보면 이 접근이 왜 필요한지 이해가 된다. 예를 들어, 블로그 운영자 입장에서 Google 검색에는 노출되고 싶지만, 내 글이 GPT의 학습 데이터로 쓰이는 건 원하지 않을 수 있다. 기존의 Disallow만으로는 “크롤링은 허용하되 학습에는 쓰지 마라”는 의사를 표현할 방법이 없었다.
Content-Signal은 이 간극을 메운다. 접근 제어(Allow/Disallow)와 사용 목적 제어(Content-Signal)를 분리한 것이다.
Cloudflare의 Managed robots.txt 기본 설정은 search=yes,ai-train=no로, ai-input은 의도적으로 생략되어 있다. 사이트 소유자가 명시적으로 선택하지 않은 부분까지 대신 결정하지 않겠다는 취지다.
차단되는 AI 크롤러 목록
Managed robots.txt가 기본적으로 Disallow: /를 적용하는 AI 크롤러는 8개다:
| User-Agent | 운영사 | 용도 |
|---|---|---|
GPTBot | OpenAI | ChatGPT 학습 데이터 수집 |
ClaudeBot | Anthropic | Claude 학습 데이터 수집 |
Google-Extended | Gemini 등 AI 학습용 (검색 크롤링과 분리) | |
Bytespider | ByteDance | TikTok/Douyin AI 학습 |
CCBot | Common Crawl | 오픈 데이터셋 수집 (다수 AI 학습에 활용) |
Amazonbot | Amazon | Alexa 등 AI 서비스용 |
Applebot-Extended | Apple | Apple Intelligence 학습용 |
meta-externalagent | Meta | Meta AI 학습 데이터 수집 |
주목할 점은 Google의 경우 Googlebot(검색)과 Google-Extended(AI 학습)를 분리해둔 것이다. Managed robots.txt는 Google-Extended만 차단하므로, Google 검색 인덱싱에는 영향이 없다.
다만 이 분리에는 맹점이 있다. Google AI Overviews(AI 생성 검색 요약)는 Googlebot이 수집한 데이터를 기반으로 동작하기 때문에, Google-Extended를 차단해도 AI Overviews에 콘텐츠가 활용되는 것을 막을 수 없다. 검색 노출을 유지하면서 AI 활용만 차단하고 싶은 퍼블리셔에게는 딜레마인 셈이다.
Managed robots.txt 동작 방식
활성화
Cloudflare 대시보드의 Control AI Crawlers 메뉴에서 활성화할 수 있다. 무료 플랜을 포함한 모든 플랜에서 사용 가능하다.
기존 robots.txt와의 병합
사이트에 이미 robots.txt가 있는 경우, Cloudflare는 기존 파일을 덮어쓰지 않고 Managed 디렉티브를 앞에 추가(prepend)한다. RFC 9309(robots.txt 표준)의 specificity 규칙에 따라, 더 구체적인 규칙이 우선 적용되도록 Managed 블록을 먼저 배치하는 것이다.
# BEGIN Cloudflare Managed content
User-agent: *
Content-Signal: search=yes,ai-train=no
Allow: /
User-agent: GPTBot
Disallow: /
# ... (나머지 AI 크롤러)
# END Cloudflare Managed Content
# 기존 사이트의 robots.txt 내용이 이어짐Content Signals Policy 표시
Managed robots.txt와는 별도로, Content Signals Policy 옵션이 있다. 이것이 활성화되면 robots.txt 상단에 Content-Signal의 법적 의미를 설명하는 주석 블록이 추가된다:
# As a condition of accessing this website, you agree to abide by the following
# content signals:
#
# (a) If a Content-Signal = yes, you may collect content for the corresponding use.
# (b) If a Content-Signal = no, you may not collect content for the corresponding use.
# ...이 주석은 EU 디지털 단일 시장 저작권 지침(Directive 2019/790) 제4조에 근거한 권리 유보 선언을 포함한다. robots.txt에 법적 구속력을 부여하려는 시도라고 볼 수 있다.
표준화 현황
Content-Signal은 현재 Cloudflare의 독자적 제안이며, 공식 표준은 아니다. 하지만 표준화를 향한 움직임은 활발하다.
- Cloudflare는 Content Signals Policy 생성 도구와 가이드를 contentsignals.org에 공개하고, CC0 라이선스(퍼블릭 도메인)로 배포했다. 누구든 자유롭게 채택할 수 있도록 한 것이다.
- IETF에는 AIPREF(AI Preferences) Working Group이 설립되어 AI 콘텐츠 사용 선호도를 표현하는 표준 메커니즘을 개발 중이다. HTTP 헤더, robots.txt, well-known URI 등 다양한 채널을 통한 의사 표시 방법을 논의하고 있으며, 2026년 8월까지 제안 마감을 목표로 하고 있다.
- Cloudflare는 Content-Signal을 IETF ai-control 메일링 리스트에 제출하면서, 이를 “표준화가 진행되는 동안의 임시 조치”로 명시했다.
- Google Chrome의 Lighthouse 프로젝트에서도
Content-Signal디렉티브를 인식하는 PR이 제출된 바 있어, 일부 생태계 확산이 이루어지고 있다.
한계와 논란
강제성의 부재
robots.txt는 본질적으로 자발적 준수에 의존한다. Content-Signal 역시 마찬가지다. Cloudflare도 “일부 회사는 이를 무시할 수 있다”고 명시하고 있으며, 실질적인 차단이 필요하면 WAF나 Bot Management를 병행해야 한다고 안내한다.
Google의 미온적 태도
Cloudflare는 Content Signals 발표 전 Google에 사전 통보했지만, Google은 이를 존중하겠다는 공식 입장을 내놓지 않았다. AI Overviews가 Googlebot 데이터에 기반하는 구조가 바뀌지 않는 한, Content-Signal: ai-input=no를 설정해도 실효성은 제한적일 수 있다.
동의 없는 주입 논란
일부 사용자들은 Cloudflare가 자신의 robots.txt에 Content-Signal 관련 주석을 사전 동의 없이 주입한다며 커뮤니티 포럼에서 불만을 제기했다. 기존 robots.txt 유효성 검사기에서 Content-Signal이 인식되지 않아 경고가 발생하는 문제도 보고되었다.
Cloudflare의 이중적 위치
Cloudflare는 한편으로 AI 크롤러를 차단하는 도구를 제공하면서, 다른 한편으로는 “Markdown for Agents” 같이 AI가 웹 콘텐츠를 더 잘 소비할 수 있게 하는 기능도 출시하고 있다. 이에 대해 “누구도 요청하지 않은 일을 또 하고 있다”는 비판의 목소리도 있다.
마무리
robots.txt는 1994년 비공식 관례에서 시작해 2022년 RFC 9309로 표준화되기까지 30년 가까이 걸렸다. AI 크롤링이라는 새로운 현실 앞에서, Content-Signal이 같은 여정을 밟을 수 있을지는 아직 알 수 없다.
다만 분명한 것은, “크롤링 허용 여부”만으로는 더 이상 충분하지 않다는 점이다. 콘텐츠를 수집하는 것과 학습에 사용하는 것은 다른 문제이며, 이를 구분해서 의사를 표현할 수 있는 메커니즘이 필요하다. Content-Signal이 그 답이 될지, 아니면 IETF AIPREF가 다른 형태의 표준을 내놓을지… 지켜볼 만한 흐름인 것 같다.