Il matching robots.txt non segue la logica “vince l’ultima riga”. Quando più regole Allow e Disallow si applicano, conta la corrispondenza più specifica. RFC 9309 definisce come più specifica la regola con il percorso corrispondente più lungo e raccomanda Allow in caso di conflitto equivalente.
Google documenta lo stesso principio pratico e supporta * e $ nei pattern dei percorsi.
Significato di * e $
*corrisponde a zero o più caratteri;$marca la fine dell’URL.
User-agent: *
Disallow: /*.pdf$
mira ai percorsi che terminano in .pdf. Senza $, il pattern è più ampio.
Un * finale spesso non serve
Disallow: /private
e:
Disallow: /private*
hanno una portata pratica molto simile su Google. Se intendi una directory, /private/ rende l’intento più chiaro.
La corrispondenza più lunga supera l’ordine visuale
User-agent: *
Disallow: /products/
Allow: /products/public/
Per /products/public/widget, entrambe corrispondono ma /products/public/ è più specifica e consente l’URL. Invertire le righe non dovrebbe essere usato per cambiare la priorità.
Parità tra Allow e Disallow
Per regole equivalenti, RFC 9309 raccomanda Allow. È comunque preferibile scrivere una policy esplicita invece di dipendere da una parità difficile da verificare.
I percorsi distinguono maiuscole e minuscole
Disallow: /Admin/
non è necessariamente uguale a:
Disallow: /admin/
Testa le varianti realmente servite dall’applicazione.
Parametri ed e-commerce
User-agent: *
Disallow: /*?sort=
può comportarsi diversamente se più parametri cambiano ordine. Nella navigazione a faccette, usa robots.txt insieme ad architettura URL, link interni e canonical.
Preferisci regole semplici
Disallow: /ricerca-interna/
è più facile da mantenere di una raccolta di pattern complessi. Usa wildcard solo quando un prefisso stabile non basta.
Testa URL reali
Con:
User-agent: *
Disallow: /reports/
Allow: /reports/public/
Disallow: /*.csv$
testa almeno:
/reports/private/quarterly/reports/public/overview/downloads/data.csv/downloads/data.csv?preview=1/REPORTS/private/quarterly
Questo evidenzia errori di prefisso, maiuscole, ancoraggio finale e sovrapposizione.
Flusso consigliato
- Scrivi la policy in linguaggio naturale.
- Scegli il prefisso più semplice.
- Aggiungi
*o$solo quando necessario. - Prepara URL da consentire e bloccare.
- Valida la sintassi.
- Testa con il giusto User-agent.
- Controlla il
/robots.txtpubblicato. - Monitora i log.
La specificità conta più della posizione della riga. Usa le wildcard con moderazione e testa sempre le sovrapposizioni.