robots.txt è un file di testo semplice alla radice del tuo dominio che dice ai crawler quali percorsi lasciare stare. È abbastanza semplice da scriverlo a mano e facile da sbagliare in modo catastrofico, soprattutto per via di un equivoco su cosa faccia davvero Disallow.
Disallow non significa "tienilo fuori da Google"
È l'equivoco con le conseguenze più gravi di tutta la materia. Disallow dice a un crawler di non scaricare una URL. Non dice a un motore di ricerca di non elencarla. Sono cose diverse, e confonderle produce esattamente l'opposto di ciò che si intendeva.
Se un altro sito linka la tua pagina bloccata, Google può indicizzare la URL senza averla mai scaricata. Il risultato l'hai già visto: un risultato di ricerca con l'indirizzo e la riga "Non sono disponibili informazioni per questa pagina". La pagina è nell'indice. Hai solo impedito a Google di leggere proprio la cosa che l'avrebbe descritta.
Il che porta a un paradosso vero che vale la pena interiorizzare. Per tenere una pagina fuori dall'indice serve una direttiva noindex: un meta tag o un header HTTP sulla pagina stessa. Ma Google può vedere quella direttiva solo scaricando la pagina. Se robots.txt blocca il download, il noindex non viene mai letto. Disallow e noindex sulla stessa URL si annullano a vicenda, e la pagina resta indicizzata. Scegline uno: Disallow per risparmiare crawl budget, o noindex per rimuovere dalla ricerca — mai entrambi.
È un file pubblico che elenca i tuoi segreti
robots.txt è scaricabile da chiunque su tuodominio.it/robots.txt. È una delle prime cose che legge un penetration tester, per il motivo ovvio: un file il cui scopo è enumerare i percorsi che preferiresti nessuno visitasse è un regalo.
Scrivere Disallow: /admin-backup-2019/ non nasconde quella cartella. La pubblicizza, a tutti, per sempre, in un file progettato per essere letto. Il rispetto è volontario: i crawler educati lo onorano e qualsiasi cosa malevola lo ignora del tutto, sapendo però ora esattamente dove guardare.
La regola che ne segue: robots.txt serve per le cose che non vuoi far scansionare, mai per le cose che non vuoi far trovare. Qualsiasi cosa genuinamente sensibile ha bisogno di autenticazione. Se un percorso non deve essere raggiungibile senza login, mettici un login: è l'unico meccanismo che non sia una richiesta cortese.
Bloccare i crawler AI è un sistema basato sull'onore
La sezione sui bot AI qui copre i crawler che al momento si dichiarano: GPTBot, Google-Extended, CCBot, Claude-Web, anthropic-ai e Omgilibot. Bloccarli è una scelta ragionevole e funziona esattamente fin dove i loro gestori scelgono di farla funzionare.
Due cose da sapere. Google-Extended non è affatto un crawler: è un token che controlla se i contenuti già scaricati da Googlebot possano essere usati per l'addestramento AI. Bloccarlo non influisce sul tuo posizionamento nella ricerca, una distinzione che Google ha fatto deliberatamente e che parecchi gestori di siti si sono persi in entrambe le direzioni.
E l'elenco invecchia. Nuovi crawler compaiono di continuo, scelgono da soli le proprie stringhe user-agent, e niente li obbliga ad annunciarsi. Un robots.txt scritto oggi blocca i bot che esistevano oggi. Se la cosa ti importa, è un file da rivedere invece che da scrivere una volta sola.
Le regole su cui si inciampa
Il file dev'essere alla radice, esattamente a /robots.txt. Un file in /sottocartella/robots.txt viene ignorato del tutto, e i sottodomini vogliono il proprio: un robots.txt su esempio.it non dice niente su negozio.esempio.it.
I percorsi distinguono maiuscole e minuscole: Disallow: /Admin non blocca /admin. La corrispondenza è per prefisso, quindi Disallow: /pagina blocca /pagina, /pagine e /pagina-due allo stesso modo — la barra finale conta più di quanto sembri.
Quando una URL corrisponde a più regole, vince la più specifica e non la prima, ed è per questo che Allow può ritagliare un'eccezione dentro un Disallow più ampio. E un Disallow: vuoto significa consenti tutto, mentre Disallow: / significa blocca l'intero sito. Un carattere tra le due, ed è il carattere che più facilmente resta lì dopo un deploy di staging.
Domande frequenti
Viene inviato qualcosa a un server?
No. Questo strumento è marcato "client": il file viene assemblato nella scheda del tuo browser da quello che scrivi. Non viene trasmesso niente.
Ho bloccato una pagina ed è ancora su Google. Perché?
Perché bloccare la scansione non rimuove il risultato — vedi sopra. Se la pagina è già indicizzata, il rimedio è togliere il Disallow così Google può riscaricarla, servirle un noindex, aspettare una nuova scansione, e solo dopo bloccarla se vuoi ancora. Controintuitivo, ed è l'unica sequenza che funziona.
Mi serve davvero un robots.txt?
Non per un sito piccolo che non ha niente da nascondere: nessun file significa scansiona tutto, che di solito è quello che vuoi. Si guadagna il posto quando hai percorsi che vale la pena tenere fuori dalla scansione: pagine di risultati di ricerca che generano URL infinite, filtri a faccette, aree di staging. Un robots.txt mancante restituisce un 404 e i crawler lo gestiscono benissimo, quindi un file vuoto non è qualcosa da aggiungere per il gusto di farlo.
Devo elencarci la sitemap?
Sì, costa una riga e ogni motore importante la legge. Non sostituisce l'invio della sitemap in Search Console — è lì che vedi se le URL sono state davvero indicizzate — ma è il modo in cui la trovano i crawler che non sono Google.
Crawl-delay funziona?
Non con Google, che lo ignora del tutto; la frequenza di scansione si controlla invece in Search Console. Bing e Yandex lo onorano. Se Googlebot sta genuinamente sovraccaricando il tuo server, è un segnale che c'è qualcosa che non va nel server più che nel crawler — ma l'impostazione esiste in Search Console se ti serve.