I quattro personaggi più costosi che abbia mai visto spediti erano Disallow: /. Un team ha spinto un robot di stadiazione alla produzione durante un rilascio, nessuno se ne è accorto e nei dieci giorni successivi Google ha lasciato silenziosamente la maggior parte delle pagine del sito. Il traffico non si è bloccato in modo da far scattare gli allarmi, ma si è esaurito. Quando qualcuno ha pensato di controllare /robots.txt, il recupero è stato un mese di ri-crawling. Il file che l'ha causato era lungo quattro righe.
Robots.txt è ingannevolmente semplice È testo semplice, ha forse sei direttive che vale la pena conoscere e la sintassi si adatta a una scheda di indice Quella semplicità è esattamente il motivo per cui va storto: non c'è un passaggio di compilazione, nessuna linter nel tuo CI, nessun sistema di tipi e nessun messaggio di errore Se scrivi una regola che un crawler non può analizzare, il crawler ignora silenziosamente quella linea e continua Il tuo file sembra a posto, il tuo sito sembra a posto e qualcosa che pensavi fosse bloccato viene scansionato - o qualcosa di cui avevi bisogno scansionato non lo è.
io costruisco Toolz.dev E scrivo file robots.txt per ambienti di staging, siti client e miei progetti costantemente, quindi ho costruito il Generatore robots.txt per rendere visibili le modalità di errore. Costruisce il file da un modulo strutturato, quindi la sintassi è giusta per costruzione. Lancia ciò che hai scritto e grida i fucili con i numeri di riga. E verifica un URL rispetto alle tue regole utilizzando la stessa precedenza che i crawler reali utilizzano, in modo da poter dimostrare che una pagina è raggiungibile prima di distribuire piuttosto che dopo che Search Console ti dice che non lo è.
tl; dr: Robots.txt dice ai crawler cosa possono recuperare Non rimuove le pagine dai risultati di ricerca, e non protegge nulla di privato - il file è pubblico, e la conformità è volontaria Le regole si applicano solo all'interno di un
User-agent:gruppo, i percorsi devono iniziare con/,*corrisponde a qualsiasi cosa, un trailing$Ancora la fine e quando due regole corrispondono, il modello più lungo vince con Consenti Breaking Ties. la Generatore robots.txt Build, lanugine e test tutto ciò nel tuo browser.
Cosa controlla effettivamente Robots.txt
Robot.txt è una direttiva di scansione, non una direttiva indicizzata. Quella singola distinzione spiega la maggior parte della confusione che la circonda.
Quando un crawler vuole recuperare un URL sul tuo host, prima recupera https://yourhost/robots.txt e controlla se l'URL è consentito. Se un Disallow Corrispondenze alle regole, un crawler ben educato non richiede la pagina. Questo è l'intero meccanismo. Governa la richiesta HTTP e nient'altro.
Ciò che non fa è rimuovere un URL dall'indice di ricerca. Google può e fa URL di indicizzazione che non ha mai recuperato, utilizzando solo il testo di ancoraggio e il contesto dei collegamenti che li puntano. Se blocchi /pricing In Robots.txt e Cinquanta siti si collegano a /pricingGoogle potrebbe comunque mostrare quell'URL nei risultati - in genere senza descrizione, perché non legge mai la pagina Bloccare un URL che si desidera fuori dalla ricerca funziona attivamente contro di te: il noindex Tag che lo rimuoverebbe vive all'interno della pagina e un crawler che non può recuperare la pagina non può mai vederlo. La sequenza corretta è consentire la scansione, servire <meta name="robots" content="noindex"> o un X-Robots-Tag: noindex Intestazione, attendi che la pagina esca e solo quindi bloccala se desideri salvare il budget della scansione.
Inoltre non protegge nulla. Robots.txt viene servito pubblicamente su un percorso ben noto; chiunque, incluso ogni utente malintenzionato su Internet, può leggere il tuo in un browser. un' Disallow: /internal-admin-v2/ line è un segnale che punta alla cosa che volevi nascondere Gli scraper dannosi ignorano completamente il file: onorarlo è una convenzione volontaria, non un meccanismo di applicazione Tutto ciò che deve essere un'autenticazione privata necessita o una lista di autorizzazione IP. Robots.txt è una richiesta, educatamente fatta, ai crawler che scelgono di ascoltare.
Caratteristiche principali del generatore robots.txt
Editor di gruppi strutturati
La grammatica del file è Gruppi: uno o più User-agent: righe seguite dalle regole che si applicano a loro. Scrivere che a mano invita il singolo bug strutturale più comune, che è una regola che fluttua sopra il primo User-agent: linea dove si applica a nessuno. Il generatore crea gruppi come oggetti di prima classe, quindi ogni regola che aggiungi necessariamente appartiene a un gruppo.
un validatore che riporta i veri pistole a calpestio
Il linter viene eseguito su ogni sequenza di tasti e segnala errori, avvisi e note con i numeri di riga. Segnala regole al di fuori di qualsiasi gruppo, i percorsi mancano del loro taglio principale, a nudo Disallow: senza valore (che significa "consenti tutto" e non è quasi mai ciò che l'autore significava), URL della mappa del sito che non sono assoluti, $ utilizzato ovunque tranne che alla fine di uno schema, direttive sconosciute, gruppi utente-agente duplicati e, ad alta voce, a Disallow: / Seduto sotto User-agent: *.
Un vero tester di URL
Inserisci un percorso e un agente utente e i report dello strumento Consentito o Non consentito, più la regola esatta che lo ha deciso La logica di precedenza è quella reale di RFC 9309: il pattern di path di corrispondenza più lungo vince indipendentemente dalle regole dell'ordine che appaiono nel file, e se due pattern hanno la stessa lunghezza, Consenti battiti Disallow Questa è la parte che le persone sbagliano più spesso dall'intuizione, perché non si comporta come un firewall's regole di prima partita-vince.
Preset con un clic
Consenti tutto, blocca tutto, WordPress, Shopify, Next.js e Block AI Crawlers riempiono l'intero modulo con un punto di partenza corretto e sensato. i blocchi preimpostati di WordPress /wp-admin/ Mentre ti ritaglia /wp-admin/admin-ajax.php, che molti file scritti a mano dimenticano e quindi interrompono le funzionalità front-end di cui Google ha bisogno per eseguire il rendering della pagina.
Controlli del crawler AI
Un clic aggiunge gruppi di rifiuto per GptBot, Claudebot, PerplexityBot, CCBot, Google Extended, Bytespider e Anthropic-AI, lasciando Googlebot e Bingbot liberi di scansionare. La tabella del crawler nota spiega cosa fa effettivamente ogni bot, quindi stai facendo una scelta informata piuttosto che incollare un elenco da un post del blog.
analizza il tuo file esistente
Incolla il robot.txt che già servi e lo strumento lo legge di nuovo in gruppi modificabili La maggior parte del lavoro robots.txt non è greenfield - è auditing e riparazione di qualcosa scritto tre anni fa da qualcuno che se n'è andato - e partire da ciò che è effettivamente live è l'unico modo sano per farlo.
Tutto rimane nel tuo browser
Il file viene generato, rivestito e testato interamente in JavaScript lato client. Non viene caricato nulla, quindi puoi redigere in sicurezza le regole per un host di staging o una sezione non annunciata di un sito e lo strumento funziona offline una volta caricato.
Come utilizzare il generatore robots.txt
Passaggio 1: inizia da un preset o importa ciò che hai già
Se stai ricominciando da capo, scegli il preset più vicino al tuo stack. Se servi già un robots.txt, recuperalo da https://yoursite.com/robots.txt, incollalo nella casella di importazione e fai clic su Analizza in gruppi. Lo strumento ricostruisce la struttura del gruppo e il validatore ti dice immediatamente cosa c'è di sbagliato nel file che hai eseguito in produzione.
Passaggio 2: crea i tuoi gruppi di agenti utente
Ogni gruppo prende di mira uno o più crawler Aggiungere crawler dall'elenco dei robot noti o digitare direttamente un token: i token vengono abbinati in modo non sensibile al caso, quindi googlebot e Googlebot sono equivalenti. un gruppo con * è il catch-all: si applica a qualsiasi crawler che non abbia un proprio gruppo più specifico.
La cosa fondamentale da interiorizzare qui è che i crawler obbediscono esattamente a un gruppo. Googlebot legge il Googlebot raggruppare se uno esiste e ignora il * raggruppa interamente - non li unisce Se crei un Googlebot gruppo Per aggiungere una regola, devi ripetere ogni regola da * Raggruppa al suo interno, o Googlebot smetterà silenziosamente di obbedire a tutti loro. Questo sorprende quasi tutti la prima volta.
Passaggio 3: aggiungi regole, sitemap e leggi il validatore
Aggiungi Disallow percorsi per ciò che vuoi che i crawler saltino, e Consenti percorsi per le ritagliature al loro interno Aggiungi un Crawl-delay solo se stai prendendo di mira un motore che ne onora uno Aggiungi gli URL della tua mappa del sito - questi devono essere assoluti, inclusi schema e host, e si siedono al di fuori di qualsiasi gruppo, applicando a tutti.
Quindi leggi il validatore. Gli errori sono cose che non funzioneranno. Gli avvertimenti sono cose che probabilmente non significano quello che pensi. Le note sono opportunità. Ripara tutto rosso prima di andare oltre.
Passaggio 4: testa gli URL a cui tieni effettivamente
Questo è il passo che le persone saltano e non dovrebbero Prendere i tre o quattro percorsi il cui stato di scansione conta davvero - le pagine dei tuoi prodotti, il tuo blog, il percorso di amministrazione che pensi di aver bloccato, il file CSS di cui Google ha bisogno per rendere il tuo layout - e testare ciascuno contro Googlebot Lo strumento ti dice Consentito o Non consentito e nomina la regola responsabile Se un risultato ti sorprende, le tue regole non dicono quello che pensi che dicono, ed è molto più economico impararlo adesso.
Passaggio 5: copia o scarica e distribuisci nella radice
Copia il file o scarica robots.txt, quindi servirlo esattamente https://yourhost/robots.txt con un 200 stato e a text/plain Tipo di contenuto. In nessun altro luogo funziona. /blog/robots.txt non viene letto da nessuno.
Il protocollo di esclusione dei robot, in dettaglio
Finalmente è uno standard
Per venticinque anni Robots.txt è stata una convenzione descritta in un post di mailing list del 1994 e i crawler hanno interpretato ciascuno le ambiguità a modo loro. Nel 2022 è stato pubblicato come RFC 9309, che codifica le regole di analisi, la semantica di corrispondenza e l'ordine di precedenza su cui erano convergenti Google, Bing e i crawler più seri Quando questa guida dice & quot; la regola è X & quot; significa che RFC 9309 dice X - non che un post sul blog lo affermi.
gruppi, e perché i crawler obbediscono solo a uno
Un record consiste in uno o più consecutivi User-agent: linee seguite dalle linee di regole che si applicano a loro Un crawler si identifica con un token di prodotto - Googlebot, Bingbot, GPTBot- e cerca il gruppo il cui token corrisponde più specificamente Obbedisce a quel gruppo e a nessun altro Il * Il gruppo è il fallback, utilizzato solo quando nulla di più specifico corrisponde.
La conseguenza pratica è la ripetizione perché provoca così tanti danni: i gruppi non ereditano. un file che legge
User-agent: *
Disallow: /admin/
Disallow: /cart
User-agent: Googlebot
Disallow: /internal/
significa che Googlebot potrebbe strisciare /admin/ e /cart liberamente. ha trovato il proprio gruppo, quindi il * il gruppo è invisibile ad esso. Se vuoi che Googlebot venga bloccato da tutti e tre, tutte e tre le regole devono apparire all'interno del Googlebot gruppo.
Precedenza più lunga
Quando due o più regole nel gruppo applicabile corrispondono all'URL, il vincitore è quello con il modello di percorso più lungo, misurato in caratteri. l'ordine nel file è irrilevante. Se la corrispondenza più lunga consenti e la disallow corrispondente più lunga hanno la stessa lunghezza, consenti vincite.
User-agent: *
Disallow: /admin
Allow: /admin/public
In base a queste regole, /admin/public/logo.png è permesso- il modello Consenti è di 13 caratteri contro Disallow's 6 - mentre /admin/secret è non permesso, perché solo il modello disallow corrisponde. Questo è il meccanismo dietro ogni "blocca la directory, consente un file all'interno di esso", incluso WordPress admin-ajax.php Ritagliati. È anche il motivo per cui scrivere regole dall'alto verso il basso come una configurazione del firewall produce intuizioni sbagliate: non ci sono vincite per la prima partita, nessun fall-through e nessun ordine.
Wildcard e l'ancora finale
Due caratteri speciali sono supportati nei pattern di percorso.
* Corrisponde a qualsiasi sequenza di caratteri, incluso nessuno. Disallow: /*?sessionid= Blocca qualsiasi URL contenente quel parametro di query ovunque.
$ Ancora la fine dell'URL e significa solo che quando è il carattere finale del modello. Disallow: /*.pdf$ blocchi /whitepaper.pdf ma non /whitepaper.pdf?download=1, perché quell'URL non termina a .pdf. Lascia cadere il $ e li blocchi entrambi, insieme a qualsiasi altra cosa il cui percorso contenga semplicemente .pdf.
senza a $, la corrispondenza è a corrispondenza del prefisso, che inciampa costantemente le persone. Disallow: /admin blocchi /admin, /admin/, /admin/users, e anche /administrator e /admin-tools, perché tutti iniziano con la stringa /admin. Se intendevi solo la directory, scrivi /admin/.
Il ritardo di scansione non è universalmente onorato
Crawl-delay: 10 chiede a un crawler di attendere dieci secondi tra una richiesta e l'altra. Bing, Yandex e vari crawler più piccoli lo onorano. Googlebot lo ignora completamente- Google regola il tasso di scansione in base ai tempi di risposta del server e all'impostazione in Search Console, non su una direttiva nel tuo file Impostare un grande ritardo di scansione su un sito di grandi dimensioni è una pistola a pedale al rallentatore: a 10 secondi per richiesta, un sito di 100.000 pagine impiega quasi dodici giorni per eseguire la scansione una volta, e in pratica gran parte di esso non viene mai scansionato affatto Se la scansione sta davvero danneggiando il tuo server, ripara il server o memorizza nella cache le pagine; strozzare il crawler per lo più ti rende semplicemente invisibile.
Bloccando i crawler AI
I crawler AI si dividono in due categorie che le persone abitualmente confondono I crawler di addestramento - GPTBot, ClaudeBot, CCBot, Bytespider, Google-Extended - raccolgono i contenuti utilizzati per addestrare i modelli I crawler dei motori di risposta, di cui PerplexityBot è l'esempio più chiaro, recuperano le pagine in modo che possano essere citate nelle risposte generate, che possono inviarti traffico di riferimento Bloccando la prima categoria si protegge il contenuto dall'essere assorbito in un modello; bloccando la seconda si rimuove da una superficie dove altrimenti si potrebbe essere citati.
Google-Extended Merita una nota specifica perché la sua denominazione inganna. Non è un crawler. È un token che controlla se i contenuti già recuperati da Googlebot possono essere utilizzati per la formazione Gemini e Vertex AI. non permettendo nessun effetto di sorta su Ricerca Google, indicizzazione o classifica. Puoi rifiutare l'uso della formazione sull'IA di Google e mantenere la tua presenza di ricerca completamente intatta.
E l'avvertenza che si applica a tutti loro: la conformità è volontaria. Il blocco di GptBot interrompe il crawler dichiarato di OpenAI perché OpenAI sceglie di onorare il file. Non fa nulla per un raschietto che si trova sul suo agente utente e non esiste una direttiva robots.txt che possa farlo.
Riferimento Direttivo
| direttiva | campo di vista | proposito | onorato da |
|---|---|---|---|
User-agent: |
Apre un gruppo | Nomi Il crawler/i a cui si applicano le seguenti regole. * è il catch-tutto. |
ognuno |
Disallow: |
Dentro un gruppo | chiede al crawler di non recuperare gli URL corrispondenti al percorso. a nudo Disallow: senza valore significa "consenti tutto". |
ognuno |
Allow: |
Dentro un gruppo | ritaglia un'eccezione da un più ampio Disallow. Vince pareggia per partita più lunga. |
Google, Bing, i crawler più moderni |
Crawl-delay: |
Dentro un gruppo | secondi minimi tra le richieste. | Bing, Yandex, altri - non googlebot |
Sitemap: |
globale | URL assoluto di una mappa del sito o di un indice della mappa del sito. Si applica a tutti i crawler indipendentemente dal posizionamento. | Google, Bing, la maggior parte dei crawler |
Host: |
globale | Specchio/dominio preferito. un'estensione Yandex. | Solo Yandex |
Noindex: |
- | non funziona. Google ha abbandonato il supporto nel 2019. Usa a noindex Meta tag o X-Robots-Tag testata. |
nessuno |
# |
in nessun luogo | Commenta. Tutto dopo di esso sulla linea viene ignorato. | ognuno |
Casi d'uso comuni
Tenere la spazzatura fuori dall'indice senza bloccare nulla di importante
Il lavoro pane e burro: blocca gli URL di ricerca sfaccettata, le stringhe di query ID sessione, i risultati di ricerca interni e le pagine del carrello o della cassa in modo che i crawler spendano il loro budget su pagine che possono effettivamente classificarsi. La trappola è eccessivamente bloccante. una regola come Disallow: /*? Blocca ogni URL con una stringa di query, che su molti siti include pagine di categorie impaginate che desideri molto scansionare. Testare i modelli prima di spedirli.
Prendendo un sito di staging buio
User-agent: * positivo Disallow: / è la chiamata giusta per un ambiente di staging o anteprima, e il preimpostato Blocca tutto lo produce Ma trattalo come igiene, non sicurezza: gli ambienti di staging dovrebbero anche essere dietro l'autenticazione HTTP o una lista di autorizzazione IP, perché robots.txt non nasconde l'host né impedisce a nessuno di sfogliarlo E il file non deve mai e poi mai essere promosso alla produzione - mettilo nella pipeline di distribuzione's diff review, perché questo esatto errore è il modo più comune in cui i siti scompaiono da Google.
Riparare un sito che è stato eliminato dalla ricerca
Quando il traffico organico cade da un dirupo, /robots.txt è la prima cosa da controllare, prima che l'algoritmo si aggiorni e il backlink audit. Incolla il file live nel generatore e leggi l'output del validatore. un randagio Disallow: /, una regola che blocca il CSS e JavaScript Googlebot deve eseguire il rendering della pagina, o a Googlebot gruppo che sovrascrive accidentalmente un scritto con cura * Il gruppo si presenterà immediatamente.
Decidere cosa possono fare i crawler AI con i tuoi contenuti
Gli editori, i siti di documentazione e chiunque abbia contenuto il prodotto ora hanno una vera decisione da prendere sulla formazione dei crawler Il preset dei crawler Block AI ti offre un default difendibile - i motori di ricerca sono i benvenuti, i crawler di formazione si sono rifiutati - e la tabella dei crawler spiega ciascuno di essi in modo da poter fare eccezioni deliberatamente, come mantenere PerplexityBot consentito per il traffico di riferimento rifiutando i bot di formazione pura.
Controllo di un sito ereditato
prendi il controllo di un sito e nessuno sa perché /resources/ non è indicizzato. Importa il live robots.txt, esegui il tester sui percorsi in questione e lo strumento nomina la regola esatta che lo fa. Questo richiede un minuto e sostituisce un pomeriggio di indovinare.
Perché generare robots.txt nel browser
la Generatore robots.txt funziona interamente lato client I tuoi percorsi, nomi host e regole non lasciano mai la macchina, il che conta più di quanto potrebbe sembrare: la struttura della directory di un prodotto inedito, l'URL di un host di staging e i percorsi interni che stai cercando di mantenere silenziosi sono tutte cose che vale la pena non incollare in qualcun altro' i registri del server Una volta caricata la pagina funziona offline e l'output è un file di testo semplice di tua proprietà.
Robots.txt si trova accanto ad alcuni lavori vicini. la Generatore di meta tag produce il noindex e i tag canonici che eseguono il lavoro robots.txt non possono. la Apri l'anteprima del grafico Mostra come verranno visualizzati i tuoi collegamenti una volta che quei crawler che hai consentito vengono a prenderli. E il generatore di lumache Costruisce i percorsi puliti con cui le tue regole finiranno per abbinare.
FAQ
dove metto il file robots.txt?
deve essere servito esattamente /robots.txt sull'host si applica a - per esempio https://example.com/robots.txt. I crawler non guardano da nessun'altra parte. un file a /blog/robots.txt viene ignorato del tutto e il file acceso example.com non governa shop.example.com; ogni host ha bisogno del proprio. servirlo con uno stato di 200 e a text/plain Tipo di contenuto.
Non consentire la rimozione di una pagina da Google?
No, e questo è l'incomprensione più consequenziale sul formato. Non consentire impedisce a Google di recuperare una pagina; non rimuove l'URL dall'indice. Se altri siti si collegano a un URL bloccato, Google può ancora elencarlo, di solito senza descrizione perché non ha mai letto la pagina. Per mantenere una pagina fuori dai risultati di ricerca, consenti la scansione e servi a noindex meta tag del robot o an X-Robots-Tag testata. Se blocchi l'URL, il crawler non può mai vedere il NoIndex che hai aggiunto.
Robots.txt è un modo per nascondere le pagine private?
No. È un file pubblico che chiunque può leggere, e onorarlo è volontario: gli scraper dannosi lo ignorano completamente. Inserzione /internal-admin/ Nelle tue regole di non consentire dice a ogni attaccante esattamente dove guardare. Tutto ciò che deve rimanere privato ha bisogno di autenticazione, un elenco di permessi IP o di non essere affatto su Internet pubblico.
Come consentire e non consentire interagire quando entrambi corrispondono a un URL?
Vince la regola più specifica, dove specificità indica la lunghezza del pattern di percorso. dato Disallow: /admin e Allow: /admin/public, l'URL /admin/public è consentito perché il modello di permesso è più lungo, mentre /admin/secret è bloccato. Se due modelli sono esattamente della stessa lunghezza, consenti vincite. Le regole dell'ordine appaiono nel file non importa, il che sorprende le persone che si aspettano comportamenti vincitori in prima partita in stile firewall.
Cosa fanno i caratteri * e $ jolly?
Un asterisco corrisponde a qualsiasi serie di caratteri, quindi Disallow: /*?sessionid= blocca qualsiasi URL contenente quel parametro. Un segno del dollaro ancora la fine dell'URL, quindi Disallow: /*.pdf$ blocchi /report.pdf ma non /report.pdf?download=1. senza a $, la corrispondenza è una corrispondenza di prefisso: Disallow: /admin blocchi /admin, /admin/users, e anche /administrator, perché tutti iniziano con quella stringa.
Come faccio a bloccare i crawler AI come Gptbot e Claudebot?
Dai a ciascuno il suo gruppo con Disallow: /. Il preset Block AI Crawlers lo fa per GptBot, Claudebot, PerplexityBot, CCBot, Google Extended, Bytespider e Anthropic-Ai in un solo clic lasciando Googlebot e Bingbot liberi di scansionare. Tieni presente che Google Extended controlla solo l'uso della formazione per Gemini e Vertex AI e non ha alcun effetto su Ricerca Google. La conformità è volontaria, quindi questo interrompe i crawler cooperativi, non determinati raschiatori.
Il ritardo di scansione funziona davvero?
Dipende dal crawler Googlebot lo ignora completamente: la velocità di scansione viene regolata dalla Search Console e dal tuo server's tempi di risposta Bing, Yandex e diversi crawler più piccoli lo onorano, trattando il valore come il numero minimo di secondi tra le richieste. Impostare un ritardo elevato su un sito grande può significare che la maggior parte delle pagine non viene mai scansionata, quindi mantieni i valori piccoli e fissa invece la capacità del server se la scansione è davvero un problema.
Cosa succede se il mio robots.txt ha un errore di sintassi?
I crawler scartano silenziosamente le linee che non possono analizzare e continuare con il resto, quindi una regola infranta fallisce in silenzio piuttosto che ad alta voce. una direttiva sconosciuta, un percorso che manca il suo taglio principale o una regola posta sopra la prima User-agent: La linea semplicemente non fa nulla e non lo scoprirai finché il tuo traffico non si sposta. Questo è esattamente a cosa serve il validatore: riporta ciascuno di questi con un numero di riga prima della distribuzione.



