ai

Il robots.txt gestito da Cloudflare blocca i crawler AI

Cloudflare può inserire un proprio blocco robots.txt sopra le tue regole. MetricSpot controlla se quel blocco gestito vieta GPTBot o ClaudeBot, anche quando il tuo file li consente.

Cosa controlla questo check

Cerca i marcatori con cui Cloudflare racchiude le direttive che inserisce in /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: /

La sezione gestita viene giudicata da sola. Il check fallisce quando contiene Disallow: / per GPTBot o ClaudeBot. Le tue regole sotto il marcatore sono valutate separatamente da Permettere i crawler AI, quindi i due rilievi ti dicono esattamente quale livello sta bloccando.

Il check compare solo quando i marcatori sono presenti. I siti che non usano il robots.txt gestito di Cloudflare non lo vedono mai.

Perché è importante

L’opzione “Manage AI bots’ robots.txt” di Cloudflare (in AI Crawl Control) riscrive il file servito dalla tua origine. Antepone un blocco che:

  • dichiara Content-Signal: ai-train=no per tutti i crawler, una riserva di diritti ai sensi della direttiva UE sul copyright
  • aggiunge Disallow: / per GPTBot, ClaudeBot, CCBot, Google-Extended, Bytespider, Amazonbot e altri

Molti proprietari lo attivano per il Content Signal e non notano le righe Disallow. Poi aggiungono Allow: / più in basso e danno per scontato che vinca. Non in modo affidabile: i parser di robots.txt uniscono i gruppi in modi diversi, diversi crawler prendono il primo gruppo corrispondente, e Cloudflare di solito blocca gli stessi bot anche all’edge (vedi Crawler AI bloccati all’edge).

Il risultato è un robots.txt che dice una cosa in alto e il contrario in basso. Questo check rende visibile la metà superiore.

Come risolvere

  1. Apri il tuo dominio nella dashboard Cloudflare e vai su AI Crawl Control (account meno recenti: Security → Bots).
  2. Disattiva Manage AI bots’ robots.txt. Il blocco inserito sparisce in pochi minuti e il tuo file viene servito così com’è.
  3. Se vuoi mantenere la riga Content-Signal, lascia l’opzione attiva e imposta GPTBot e ClaudeBot su Allow nell’elenco dei crawler. Cloudflare rimuove allora le loro righe Disallow dal blocco gestito.
  4. Controlla anche l’edge: la stessa schermata decide se quei crawler ricevono un 403 prima ancora di leggere robots.txt.

Verifica

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

Se il blocco è sparito, o non elenca più GPTBot e ClaudeBot sotto Disallow: /, rilancia l’audit.

Domande frequenti

Non ho mai modificato robots.txt. Da dove arriva questo blocco?

Da Cloudflare, non dal tuo CMS. Tutto ciò che sta tra # BEGIN Cloudflare Managed content e # END Cloudflare Managed Content viene generato all’edge e non tocca mai il file sul tuo server.

Un Allow: / più in basso lo annulla?

Non in modo affidabile. L’RFC 9309 dice che un Allow e un Disallow equivalenti dovrebbero risolversi in Allow quando i gruppi vengono uniti, ma non tutti i crawler uniscono i gruppi, e il blocco Cloudflare viene prima. Elimina il conflitto invece di affidarti al comportamento del parser.

La riga Content-Signal è dannosa?

No. ai-train=no è una riserva di diritti, non un blocco. Puoi tenerla e consentire comunque a GPTBot e ClaudeBot di scansionare per ricerca e citazioni.

Fonti

Ultimo aggiornamento 2026-09-04