⌕ SEO tecnico

Il file robots.txt: sintassi, precedenze ed errori da evitare

Come si scrive un robots.txt corretto: user-agent, Disallow, Allow, caratteri jolly, precedenza delle regole e gli errori che bloccano interi siti.

Il robots.txt è un file di testo di poche righe, eppure è tra le cause più frequenti di disastri SEO. Una barra di troppo può escludere un intero sito dalla scansione; una regola scritta male può lasciare aperto ciò che si voleva chiudere. Conviene conoscerne bene la grammatica, che è più semplice di quanto sembri ma ha qualche trappola.

Dove si trova e a cosa serve

Il file deve stare nella radice dell'host, cioè all'indirizzo /robots.txt. Vale solo per quell'host e quel protocollo: un sottodominio ha bisogno del proprio file, e la versione HTTP e quella HTTPS sono considerate separate.

Il suo compito è uno solo: dire ai crawler quali percorsi non scansionare. Non è un sistema di sicurezza, perché chiunque può leggerlo e i crawler malevoli lo ignorano. E non è uno strumento per togliere pagine dall'indice.

La sintassi di base

Un robots.txt è composto da gruppi. Ogni gruppo inizia con una o più righe User-agent e prosegue con le regole.

User-agent: *
Disallow: /admin/
Disallow: /carrello
Allow: /admin/pubblico/

User-agent: Googlebot-Image
Disallow: /bozze/

Sitemap: /sitemap.xml
  • User-agent indica a quale crawler si applica il gruppo; l'asterisco vale per tutti.
  • Disallow esclude i percorsi che iniziano con il valore indicato.
  • Allow riapre un percorso all'interno di una zona esclusa.
  • Sitemap segnala la posizione della sitemap e, a rigore, va scritta con l'URL completo; è indipendente dai gruppi.

Un Disallow: vuoto significa «nessuna restrizione». Disallow: / significa «tutto escluso». La differenza è un solo carattere.

Caratteri jolly

I principali motori supportano due simboli:

  • * corrisponde a qualsiasi sequenza di caratteri;
  • $ indica la fine dell'URL.

Esempi utili:

  • Disallow: /*?ordina= blocca gli URL con il parametro di ordinamento;
  • Disallow: /*.pdf$ blocca i file che terminano in .pdf;
  • Disallow: /cerca blocca anche /cercare-casa, perché la corrispondenza è per prefisso. Per limitarsi alla cartella serve /cerca/.

Chi vince quando le regole si contraddicono

Un crawler sceglie un solo gruppo: quello con lo user-agent più specifico che lo riguarda. Se esiste un gruppo per Googlebot, Googlebot ignora completamente quello con l'asterisco. È un errore classico aggiungere un gruppo dedicato con una sola regola e scoprire che tutte le esclusioni generali non valgono più per quel crawler.

All'interno del gruppo, Google applica la regola con il percorso più lungo che corrisponde all'URL. A parità di lunghezza, prevale Allow, la regola meno restrittiva.

URL Regole Esito
/admin/pubblico/info Disallow: /admin/ · Allow: /admin/pubblico/ consentito
/admin/utenti Disallow: /admin/ · Allow: /admin/pubblico/ bloccato
/pagina Disallow: /pag · Allow: /pagina consentito

Gli errori più comuni

Bloccare per togliere dall'indice

Se una pagina è già indicizzata e viene bloccata, il motore non può più leggerla e quindi non vede l'eventuale noindex. L'URL può restare nei risultati, senza descrizione. Per rimuovere una pagina serve prima noindex con la scansione consentita, e solo dopo, se necessario, il blocco.

Bloccare CSS e JavaScript

Escludere le cartelle degli asset impedisce al motore di renderizzare la pagina come la vede un utente. Il risultato può essere una valutazione errata del layout e del contenuto.

Il robots.txt di staging finito in produzione

Un ambiente di prova protetto con Disallow: / che viene copiato in produzione durante il rilascio blocca tutto il sito. È un controllo da inserire in ogni checklist di pubblicazione.

Usare direttive non supportate

Noindex dentro il robots.txt non è supportato da Google. Crawl-delay è ignorato da Google ma rispettato da alcuni altri motori. Affidarsi a queste righe significa ottenere comportamenti diversi a seconda del crawler.

Errori del server sul file

Se il robots.txt restituisce un errore 5xx, i crawler possono interpretare la situazione con prudenza e sospendere la scansione. Un 404 invece viene letto come «nessuna restrizione».

Come verificarlo

Prima di pubblicare una modifica conviene testarla: gli strumenti per webmaster mostrano quale versione del file è stata letta e se ci sono stati problemi nel recuperarlo, e diverse librerie e crawler permettono di simulare se un dato URL è consentito per un dato user-agent. Tenere il file sotto controllo di versione, come il resto del codice, aiuta a capire quando e perché è cambiato.

In sintesi

  • Il robots.txt controlla la scansione, non l'indicizzazione.
  • Un crawler segue un solo gruppo, il più specifico per il suo user-agent.
  • Nel gruppo vince la regola più lunga; a parità, prevale Allow.
  • Non bloccare CSS e JavaScript necessari al rendering.
  • Testa ogni modifica e verifica che lo staging non finisca in produzione.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche