ChatGPT non riesce a leggere il tuo sito? 79% bloccati
Sul nostro robots.txt c'era scritto „entrate", con i nomi dei crawler uno per uno. Sul firewall c'era scritto 403. Per scoprirlo è servito guardare i log: quattro richieste su cinque respinte, mentre Googlebot passava quasi sempre.

Cosa è successo. Abbiamo estratto 23 ore di log del nostro sito per contare quante richieste dei crawler AI arrivano davvero. Meno di una su cinque. Le altre hanno ricevuto un 403.
Per chi non vale. Se davanti al tuo sito non c'è nulla — nessun CDN, nessun firewall, nessun filtro di sicurezza sul server — probabilmente non hai questo problema. Se invece c'è qualcosa, e per un sito aziendale di solito c'è, mezz'ora è ben spesa.
Perché conviene leggerlo. Nessuno aveva mai attivato un'opzione „blocca l'AI". Il blocco è nato dalla sovrapposizione di due decisioni di sicurezza ragionevoli, prese separatamente, ad anni di distanza.
- Il numero che puoi controllare stasera sul tuo sito, e in che pannello si trova.
- Un rifiuto servito con codice 200, che in ogni statistica risulta un successo.
- Perché il pannello dei crawler AI può essere tutto verde mentre non passa nessuno.
- Cosa ha spostato la modifica di una sola regola, misurato 15 ore dopo.
Apri il pannello di sicurezza del tuo sito e filtra per GPTBot. Se non l'hai mai fatto, quella schermata è la parte più interessante della tua giornata. Noi l'abbiamo aperta il 5 agosto, e abbiamo scoperto che il nostro stesso sito respingeva quattro richieste su cinque in arrivo dai robot degli assistenti AI.
Mettiamo Cloudflare davanti ai siti che costruiamo e lo configuriamo per i clienti. Scriviamo di visibilità nell'AI da quando, il 12 luglio, è uscito il primo articolo di questo sito, con il lavoro serio sui contenuti partito il 27 luglio. Ed è proprio per questo che la frase precedente è imbarazzante.
Ci sono due porte, non una
Prima dei numeri serve capire la struttura, altrimenti i numeri portano fuori strada.
La prima porta è ciò che sta davanti al sito e ferma le richieste prima che tocchino il server. La seconda porta è il server stesso, con il proprio filtro di sicurezza e le proprie regole. Superare la prima non significa essere entrati.
La prova più bella è un incidente fortunato nei nostri dati. Per motivi che non c'entrano nulla, la nostra configurazione aveva già un'eccezione per un solo crawler: ClaudeBot. Quindi abbiamo un esperimento naturale — un robot con il lasciapassare, tutti gli altri senza.
ClaudeBot ha superato la prima porta 82 volte su 82. Alla seconda ha ricevuto 403 in 56 casi su 82.
Qualunque diagnosi deve separare „fermato davanti al sito" da „fermato dal server". Sono due numeri diversi, con due soluzioni diverse e due responsabili diversi. Un totale unico non ti dice dove intervenire.
79% contro 1%, stesso sito, stesso giorno
I numeri vengono dall'API di analytics di Cloudflare, su una finestra di 23 ore chiusa il 5 agosto alle 17:21 UTC. Sul piano gratuito i dati restano 24 ore, quindi quella finestra non è più estraibile. L'abbiamo archiviata.
| Crawler | Richieste | Fermate davanti al sito | Fermate dal server | Pagina servita | Respinte |
|---|---|---|---|---|---|
| Amazonbot | 228 | 228 | 0 | 0 | 100% |
| ChatGPT-User | 191 | 157 | 18 | 16 | 92% |
| PerplexityBot | 129 | 50 | 0 | 78 | 39% |
| GPTBot | 96 | 53 | 4 | 36 | 59% |
| ClaudeBot | 82 | 0 | 56 | 26 | 68% |
| OAI-SearchBot | 69 | 49 | 8 | 11 | 83% |
| Google-Extended | 58 | 58 | 0 | 0 | 100% |
| Totale crawler AI | 910 | 610 | 106 | 185 | 79% |
| Googlebot | 79 | 1 | 0 | 62 | 1% |
| bingbot | 30 | 0 | 0 | 25 | 0% |
Fonte: API GraphQL di analytics Cloudflare, zona cittago.com, 4 agosto 18:21 – 5 agosto 17:21 UTC. Sono elencati i crawler sopra le 50 richieste più il gruppo di controllo; la differenza rispetto al totale viene dai crawler minori. In ogni riga, ciò che le tre colonne non coprono sono richieste finite con altri codici — redirect e timeout.
La riga che brucia è la seconda. ChatGPT-User non è un crawler di addestramento: è il recuperatore in tempo reale, quello che apre la tua pagina nel momento esatto in cui una persona fa una domanda a cui la tua pagina potrebbe rispondere. Nove volte su dieci è stato respinto.
Il permesso sulla carta non è l'accesso. Il robots.txt dice cosa vorresti; il firewall decide cosa succede.
I crawler AI escono da Singapore
La regola responsabile della prima porta era una riga sola, scritta anni fa contro un'ondata di spam: blocca il traffico proveniente da Africa, Asia, Oceania e dalla rete Tor. Tutto qui. Niente AI, niente robot.
Ha prodotto 815 dei 940 blocchi registrati sulla zona. L'ottantasette percento.
La distribuzione per paese spiega il resto: 630 blocchi da Singapore, 43 dall'Australia, 25 dalla Cina, 24 dall'India, 23 dalla Turchia, 15 dal Vietnam. Buona parte dell'infrastruttura AI esce da Singapore. Una regola geografica scritta in un altro decennio di internet, contro un altro problema, è finita esattamente sulla popolazione che oggi vuoi far entrare.
Non è un errore di configurazione. È una regola invecchiata. La differenza conta, perché la seconda cosa capita a tutti.

