Vai al contenuto
SEO e crawler

Come bloccare i crawler AI in WordPress (onestamente)

Per impedire a GPTBot di scansionare un sito WordPress, aggiungi queste righe al tuo robots.txt:

Pubblicato

Per impedire a GPTBot di scansionare un sito WordPress, aggiungi queste righe al tuo robots.txt:

User-agent: GPTBot
Disallow: /

Questa è tutta la soluzione per i crawler che si comportano bene. Ma sii onesto con te stesso su ciò che hai appena fatto: robots.txt è una richiesta, non un recinto. GPTBot di OpenAI scarica il file e lo rispetta. Uno scraper che non rispetta lo standard scarica lo stesso file e ignora ogni sua riga. Tieni presente questa distinzione prima di passare un pomeriggio a mettere a punto questa cosa.

Se vuoi coprire i principali crawler AI in un colpo solo, i token user-agent più comuni sono:

User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Bytespider
Disallow: /

GPTBot è il crawler di addestramento di OpenAI, CCBot è Common Crawl (su cui molti modelli si addestrano a valle), ClaudeBot è Anthropic, Google-Extended è il token di addestramento AI di Google e Bytespider è ByteDance. Nota che due di questi già infrangono il modello della richiesta cortese: Bytespider e PerplexityBot sono stati entrambi documentati pubblicamente mentre scansionavano siti che li avevano bloccati. Elencarli aiuta comunque contro i bot onesti; non fa nulla contro quelli che già mentono su chi sono.

Come WordPress serve davvero robots.txt

È qui che le modifiche della maggior parte delle persone non fanno silenziosamente nulla. Se non c’è un file robots.txt fisico nella root del tuo sito, WordPress ne genera uno al volo. La richiesta è gestita da do_robots() in wp-includes/functions.php, e l’output passa attraverso il filtro robots_txt. La casella “Scoraggia i motori di ricerca dall’indicizzare questo sito” sotto Impostazioni → Lettura commuta l’opzione blog_public, ed è ciò che fa emettere Disallow: / a quel file virtuale.

Quindi puoi aggiungere le regole per i crawler AI a livello di codice:

add_filter( 'robots_txt', function ( $output, $public ) {
    $output .= "User-agent: GPTBot\nDisallow: /\n";
    return $output;
}, 10, 2 );

Ecco il trabocchetto che divora ore: nel momento in cui esiste un file robots.txt statico nella root del tuo sito, Apache o nginx serve quel file direttamente e WordPress non viene mai eseguito. Il filtro robots_txt, l’editor robots di Yoast/Rank Math, l’impostazione di Lettura: tutti scavalcati. Se hai modificato robots.txt in un plugin e il file live non è mai cambiato, quasi sempre è per questo. Controlla https://tuosito.com/robots.txt in una finestra in incognito e confrontalo con ciò che pensi di aver impostato. Se c’è un file reale su disco, modifica quel file; il filtro è irrilevante.

Come sistemarlo, in ordine

Primo, scrivi regole pulite. Metti a posto la sintassi e la lista dei crawler in modo da non bloccare Googlebot per errore. Il nostro generatore di robots.txt costruisce il blocco per i crawler AI al posto tuo e mostra il file esatto da incollare, il che aggira la confusione tra virtuale e fisico perché ti ritrovi con un unico file autorevole.

Secondo, conferma che sia attivo. Scarica direttamente l’URL. Non fidarti del riquadro di anteprima del plugin.

Terzo, se hai bisogno di un vero blocco e non di una richiesta cortese, sali di livello nello stack. robots.txt vive a livello applicativo e dipende dalla buona volontà del bot. Per rifiutare davvero una connessione, blocca per user agent a livello di server. In .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (GPTBot|CCBot|ClaudeBot|Bytespider) [NC]
RewriteRule .* - [F,L]
</IfModule>

Questo restituisce un 403 a qualsiasi cosa invii quegli user agent. Il nostro generatore di .htaccess può assemblare questa regola. Capiscine però il limite: gli user agent sono banalmente falsificabili, quindi questo ferma solo i bot abbastanza onesti da identificarsi, cioè gli stessi bot che già rispettano robots.txt. L’opzione davvero robusta è una CDN o un WAF che blocca in base all’identità del crawler verificata o all’intervallo di IP. La regola gestita “Block AI Scrapers and Crawlers” di Cloudflare, attivabile con un clic, è la versione a minor sforzo di questo approccio e funziona all’edge, prima ancora che la richiesta raggiunga WordPress.

