ai

El robots.txt gestionado por Cloudflare bloquea los rastreadores de IA

Cloudflare puede inyectar su propio bloque de robots.txt por encima de tus reglas. MetricSpot comprueba si ese bloque gestionado bloquea a GPTBot o ClaudeBot, aunque tu propio archivo los permita.

Qué comprueba esta auditoría

Busca los marcadores con los que Cloudflare envuelve las directivas que inyecta en /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

# Your own rules start here
User-agent: GPTBot
Allow: /

La sección gestionada se evalúa por separado. La comprobación falla cuando contiene Disallow: / para GPTBot o ClaudeBot. Tus propias reglas, debajo del marcador, las evalúa aparte Permite los rastreadores de IA, así que los dos hallazgos te dicen exactamente qué capa está bloqueando.

La comprobación solo aparece cuando existen los marcadores. Los sitios que no usan el robots.txt gestionado de Cloudflare nunca la ven.

Por qué importa

La opción “Manage AI bots’ robots.txt” de Cloudflare (dentro de AI Crawl Control) reescribe el archivo que sirve tu servidor. Antepone un bloque que:

  • declara Content-Signal: ai-train=no para todos los rastreadores, una reserva de derechos según la directiva europea de copyright
  • añade Disallow: / para GPTBot, ClaudeBot, CCBot, Google-Extended, Bytespider, Amazonbot y otros

Muchos propietarios lo activan por el Content Signal y no se fijan en las líneas Disallow. Luego añaden Allow: / más abajo y dan por hecho que gana. No lo hace de forma fiable: los parsers de robots.txt combinan los grupos de forma distinta, varios rastreadores toman el primer grupo que coincide, y Cloudflare normalmente bloquea además esos mismos bots en el borde (ver Rastreadores de IA bloqueados en el borde).

El resultado es un robots.txt que dice una cosa arriba y la contraria abajo. Esta comprobación hace visible la mitad de arriba.

Cómo solucionarlo

  1. Abre tu dominio en el panel de Cloudflare y entra en AI Crawl Control (cuentas antiguas: Security → Bots).
  2. Desactiva Manage AI bots’ robots.txt. El bloque inyectado desaparece en unos minutos y se sirve tu archivo tal cual.
  3. Si quieres conservar la línea Content-Signal, deja la opción activada y pon GPTBot y ClaudeBot en Allow en la lista de rastreadores. Cloudflare quita entonces sus líneas Disallow del bloque gestionado.
  4. Revisa también el borde: la misma pantalla controla si esos rastreadores reciben un 403 antes de llegar a leer robots.txt.

Verificar

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

Si el bloque ha desaparecido, o ya no lista GPTBot y ClaudeBot bajo Disallow: /, vuelve a lanzar la auditoría.

Preguntas frecuentes

Nunca he editado robots.txt. ¿De dónde sale este bloque?

De Cloudflare, no de tu CMS. Todo lo que hay entre # BEGIN Cloudflare Managed content y # END Cloudflare Managed Content se genera en el borde y nunca toca el archivo de tu servidor.

¿Un Allow: / más abajo lo anula?

No de forma fiable. El RFC 9309 dice que, al combinar grupos, un Allow y un Disallow equivalentes deberían resolverse como Allow, pero no todos los rastreadores combinan grupos, y el bloque de Cloudflare va primero. Elimina el conflicto en vez de confiar en el comportamiento del parser.

¿La línea Content-Signal es perjudicial?

No. ai-train=no es una reserva de derechos, no un bloqueo. Puedes mantenerla y aun así permitir que GPTBot y ClaudeBot rastreen para búsqueda y citas.

Fuentes

Última actualización 2026-09-04