Perché tutti i pannelli dicevano „tutto a posto"
Prima di guardare i log avevamo controllato i tre posti che chiunque controllerebbe. Tutti e tre rassicuranti, tutti e tre irrilevanti.
Il robots.txt era impeccabile. Permesso esplicito per GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended, Applebot-Extended.
Le impostazioni generali erano miti. Livello di sicurezza praticamente disattivato, controllo del browser spento, WAF gestito spento. Nulla di aggressivo.
Il pannello dedicato ai crawler AI mostrava „consentito" ovunque. Questa è la parte da ricordare, perché la documenta Cloudflare stessa: le regole che scrivi tu vengono valutate prima di quel pannello, e ciò che bloccano non compare nelle sue statistiche. Il pannello dice la verità su sé stesso e mente sulla realtà.
La parte che sfugge
Un blocco che si presenta come successo
Il 403 è onesto: lo vedi, lo conti, sai cosa fare.
Il problema è l'altro tipo di rifiuto. Il server risponde 200 OK e consegna una schermata di verifica al posto della pagina. In qualsiasi statistica quella è una richiesta riuscita. Il robot ha chiesto, il robot ha ricevuto, codice 200, tutti contenti.
Solo che il robot ha ricevuto una schermata di caricamento.
L'unico modo per accorgersene è smettere di leggere i codici e iniziare a contare i byte.
| Cosa riceve il robot | Dimensione | Codice HTTP |
|---|---|---|
| La pagina vera | 50.000 – 58.000 byte | 200 |
| Schermata di verifica | ~6.000 byte | 200 |
| Rifiuto diretto | 1.100 – 1.500 byte | 403 |
Misurazioni su cittago.com, 5–6 agosto 2026. La riga centrale è quella che non compare come problema da nessuna parte.
Il 6 agosto un recuperatore di ChatGPT partito dalla Svizzera ha chiesto la nostra pagina di servizio Google Ads e ha ricevuto 6.064 byte. La pagina vera ne pesa 54.801. Codice 200. Dall'esterno, una lettura riuscita.

Prerequisiti
Cosa ti serve per controllare
- L'accesso al pannello di ciò che sta davanti al tuo sito — su Cloudflare, la sezione sicurezza e l'elenco delle regole scritte da te.
- Statistiche che separino il bordo dall'origine, cioè cosa è stato fermato prima del server e cosa dal server. Senza questa distinzione ripari a caso.
- Qualcuno che possa intervenire sul server, oppure il tuo fornitore di hosting.
- Una pagina di prova con un codice che nessuno possa indovinare. Sotto spieghiamo perché non è un dettaglio.
La correzione: chiedi il tesserino, non spalancare il cancello
La soluzione ovvia sarebbe: faccio un'eccezione per tutti i nomi dei robot AI e ho finito. È anche quella sbagliata, per un motivo che avevamo sotto gli occhi mentre lavoravamo.
Il nome che un robot dichiara — lo User-Agent — è una stringa di testo. Chiunque può scriverla.
Nei log durante l'audit comparivano richieste che si presentavano come PerplexityBot, OAI-SearchBot e ChatGPT-User mentre andavano a caccia di credenziali: /.env, chiavi SSH, segreti cloud, configurazioni Kubernetes. Tutte respinte. Non era nessun assistente AI: era uno scanner travestito da assistente, in tempo reale, nella stessa finestra in cui stavamo contando quelli veri.
Per questo la regola che abbiamo scritto non guarda i nomi. Richiede un bot verificato crittograficamente — la conferma di Cloudflare, basata sull'indirizzo di origine, che il crawler sia davvero chi dice di essere. Il nome da solo non apre niente.