Cosa non fare

Non bloccare Google-Extended pensando che ti tenga fuori dalle AI Overview. Questo è l’equivoco che vale la pena correggere. Google-Extended è un token di prodotto, non un crawler. Controlla soltanto se i tuoi contenuti vengono usati per addestrare e fondare i modelli Gemini. Secondo la documentazione stessa di Google, non ha alcun effetto su come le tue pagine vengono scansionate, indicizzate o posizionate in Google Search. E le AI Overview sono costruite a partire dal normale indice di ricerca che Googlebot scansiona, non da Google-Extended. Bloccare Google-Extended non ti rimuoverà dalle AI Overview e non ti costerà una sola posizione in Search. L’unico modo per restare fuori dalle AI Overview è bloccare Googlebot o mettere la pagina in noindex, il che ti cancella anche del tutto da Search. Quasi mai è uno scambio che ti conviene fare.

Non trattare robots.txt come un controllo di sicurezza. È pubblico e consultivo. Elencarci /wp-admin/ o un percorso privato non fa che pubblicare una mappa di dove guardare. Proteggi gli endpoint reali con l’autenticazione, non con una riga di disallow.

Non affidarti ai meta tag noai / noimageai. Sono stati proposti, non standardizzati, e solo una manciata di piattaforme li rispetta. Non sono una difesa generale.

Non dare per scontato che un plugin “blocca AI” abbia fatto più che scrivere robots.txt. La maggior parte scrive le stesse righe che potresti scrivere a mano ed eredita lo stesso limite. Leggi cosa ha effettivamente cambiato il plugin prima di fidartene.

Ancora bloccato?

Se le tue modifiche non compaiono, la risposta è quasi sempre un robots.txt fisico vagante nella root del sito che scavalca quello virtuale di WordPress: scarica direttamente l’URL e controlla. Se i bot conformi sono spariti ma gli scraper continuano a colpirti, hai raggiunto il limite di ciò che robots.txt può fare, e la mossa successiva è una regola WAF o CDN che blocca in base all’identità verificata anziché chiedere gentilmente.

FAQ

Domande

Come impedisco a ChatGPT di scansionare il mio sito WordPress?

Aggiungi al tuo robots.txt la riga User-agent: GPTBot seguita da Disallow: /. GPTBot è il crawler di addestramento di OpenAI: scarica quel file e lo rispetta. Tieni presente però che robots.txt è una richiesta, non un recinto — uno scraper che non rispetta lo standard scarica lo stesso file e ne ignora ogni riga.

Perché le mie modifiche a robots.txt non compaiono in WordPress?

Quasi sempre perché nella root del sito esiste un file robots.txt fisico. Nel momento in cui quel file esiste, Apache o nginx lo serve direttamente e WordPress non viene mai eseguito, quindi il filtro robots_txt, l'editor di Yoast o Rank Math e l'opzione in Impostazioni → Lettura vengono tutti scavalcati. Modifica invece il file reale sul disco.

Bloccare Google-Extended danneggia il mio posizionamento su Google?

No. Google-Extended è un token di prodotto, non un crawler, e secondo la documentazione di Google non ha alcun effetto sul modo in cui le tue pagine vengono scansionate, indicizzate o posizionate nella Ricerca Google. Controlla soltanto se i tuoi contenuti vengono usati per addestrare e alimentare i modelli Gemini, e bloccarlo non ti farà sparire dalle AI Overviews.

I crawler AI rispettano davvero il robots.txt?

Alcuni sì, altri no. GPTBot scarica il robots.txt e lo segue, ma Bytespider e PerplexityBot sono stati entrambi documentati pubblicamente mentre scansionavano siti che li avevano bloccati. Elencare ogni token user-agent aiuta comunque contro i bot onesti, e non fa nulla contro quelli che già mentono su chi sono.

Come blocco i bot AI a livello di server invece che con il robots.txt?

Blocca per user agent nel .htaccess con una regola mod_rewrite che restituisce un 403 a GPTBot, CCBot, ClaudeBot e Bytespider. Gli user agent si falsificano con estrema facilità, quindi questo ferma solo i bot abbastanza onesti da dichiararsi. L'opzione solida è una CDN o un WAF che blocchi in base all'identità verificata del crawler o all'intervallo di IP.