ai

O robots.txt gerido pela Cloudflare bloqueia os crawlers de IA

A Cloudflare pode injetar o seu próprio bloco de robots.txt acima das tuas regras. O MetricSpot verifica se esse bloco gerido bloqueia o GPTBot ou o ClaudeBot, mesmo quando o teu ficheiro os permite.

O que esta verificação faz

Procura os marcadores com que a Cloudflare envolve as diretivas que injeta no /robots.txt:

# BEGIN Cloudflare Managed content
User-agent: *
Content-Signal: search=yes,ai-train=no,use=reference
Allow: /

User-agent: ClaudeBot
Disallow: /

User-agent: GPTBot
Disallow: /
# END Cloudflare Managed Content

User-agent: GPTBot
Allow: /

A secção gerida é avaliada por si só. A verificação falha quando contém Disallow: / para o GPTBot ou o ClaudeBot. As tuas regras abaixo do marcador são avaliadas à parte por Permitir crawlers de IA, por isso os dois resultados dizem-te exatamente que camada está a bloquear.

A verificação só aparece quando os marcadores existem. Os sites que não usam o robots.txt gerido da Cloudflare nunca a veem.

Porque é importante

A opção “Manage AI bots’ robots.txt” da Cloudflare (em AI Crawl Control) reescreve o ficheiro que a tua origem serve. Antepõe um bloco que:

  • declara Content-Signal: ai-train=no para todos os crawlers, uma reserva de direitos ao abrigo da diretiva europeia de direitos de autor
  • acrescenta Disallow: / para GPTBot, ClaudeBot, CCBot, Google-Extended, Bytespider, Amazonbot e outros

Muitos proprietários ativam-na pelo Content Signal e não reparam nas linhas Disallow. Depois acrescentam Allow: / mais abaixo e assumem que ganha. Não ganha de forma fiável: os parsers de robots.txt fundem os grupos de maneiras diferentes, vários crawlers usam o primeiro grupo correspondente, e a Cloudflare normalmente também bloqueia esses mesmos bots na edge (ver Crawlers de IA bloqueados na edge).

O resultado é um robots.txt que diz uma coisa em cima e o contrário em baixo. Esta verificação torna visível a metade de cima.

Como corrigir

  1. Abre o teu domínio no painel da Cloudflare e vai a AI Crawl Control (contas antigas: Security → Bots).
  2. Desativa Manage AI bots’ robots.txt. O bloco injetado desaparece em poucos minutos e o teu ficheiro passa a ser servido tal como está.
  3. Se queres manter a linha Content-Signal, deixa a opção ligada e coloca o GPTBot e o ClaudeBot em Allow na lista de crawlers. A Cloudflare retira então as linhas Disallow deles do bloco gerido.
  4. Verifica também a edge: o mesmo ecrã controla se esses crawlers recebem um 403 antes sequer de lerem o robots.txt.

Verificar

curl -s https://yourdomain.com/robots.txt | sed -n '/BEGIN Cloudflare/,/END Cloudflare/p'

Se o bloco desapareceu, ou já não lista o GPTBot e o ClaudeBot sob Disallow: /, volta a correr a auditoria.

Perguntas frequentes

Nunca editei o robots.txt. De onde vem este bloco?

Da Cloudflare, não do teu CMS. Tudo o que está entre # BEGIN Cloudflare Managed content e # END Cloudflare Managed Content é gerado na edge e nunca toca no ficheiro do teu servidor.

Um Allow: / mais abaixo anula-o?

Não de forma fiável. O RFC 9309 diz que um Allow e um Disallow equivalentes devem resolver-se como Allow quando os grupos são fundidos, mas nem todos os crawlers fundem grupos, e o bloco da Cloudflare vem primeiro. Elimina o conflito em vez de confiares no comportamento do parser.

A linha Content-Signal é prejudicial?

Não. ai-train=no é uma reserva de direitos, não um bloqueio. Podes mantê-la e mesmo assim permitir que o GPTBot e o ClaudeBot rastreiem para pesquisa e citações.

Fontes

Última atualização 2026-09-04