In pratica abbiamo allargato una regola già esistente invece di impilarne una nuova sopra. Lascia passare i crawler verificati degli assistenti AI e dei motori di ricerca, e mantiene intatto il blocco geografico per il traffico umano e per gli scraper non verificati. Alcuni robot restano fuori per scelta: quelli che prendono contenuto senza restituire nulla.
La modifica è entrata in vigore il 5 agosto alle 17:33 UTC.
La prova
Cosa dicono gli assistenti AI e cosa dicono i log
Ecco la trappola che aspetta chiunque provi a verificare da solo: chiedi a un'AI se riesce a leggere il tuo sito, e lei ti racconta quello che crede sia successo. Sbaglia in entrambe le direzioni.
Per togliere di mezzo le opinioni abbiamo costruito una pagina di prova. È pubblica, non è collegata da nessuna parte e non è nella sitemap: cittago.com/ai-access-test/. Contiene un codice nel primo paragrafo, un secondo codice in fondo, una parola chiave a metà e tre numeri in una tabella. La somma dei tre non è scritta da nessuna parte: va calcolata.
Nessun modello può restituire tutti e quattro i valori se non ha letto davvero la pagina. Poi abbiamo letto nei log cosa ha ricevuto ciascuno, misurato in byte.
Perplexity: contenuto giusto, senza aver scaricato nulla
Gli abbiamo chiesto di leggere la nostra home. Ha restituito il titolo esatto, tutte e cinque le cifre della sezione in alto, entrambi i progetti elencati. Corretto dall'inizio alla fine. E ha chiuso con una frase su come aveva ottenuto il contenuto:
„Ho scaricato la pagina adesso."
Log Cloudflare, stessa finestra: PerplexityBot → 403 su /. 1.133 byte inviati. Nessuno scaricamento.
Il contenuto era giusto perché lo aveva già nel proprio indice, da visite precedenti. Su una pagina che l'indice non conteneva ha invece dichiarato onestamente di non poter recuperare nulla.
Gemini: ha letto la pagina, ha risposto da una copia vecchia
Ha superato la prova: tutti e quattro i valori, somma inclusa. Il log conferma — ha ricevuto 54.801 byte, la pagina intera.
Poi, a una domanda sui nostri progetti recenti, ha citato un progetto che lì non compare più da giorni.
Cosa significa: ha letto la pagina viva e ha risposto da una copia più vecchia della pagina stessa. Un accesso riuscito non garantisce una risposta aggiornata.
Accesso confermato
Grok: l'unico pulito, ogni volta
Tutti e quattro i valori, somma calcolata compresa, più la data stampata sulla pagina. Ripetuto su due pagine diverse in due giorni diversi.
Nota tecnica: né Grok né Gemini hanno riportato il codice-esca nascosto nel sorgente HTML e invisibile a schermo. Entrambi leggono il testo renderizzato, non il file grezzo.
Accesso confermato
ChatGPT: due guasti diversi che sembrano identici
Sulla pagina di prova ha dichiarato di non avere accesso. Il log mostra che non è mai partita nessuna richiesta verso quell'indirizzo. Non è stato bloccato: semplicemente non scarica un URL che non ha già nel proprio indice, e la pagina era nuova e non collegata.
Su una pagina indicizzata, invece, la richiesta c'è stata — e ha ricevuto 6.064 byte invece di 54.801. La schermata di verifica, codice 200.
Perché la distinzione conta: „non trovo la pagina" e „mi hanno fermato alla porta" da fuori sembrano la stessa cosa. Solo il log li separa.
Se ti fidi di quello che un'AI ti dice sull'accesso al tuo sito, sbagli in entrambe le direzioni. Uno dice „ho letto" senza aver mai chiesto. Un altro dice „non riesco" quando in realtà non ti ha cercato.

