Analizzatore di robots.txt

Incolli un robots.txt e lo legga come lo fa un crawler, secondo la RFC 9309 (il protocollo di esclusione dei robot, standardizzato nel 2022): gruppi user-agent, regole Allow/Disallow, sitemap e direttive sconosciute, tutto impaginato — più un controllo degli errori classici (righe disallow vuote, direttive sconosciute, file troppo grandi). Il verificatore risponde poi alla domanda vera: incolli uno user agent e un percorso, e ottenga il verdetto consenti/nega con la regola esatta che lo ha deciso — corrispondenza più lunga, jolly *, ancora di fine $ e unione dei gruppi, esattamente come prescrive lo standard. Tutto funziona nel suo browser.
Nulla ancora analizzato. Incolli un robots.txt qui sopra e prema Analizza file, oppure carichi un esempio.
Il verificatore lavora sul testo attualmente presente nella casella qui sopra (non serve premere prima Analizza). Lo user agent viene confrontato come definisce la RFC 9309: il valore User-agent nel file deve essere una sottostringa, senza distinzione di maiuscole, di ciò che digita qui — quindi digitando ExampleBot/1.0 corrisponde a un gruppo dichiarato come ExampleBot. Come percorso è accettato anche un URL completo.
User agent (funziona una vera stringa UA) Percorso, oppure URL completo
Nessun verdetto ancora. Prema Verifica permesso.
Come recuperare il suo file:aprahttps://your-domain.example/robots.txtnel browser, selezioni tutto, copi e incolli qui — oppurecurl -s https://your-domain.example/robots.txtin un terminale. Questa pagina non scarica nulla da sola: legge soltanto ciò che incolla. Per ispezionare le intestazioni di risposta che hanno portato il file, le passi alloanalizzatore di intestazioni HTTP.
Autotest
Riesegue l'analizzatore e il verificatore sui vettori di riferimento della RFC 9309: precedenza della corrispondenza più lunga (incluso il pareggio consenti-batte-nega e il caso dei percorsi profondi), unione dei gruppi, il ripiego sul gruppo*ripiego sul gruppo, sensibilità alle maiuscole di percorsi e user agent, jolly, l'ancora$ancora, il consenso implicito di/robots.txt, la normalizzazione della codifica percentuale, l'estrazione delle sitemap e i percorsi negativi. Nulla viene inviato da nessuna parte.
Che cos'è robots.txt?
In una frase: robots.txt è un file di testo semplice alla radice di un sito che indica ai crawler ben educati quali percorsi possono scaricare — una convenzione volontaria, standardizzata come RFC 9309 nel 2022, che ogni grande crawler rispetta.
La forma di un file

Un file è una sequenza di record. Un gruppo inizia con una o più righe User-agent, seguite dalle regole Allow e Disallow che si applicano a quei crawler. Una nuova riga User-agent dopo delle regole inizia un nuovo gruppo; più righe User-agent consecutive condividono un solo gruppo (un crawler con due nomi ne ha bisogno). I record autonomi come Sitemap possono comparire ovunque. # avvia un commento in qualsiasi punto di una riga. I nomi dei campi non distinguono maiuscole e minuscole; i percorsi sì.

RigaSignificato
User-agent: foobotLe regole sotto si applicano ai crawler il cui nome contiene foobot (senza distinzione di maiuscole)
User-agent: *Le regole sotto si applicano a ogni crawler senza un gruppo più specifico
Disallow: /private/Non scaricare percorsi che iniziano con /private/
Allow: /private/public/Eccezione che prevale sul disallow sopra per questi percorsi (corrispondenza più lunga)
Disallow: (vuoto)Non è vietato nulla — il classico modo di dire «consenti tutto»
Sitemap: https://…/sitemap.xmlDove si trova la sua sitemap; i crawler possono raccoglierne più d'una
Crawl-delay: 30Non nella RFC 9309 — un'estensione storica; i grandi crawler la ignorano o la interpretano a modo loro
Come si arriva a un verdetto (RFC 9309 §2.2.2)

1. Trovi il gruppo il cui valore User-agent è una sottostringa del nome del crawler; unisca tutti i gruppi corrispondenti. Se non ce ne sono, usi il gruppo *; se non c'è nemmeno quello, è consentito tutto. 2. Confronti il percorso con ogni regola: la corrispondenza è per prefisso, sensibile alle maiuscole, e */$ funzionano come jolly. 3. Vince la regola corrispondente più lunga; a parità di lunghezza, Allow prevale su Disallow. Nessuna regola corrispondente significa consentito. E qualunque cosa dicano le regole, /robots.txt stesso è implicitamente consentito — altrimenti un crawler non potrebbe leggere le regole.

Errori comuni
  • Credere che robots.txt blocchi l'accesso. È una richiesta ai crawler educati, non un muro: gli scraper canaglia la ignorano del tutto, e non ha alcun effetto su ciò che un browser può aprire. Per una vera protezione servono l'autenticazione; per indirizzare soltanto i motori di ricerca, robots.txt è lo strumento giusto.
  • Aspettarsi che Disallow: / rimuova una pagina dai risultati di ricerca. Ferma la scansione, non l'indicizzazione: se altre pagine linkano la sua, un motore di ricerca può ancora elencare l'URL (senza descrizione). Lo strumento per la rimozione è il meta tag o l'intestazione noindex.
  • Affidarsi all'ordine invece che alla lunghezza. La prima regola corrispondente non vince — vince la più specifica (la più lunga). Riordinare le righe per «correggere» il comportamento non cambia nulla; allunghi invece la regola voluta.
  • Bloccare CSS e JS. Vietare /*.css$ e /*.js$ era un'«ottimizzazione» diffusa; i renderer ora hanno bisogno di quei file per vedere la pagina come la vedono i visitatori, e una pagina resa a metà può posizionarsi peggio.
  • Usare un grande gruppo come documentazione. Le righe di commento dentro un gruppo vanno bene, ma un paragrafo di prosa prima della prima riga User-agent senza # è un errore di analisi che può confondere i parser tolleranti.
FAQ

Tutti i crawler supportano Allow, * e $? I principali sì, e la RFC 9309 standardizza tutti e tre. Alcuni crawler più piccoli o più vecchi capiscono solo Disallow e leggono * alla lettera — un motivo in più per mantenere semplici le regole quando si può.

Che cosa significa un Disallow: vuoto? «Non vietare nulla» — il gruppo consente esplicitamente tutto. Di solito compare quando qualcuno modifica un modello ed elimina il percorso ma non la direttiva; il controllo lo segnala.

Quanto può essere grande il file? La RFC 9309 richiede che i parser gestiscano almeno 500 KiB; oltre, un crawler può smettere di leggere e considerare vietato il resto. Lo tenga ben al di sotto, e se cresce molto, si chieda se il controllo della scansione non appartenga piuttosto alle intestazioni della pagina.

Perché il verificatore dice che /robots.txt è consentito anche con Disallow: /? Perché lo standard lo dice esplicitamente: il file robots stesso è implicitamente consentito. Il urllib.robotparser di Python, tra gli altri, non implementa questo caso speciale — una delle piccole divergenze tra parser reali che questa pagina documenta nel suo autotest.

Un percorso Disallow distingue maiuscole e minuscole? Sì. /Private/ e /private/ sono percorsi diversi. Il nome del campo disallow può avere qualsiasi maiuscola, ma il valore deve corrispondere esattamente all'URL.