Infrastructure and SEO

Cloudflare blocca i crawler AI di default: come risolvere senza compromettere la sicurezza

Dal 1° luglio 2025 ogni nuovo dominio Cloudflare blocca GPTBot, ClaudeBot, PerplexityBot e simili. Ecco come riabilitare in modo selettivo quelli che ti citano.

2 maggio 202611 min di lettura
Cloudflare blocca i crawler AI di default: come risolvere senza compromettere la sicurezza

La regola gestita "Block AI bots" di Cloudflare è una WAF managed rule che restituisce un blocco netto agli user agent AI noti (GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended e l'intera lista) su ogni nuova zone creata dopo il 1° luglio 2025. La regola è stata introdotta con l'annuncio Content Independence Day di Cloudflare e si applica al circa 20% del web pubblico che vive dietro la rete Cloudflare.

L'effetto collaterale è la parte che la maggior parte dei team si perde. "Block AI bots" non distingue tra crawler di training e crawler di retrieval. Blocca entrambi. Se OAI-SearchBot non raggiunge le pagine, ChatGPT Search smette di citarti. Se PerplexityBot è bloccato, Perplexity smette di citarti. Se Google-Extended è bloccato, le AI Overviews di Google perdono i tuoi contenuti come fonte di grounding. Il default che protegge i tuoi dati di training ti sfratta anche dalla superficie delle risposte AI su cui stai investendo.

Questo articolo esamina cosa viene bloccato, come verificare lo stato attuale della tua zone e come riabilitare in modo selettivo i retrieval bot su Cloudflare senza smontare la postura di sicurezza. Diamo per scontato che tu stia girando su una zone Cloudflare recente con il livello WAF standard (free o paid; i passaggi differiscono leggermente per i clienti Bot Management).

Cosa avrai alla fine

Una configurazione Cloudflare in cui i retrieval crawler (OAI-SearchBot, PerplexityBot, Google-Extended, ClaudeBot per le citazioni) raggiungono le pagine, i training crawler (GPTBot se non vuoi che OpenAI alleni sui tuoi contenuti, CCBot, Bytespider) restano bloccati, e la difesa contro gli scraper non verificati resta intatta. Inoltre visibilità su cosa colpisce davvero il sito, così la configurazione è guidata dai dati e non dalle sensazioni.

Cosa blocca Cloudflare oggi

La managed rule "Block AI bots" copre una lista pubblica di user agent AI noti. Secondo la documentazione AI Crawl Control di Cloudflare, la regola colpisce almeno: Amazonbot, Applebot, Bytespider (ByteDance), CCBot (Common Crawl), ClaudeBot (Anthropic), DuckAssistBot, Google-CloudVertexBot, GoogleOther, GPTBot (OpenAI), Meta-ExternalAgent, OAI-SearchBot, PerplexityBot, PetalBot (Huawei), TikTokSpider, più i bot non verificati con fingerprint simile.

La lista mescola tre categorie comportamentali in un'unica azione di blocco.

  • Training crawler. GPTBot, CCBot, Bytespider, Meta-ExternalAgent. Il loro lavoro è raccogliere contenuti per i corpora di addestramento. Bloccarli è di solito un'intenzione esplicita.
  • Retrieval crawler. OAI-SearchBot, PerplexityBot, ClaudeBot (quando usato per retrieval), Google-Extended, Applebot. Il loro lavoro è recuperare le pagine on demand per fondare una risposta AI in tempo reale con citazioni. Bloccarli ti rimuove dalla risposta.
  • Agent guidati dall'utente. ChatGPT-User, Perplexity-User, Claude-User. Si attivano quando un umano incolla una URL in una chat o quando un agent AI agisce per conto di un utente finale. Secondo il report Cloudflare di dicembre 2025, questa categoria è cresciuta di 15 volte anno su anno. Bloccarli dice agli assistenti AI dei tuoi visitatori che il tuo sito rifiuta di farsi riassumere.

La distinzione conta. Un sito marketing SaaS che vuole essere citato da ChatGPT Search e Perplexity ma non vuole che OpenAI alleni sui suoi contenuti deve smontare un bundle che Cloudflare spedisce come un singolo interruttore.

Step 1: verifica lo stato attuale della zone

Prima di cambiare qualsiasi cosa, guarda cosa viene effettivamente bloccato.

Apri il dashboard Cloudflare, scegli la zone e naviga in SecurityBots. Cerca "Block AI bots" nel pannello di configurazione. Se il toggle è attivo (default per zone create dopo il 1° luglio 2025), ogni bot della lista riceve un blocco netto al perimetro.

Poi vai in AI Crawl Control nella navigazione laterale. È stato rinominato da "AI Audit" a inizio 2026 ed è ora generalmente disponibile su tutti i piani. La tab Crawlers mostra una tabella in tempo reale di quali servizi AI hanno richiesto i tuoi contenuti nelle ultime 24 ore, divisi per user agent, conformità a robots.txt e quali sezioni del sito hanno colpito. I dati rispondono a una domanda che la maggior parte dei team non si è mai posta: chi sta davvero provando a leggermi e mi mancherebbe se restassi bloccato?

Se la tabella è vuota, non significa che non sta succedendo nulla. Significa che la regola Block AI bots ha chiuso la porta prima che un crawler superasse il perimetro. Imposta la regola su una finestra di osservazione di 24 ore (mettila in modalità "Allow" temporaneamente, oppure spostala sotto una custom rule che logga invece di bloccare), poi torna e leggi la tabella.

Step 2: scegli i bot da riabilitare

La lista si riduce a due risposte.

Per le citazioni e la visibilità in AI search, riabilita almeno:

  • OAI-SearchBot (retrieval di ChatGPT Search)
  • PerplexityBot (citazioni Perplexity)
  • Google-Extended (AI Overviews di Google e grounding di Gemini)
  • ClaudeBot se vuoi che la funzione web di Claude.ai ti citi
  • Applebot per Apple Intelligence

Per il training, decidi vendor per vendor. Se pubblichi contenuti di riferimento che vuoi citati ma non memorizzati in blocco (un playbook tipico SaaS), tieni bloccati i training crawler: GPTBot, CCBot, Bytespider, Meta-ExternalAgent, Google-CloudVertexBot. Se pubblichi contenuti che vuoi attivamente nei foundation model, riabilitali.

Per gli agent guidati dall'utente, riabilita. ChatGPT-User e Perplexity-User si attivano quando un umano incolla la tua URL o quando un agent AI recupera la pagina per rispondere a un prompt specifico. Bloccarli equivale funzionalmente a bloccare le visite degli utenti loggati di quei prodotti.

Step 3: scrivi una custom rule WAF che sovrascriva la managed rule

Il WAF Cloudflare valuta le regole in un ordine definito. Secondo la documentazione delle WAF custom rules, le custom rules vengono valutate prima delle managed rule. Quindi una custom rule "Skip" su uno specifico user agent gira per prima, la richiesta bypassa la managed rule Block AI bots e il bot raggiunge l'origin.

Nel dashboard Cloudflare vai in SecurityWAFCustom rules e crea una regola con questa espressione (incollala nel campo "Edit expression" dell'editor):

(http.user_agent contains "OAI-SearchBot") or (http.user_agent contains "PerplexityBot") or (http.user_agent contains "ChatGPT-User") or (http.user_agent contains "Perplexity-User") or (http.user_agent contains "Google-Extended") or (http.user_agent contains "Applebot") or (http.user_agent contains "ClaudeBot")

Imposta l'azione su Skip, e nella configurazione Skip spunta le caselle WAF Managed Rules, Bot Fight Mode e Block AI bots. Salva e deploya.

Cosa fa: quando una richiesta corrisponde a uno di questi user agent, Cloudflare bypassa le protezioni elencate e la richiesta prosegue verso l'origin. Le altre custom rule, il rate limiting a livello di IP e le feature di sicurezza fuori dalla skip list continuano ad applicarsi, quindi un attaccante non può semplicemente spoofare User-Agent: PerplexityBot e bypassare tutto.

Step 4: verifica con identità crittografica, non con stringhe user-agent

L'header user-agent è una stringa controllata dal client. Chiunque può impostarla su OAI-SearchBot e fingere di essere ChatGPT Search. La cura condivisa è Web Bot Auth, una bozza IETF che Cloudflare implementa al perimetro e che sempre più vendor AI adottano.

Secondo il rollout di Web Bot Auth di Cloudflare, i bot ben configurati ora firmano le richieste HTTP con una chiave Ed25519. La richiesta porta gli header Signature-Agent, Signature-Input e Signature. Cloudflare valida la firma contro la directory delle chiavi pubblicata dal bot e marca la richiesta come crawler AI verificato solo quando la firma è valida.

Per la tua custom rule questo si traduce in un'espressione più difendibile che combina user agent, categoria di bot verificati di Cloudflare e presenza della firma crittografica. I nomi esatti dei campi dipendono dal piano (Bot Management a pagamento o tier free); su Bot Management hai cf.verified_bot_category, e la regola più pulita diventa:

(cf.verified_bot_category in {"AI Crawler" "Search Engine Crawler"}) and (http.user_agent contains "OAI-SearchBot" or http.user_agent contains "PerplexityBot" or http.user_agent contains "Google-Extended" or http.user_agent contains "ClaudeBot" or http.user_agent contains "Applebot")

Questa regola riabilita gli user agent elencati solo quando Cloudflare li ha verificati crittograficamente. Una richiesta spoofata che imposta la stringa user-agent giusta ma non produce una firma valida viene trattata come bot non verificato e ricade sulle protezioni di default.

Step 5: tieni i training crawler fuori anche via robots.txt

Se hai deciso di tenere bloccati GPTBot, CCBot, Bytespider e simili, fallo su due livelli, non uno. Il blocco al perimetro Cloudflare è la linea dura. Il robots.txt è la linea cortese, e la maggior parte dei retrieval crawler la rispetta (i dati di Cloudflare mostrano che ChatGPT-User smette di recuperare quando robots.txt lo proibisce; Perplexity, secondo l'incident report di Cloudflare di agosto 2025, no).

Un public/robots.txt difendibile per un sito SaaS che vuole le citazioni ma non il training:

User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: Meta-ExternalAgent
Disallow: /

User-agent: Google-CloudVertexBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: Perplexity-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: Applebot
Allow: /

User-agent: *
Allow: /

La doppia policy (skip rule WAF Cloudflare + robots.txt allow) è ciò che rende difendibile il sistema. La regola WAF lascia passare fisicamente la richiesta. La direttiva robots.txt dice al crawler educato che è benvenuto. Entrambi i livelli comunicano la stessa intenzione su protocolli diversi.

Verificare che funzioni

Due check in 10 minuti.

Il check sintetico. Da una macchina fuori dalla rete Cloudflare, lancia una richiesta con l'header user-agent impostato:

curl -A "Mozilla/5.0 (compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)" -I https://tuodominio.com/

Devi vedere HTTP 200, non 403. Ripeti con GPTBot se hai bloccato i training crawler; devi vedere 403. Nota: questo testa solo il livello user-agent. Un bot firmato reale porta anche header di verifica che il curl sintetico non ha.

Il check sul traffico reale è più onesto. Dopo 24-48 ore, torna in AI Crawl Control nel dashboard e conferma: OAI-SearchBot, PerplexityBot e ClaudeBot ora compaiono nella tab Crawlers con conteggi non zero e stato "allowed"; GPTBot, CCBot e Bytespider mostrano "blocked". Se la lista degli allowed è vuota dopo 48 ore su un sito con traffico organico, la tua custom rule expression è sbagliata; ricontrolla i nomi dei campi e l'operatore (contains è case-sensitive).

Failure mode comuni e fix

Custom rule deployata ma i bot restano bloccati. Due cause: l'espressione ha un typo (più spesso http.user_agent eq dove volevi contains); oppure l'azione Skip non include la casella "Block AI bots", solo "Bot Fight Mode". Riapri la regola, scorri fino alla configurazione Skip e spunta tutte e tre le caselle (Managed Rules, Bot Fight Mode, Block AI bots).

I bot riabilitati passano ma ricevono CAPTCHA. Super Bot Fight Mode sta sfidando per rate il traffico "likely automated" prima che la tua custom rule si applichi, ma solo se l'ordine delle regole è sbagliato. Nel dashboard, trascina la tua custom rule in cima alla lista delle WAF rules. L'ordine conta anche tra custom rule.

Hai riabilitato PerplexityBot e Cloudflare blocca comunque Perplexity per reputazione di azienda. Ad agosto 2025 Cloudflare ha rimosso Perplexity dal Verified Bots Program per l'incident dello stealth crawler. A inizio 2026 Perplexity è in graduale riabilitazione, ma alcune zone ereditano ancora un blocco di reputazione a livello di rete. Controlla la status page Cloudflare e il changelog di AI Crawl Control prima di assumere che la regola sia rotta.

Hai riabilitato ClaudeBot ma Claude.ai continua a non leggere la pagina. ClaudeBot è lo user agent per il crawling, ma la funzione di web search di Claude usa un percorso di fetch diverso. Lo user-agent per le query Claude guidate dall'utente è in transizione; riabilita anche Claude-User e Claude-SearchBot nella stessa regola accanto a ClaudeBot per coprire tutti i crawler Anthropic attuali e prossimi.

Il traffico esplode da un singolo bot. I crawler AI possono essere pesanti. Se un singolo bot riabilitato genera più del 5% delle richieste all'origin, aggiungi un rate limit per IP (Cloudflare WAF → Rate Limiting Rules) di, diciamo, 60 richieste al minuto sulle richieste dove http.user_agent contains "PerplexityBot". Il bot continua a ricevere contenuto fresco, l'origin non viene martellato.

Andare oltre

L'interruttore unico sta sparendo. Il sistema pay-per-crawl di Cloudflare, attualmente in private beta e in rollout verso la disponibilità generale nel 2026, lascia ai siti restituire HTTP 402 Payment Required con un header crawler-price, e lascia ai vendor AI decidere al volo se pagare il fetch. L'economia passa da "blocca o riabilita" a "prezza per tipo di contenuto". Quando arriva in modo ampio, la managed rule Block AI bots diventa il pavimento, non il soffitto, della tua policy sul traffico AI.

Se stai configurando questo su una zone nuova, abbinalo a un file /llms.txt che dice ai crawler AI educati quali pagine consideri canoniche. La regola WAF controlla l'accesso; llms.txt controlla cosa vedono per primo quando entrano. La combinazione è ciò che porta un sito appena nato a essere citato in settimane invece che in mesi.

Foto di Nauris Ranga su Unsplash

Domande frequenti

Will I lose AI citations forever if I leave Cloudflare's default block on?
Not forever, but immediately and continuously. Retrieval crawlers like OAI-SearchBot and PerplexityBot fetch a page each time a user asks a question whose answer might cite you. If they get a 403 every time, the answer is grounded on a competitor's page that did let them in. The damage compounds the longer the block stays on, because AI engines also build internal preference signals from successful past fetches.
Is allowing AI crawlers a security risk?
On its own, no, because Cloudflare's WAF Skip action only bypasses the specific protections you list. IP rate limiting, custom WAF rules, and managed rules outside the skip list still run. The risk is user-agent spoofing: anyone can set a user-agent to PerplexityBot. The fix is to combine the user-agent check with cf.verified_bot_category on Bot Management or, on free plans, to keep aggressive rate limits on the allowed user agents.
Why does Cloudflare block all AI bots by default instead of asking?
Cloudflare's reasoning is that scraper traffic was overwhelming origin servers and most site owners had no visibility into the trade-off. The default block is a safety net for the silent majority. The dashboard plus AI Crawl Control then exists to let informed teams flip individual switches once they understand what they are giving up. The default is conservative, not absolute.
Do I still need llms.txt and a sitemap if I configure the WAF correctly?
Yes, because the WAF only controls access. Once a crawler is in, llms.txt tells it which pages you consider canonical, and a sitemap tells it the full set of URLs you want indexed. Without both, an allowed crawler may still spend its budget on shallow or duplicate pages and miss the content you most want cited.

Studio

Inizia un progetto.

Un partner unico per aziende, PA, startup e SaaS. Produzione più veloce, tecnologie moderne, costi ridotti. Un team, una fattura.