Cosa ha spostato la correzione
Abbiamo ripetuto la stessa interrogazione il 6 agosto, sulla finestra che inizia dopo la modifica: dal 5 agosto alle 18:00 UTC al 6 agosto alle 08:35 UTC. Quasi quindici ore di traffico reale dei crawler, nessun test nostro.
| Prima porta | Prima (23 h) | Dopo (14,5 h) |
|---|---|---|
| Richieste dei crawler AI | 910 | 583 |
| Fermate davanti al sito | 610 | 12 |
| Quota fermata davanti al sito | 67% | 2% |
Fonte: API di analytics Cloudflare, zona cittago.com. Le due finestre hanno durata diversa, quindi il confronto valido è sulle percentuali, non sui numeri assoluti.
La prima porta è risolta, e i numeri lo dicono: dal 67% al 2%. I dodici blocchi rimasti sono i crawler che teniamo fuori di proposito.
Di quel numero conta più la velocità che la dimensione. Una riga in una regola, e la mattina dopo sai se ha funzionato. Poche cose in questo mestiere rispondono così in fretta.
Cosa questi numeri non dicono
| Cosa abbiamo misurato | Cosa non possiamo affermare |
|---|---|
| Un sito, due finestre brevi | Non è uno studio. È un caso, il nostro, con i dati sul tavolo. |
| Richieste respinte | Non sappiamo quante citazioni negli assistenti AI siano andate perse. Quel numero non lo pubblica nessuno. |
| Finestre di 23 h e 14,5 h | Il traffico dei crawler arriva a ondate. Un'ora con un crawler aggressivo sposta le percentuali. |
| La regola geografica | Non stiamo dicendo che fosse sbagliata. Continua a bloccare traffico umano indesiderato e resta attiva. |
Come controlli il tuo sito in venti minuti
- Apri le statistiche di sicurezza di ciò che sta davanti al tuo sito e filtra per nome del crawler: GPTBot, ChatGPT-User, OAI-SearchBot, PerplexityBot, ClaudeBot, Google-Extended, Applebot.
- Leggi le regole scritte da te, non le impostazioni generali. I blocchi per paese o continente sono i sospetti principali, soprattutto quelli vecchi.
- Separa le due porte. Se una richiesta è stata fermata prima del server, la risolvi dal tuo pannello. Se è arrivata al server ed è stata respinta lì, si risolve sul server — da solo se lo amministri tu, altrimenti tramite il tuo fornitore di hosting.
- Conta i byte, non i codici. Un 200 con 6.000 byte al posto di 50.000 è un blocco travestito da successo.
- Costruisci la pagina di prova. Un codice casuale in cima, un altro in fondo, tre numeri da sommare. Poi chiedi a un assistente di riportarli esattamente e controlla nel log cosa ha ricevuto davvero.
Un avvertimento nato dall'esperienza: se provi dal tuo server, o da un indirizzo in lista bianca, ricevi 200 qualunque nome di robot tu dichiari. Il risultato è bellissimo e non significa nulla. L'unica misurazione che conta è il traffico reale dei crawler, letto dai log.
Dove ti trovi, in tre soglie
Se davanti al sito non hai nulla e sul server non c'è un filtro di sicurezza, probabilmente non hai questo problema. Controlla lo stesso una volta: „probabilmente" non è una misurazione.
Se qualcosa c'è e non hai mai aperto le statistiche sui crawler AI, sei esattamente dove eravamo noi il 4 agosto. Non vuol dire che sei bloccato. Vuol dire che non lo sai, e venti minuti bastano.
Se hai controllato e trovi blocchi, sistemali nell'ordine giusto: prima la porta d'ingresso, dove hai il controllo, poi il server. E rimisura dopo ogni passo, altrimenti non saprai quale dei due ha contato.
Da noi la prima porta è risolta del tutto e verificata nei numeri. Sulla seconda abbiamo fatto progressi importanti e nei prossimi giorni la portiamo esattamente dove la vogliamo. Ne riparliamo fra tre-sei mesi 😉
Domande
Domande che nessuno ci ha ancora fatto
Siamo a un giorno dalla misurazione, quindi no, nessuno ci ha chiesto niente. Sono le domande che verrebbero a un lettore, più quelle che nelle conversazioni con i clienti sulla visibilità nell'AI escono comunque.
Vale anche se il mio sito è su un hosting italiano?
Sì, perché il problema non dipende da dove sta il server ma da cosa gli hai messo davanti e da quali filtri gira sopra. La regola che ci ha bloccati era geografica sul traffico in entrata, non sul luogo del sito.
Se il tuo sito è dietro un CDN o un firewall gestito, la verifica è identica: apri le statistiche di sicurezza e filtra per i nomi dei crawler.
Ma io voglio davvero far entrare i crawler AI?
Distingui i due tipi. Quelli che leggono per rispondere a una domanda posta in quel momento sono traffico che quasi certamente vuoi: è un potenziale cliente alla porta. Quelli che raccolgono testo per l'addestramento sono una decisione commerciale, e ci sono ragioni legittime per tenerli fuori.
Quello che non è mai una buona risposta è decidere in base al nome che il visitatore dichiara.
Se il robots.txt li autorizza, non basta?
No, ed è esattamente la trappola in cui siamo caduti. Il robots.txt è un'istruzione volontaria per i robot che scelgono di rispettarla. Il firewall è una porta. Puoi avere „entrate" scritto sul muro e la porta chiusa a chiave due metri più in là.
Perché Googlebot passava e gli altri no?
Geografia, non favoritismi. Googlebot scansiona in gran parte da data center statunitensi ed europei, mentre la nostra regola bloccava altri continenti. Buona parte dell'infrastruttura AI esce da Singapore, che la regola intercettava: 630 dei blocchi misurati venivano da lì.
Bloccare i crawler AI danneggia il posizionamento su Google?
Non direttamente, e il nostro gruppo di controllo lo mostra: Googlebot è stato respinto una volta su 79 richieste, i crawler AI il 79% delle volte. Sono governati separatamente.
Il rischio sta altrove: alcuni crawler servono a più scopi, e una regola pensata per l'addestramento può intercettare anche una funzione di ricerca. Per questo la diagnosi va fatta per singolo crawler, non per policy generale.
Quanto costa sistemare?
La prima porta è una modifica di regole nel tuo pannello: un'ora se sai cosa cercare, e zero in termini di abbonamento — noi siamo sul piano gratuito di Cloudflare.
La seconda porta sta sul server. Se lo amministri tu è di nuovo una questione di regole; altrimenti se ne occupa il fornitore di hosting.
Come evito di rompere qualcos'altro?
Salva la configurazione attuale prima, così puoi tornare indietro. Poi allarga una regola esistente invece di impilarne una nuova sopra: le regole si valutano in ordine, e una nuova messa nel posto sbagliato può annullarne un'altra.
E lascia in piedi le protezioni sul traffico umano. Non stai aprendo tutto: stai ritagliando un'eccezione stretta per i bot verificati.
Perché il pannello dei crawler AI non mostra niente di tutto questo?
Perché le regole personalizzate vengono valutate prima, e ciò che bloccano non arriva mai alle sue statistiche. Cloudflare lo documenta, ma è facile non accorgersene.
La conseguenza pratica è sgradevole: il pannello può segnare „consentito" per ogni crawler mentre nessuno di loro raggiunge il sito.
Come si riconosce un blocco con codice 200?
Il server dice che va tutto bene e consegna una schermata di verifica di qualche migliaio di byte al posto di una pagina da decine di migliaia. Da noi: 6.064 byte contro 54.801, codice 200.
Lo scopri solo confrontando la dimensione della risposta con quella della pagina vera.
Vale la pena tenere una pagina di prova permanente?
Sì, ed è lo strumento più economico di tutta questa storia. Un codice casuale in cima, un altro in fondo, tre numeri la cui somma non compare da nessuna parte. Se un modello restituisce tutti i valori, ha letto; se no, hai qualcosa di concreto da indagare.
La nostra resta pubblica su cittago.com/ai-access-test/. La tua si costruisce in cinque minuti.
Ultimo aggiornamento: 6 agosto 2026. Tutte le cifre provengono dall'API GraphQL di analytics Cloudflare per la zona cittago.com, su finestre chiuse il 5 agosto alle 17:21 UTC e il 6 agosto alle 08:35 UTC; i dati grezzi sono archiviati, perché il piano gratuito li conserva per 24 ore. La modifica della regola è entrata in vigore il 5 agosto alle 17:33 UTC e il suo effetto è misurato sulla finestra successiva. Aggiorniamo la pagina quando la situazione cambia.


