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.