Robots.txt

Che cosa fa davvero robots.txt — controlla la scansione, non l’indicizzazione — oltre alla sintassi esatta, a come Google lo gestisce internamente e agli errori che danneggiano i siti.

Prima pubblicazione: 23 giu 2026 · Ultimo aggiornamento: 21 ago 2026 · Advanced
Lingue
1 segnale di evidenza in questa pagina

Robots.txt è un file di testo semplice nella radice di ogni host che indica ai crawler quali URL possono o non possono richiedere. Il punto fondamentale: controlla la scansione, non l’indicizzazione. Un URL non consentito può comunque essere indicizzato senza estratto se riceve link da altrove; per escludere una pagina dall’indice bisogna usare noindex, e la pagina NON deve essere bloccata in robots.txt, altrimenti Google non vedrà mai il noindex. Google supporta soltanto user-agent, allow, disallow e sitemap (noindex, nofollow e crawl-delay sono stati abbandonati il 1º settembre 2019). Il file si trova in /robots.txt, si applica a una sola combinazione di host+protocollo+porta, ha un limite di 500 KiB, viene memorizzato nella cache per circa 24 ore e un errore 4xx equivale all’assenza di restrizioni, mentre un errore 5xx può bloccare la scansione dell’intero sito. Non bloccare CSS/JS essenziali per il rendering e non affidarti a questo file per nascondere contenuti: è pubblico.

IN BREVE — Robots.txt è un file di testo semplice nella radice di ogni host (/robots.txt, in minuscolo) che implementa il Robots Exclusion Protocol (RFC 9309). Controlla la scansione, non l’indicizzazione: un URL non consentito può comunque essere indicizzato senza estratto se riceve link da altrove; per rimuoverlo dall’indice bisogna usare noindex su una pagina che non sia bloccata. Google supporta soltanto user-agent, allow, disallow e sitemap; noindex/nofollow/crawl-delay sono stati abbandonati il 1º settembre 2019. L’ambito è una combinazione di host+protocollo+porta. Vince la regola più specifica, cioè con il percorso più lungo, e in caso di parità quella meno restrittiva; * e $ sono i caratteri jolly; i percorsi distinguono maiuscole e minuscole. Google limita il file a 500 KiB, lo memorizza nella cache per circa 24 ore, considera i 4xx (tranne 429) come assenza di restrizioni e, con un 5xx, sospende la scansione per circa 12 ore prima di usare l’ultima copia valida per circa 30 giorni. Non bloccare CSS/JS essenziali per il rendering e non usarlo come controllo degli accessi: il file è pubblico.

Che cos’è e dove si trova

Robots.txt implementa il Robots Exclusion Protocol, creato da Martijn Koster nel 1994 e infine standardizzato nel 2022 come RFC 9309, scritto con il contributo di Gary Illyes, Henner Zeller e Lizzi Sassman di Google, oltre allo stesso Koster. Nelle parole dello standard: “This document specifies and extends the ‘Robots Exclusion Protocol’ method originally defined by Martijn Koster in 1994 for service owners to control how content served by their services may be accessed, if at all, by automatic clients known as crawlers.” (traduzione) «Questo documento specifica ed estende il metodo “Robots Exclusion Protocol”, originariamente definito da Martijn Koster nel 1994, affinché i titolari dei servizi possano controllare in che modo i contenuti forniti dai loro servizi possano essere consultati, o se possano esserlo, da client automatici noti come crawler.»

Alcuni fatti che spesso sorprendono:

  • Deve trovarsi nella radice ed essere in minuscolo. RFC 9309 è esplicito: “The rules MUST be accessible in a file named ‘/robots.txt’ (all lowercase) in the top-level path of the service.” (traduzione) «Le regole DEVONO essere accessibili in un file denominato “/robots.txt” — tutto in minuscolo — nel percorso di livello superiore del servizio.» Google aggiunge che l’URL stesso distingue maiuscole e minuscole, come qualsiasi URL.
  • L’ambito è un host + protocollo + porta. Google: “The rules listed in the robots.txt file apply only to the host, protocol, and port number where the robots.txt file is hosted.” (traduzione) «Le regole elencate nel file robots.txt si applicano soltanto all’host, al protocollo e al numero di porta su cui è ospitato il file robots.txt.» Quindi https://example.com, https://www.example.com, https://blog.example.com e http://example.com hanno bisogno ciascuno del proprio file. Sottodomini e protocolli non ne condividono uno.
  • I protocolli supportati da Google sono HTTP, HTTPS e FTP.

L’equivoco che definisce questo argomento: scansione e indicizzazione

Se ricordi una sola cosa di questa pagina, ricorda questa: robots.txt controlla la scansione, non l’indicizzazione. Bloccare un URL non equivale a rimuoverlo da Google. Evidence for this claim A robots.txt rule controls crawling rather than guaranteeing removal from Google Search; a URL can still appear when Google cannot crawl it. Scope: Google Search crawler behavior. Other crawlers can interpret robots.txt differently. Confidence: high · Verified: Google: Introduction to robots.txt

Il documento introduttivo di Google lo dice chiaramente: robots.txt “is not a mechanism for keeping a web page out of Google. To keep a web page out of Google, block indexing with noindex or password-protect the page.” (traduzione) «non è un meccanismo per escludere una pagina web da Google. Per escludere una pagina web da Google, blocca l’indicizzazione con noindex oppure proteggi la pagina con una password.» E riguardo a ciò che accade realmente a un URL bloccato: “While Google won’t crawl or index the content blocked by a robots.txt file, we might still find and index a disallowed URL if it is linked from other places on the web.” (traduzione) «Anche se Google non esegue la scansione né indicizza i contenuti bloccati da un file robots.txt, potremmo comunque trovare e indicizzare un URL non consentito se riceve link da altre parti del Web.» Il risultato è il noto elenco senza estratto: “its URL can still appear in search results, but the search result won’t have a description.” (traduzione) «il suo URL può comunque comparire nei risultati di ricerca, ma il risultato non avrà una descrizione.»

Evidence for this claim Robots.txt controls crawler access, not index eligibility; Google may still index a disallowed URL discovered through links, typically without a content snippet. Scope: web crawling Confidence: high · Verified: Robots.txt Introduction and Guide

La specifica ribadisce la stessa sfumatura per la regola disallow: “Google can’t index the content of pages which are disallowed for crawling, but it may still index the URL and show it in search results without a snippet.” (traduzione) «Google non può indicizzare il contenuto delle pagine la cui scansione non è consentita, ma può comunque indicizzare l’URL e mostrarlo nei risultati di ricerca senza estratto.»

Perché NON devi bloccare una pagina a cui vuoi applicare noindex

Questa è l’insidia che compromette silenziosamente i tentativi di rimozione dall’indice. Un noindex funziona soltanto se Google può eseguire la scansione della pagina e leggerlo. Il documento di Google sul blocco dell’indicizzazione spiega chiaramente questa dipendenza: “For the noindex rule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler. If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see the noindex rule, and the page can still appear in search results, for example if other pages link to it.” (traduzione) «Affinché la regola noindex sia efficace, la pagina o la risorsa non deve essere bloccata da un file robots.txt e deve essere altrimenti accessibile al crawler. Se la pagina è bloccata da un file robots.txt o il crawler non può accedervi, non vedrà mai la regola noindex e la pagina potrà comunque comparire nei risultati di ricerca, per esempio se altre pagine contengono link che la puntano.» Evidence for this claim Google must be able to crawl a URL to see a noindex rule; blocking the URL in robots.txt can prevent the rule from being observed. Scope: Google Search indexing controls for HTML meta robots and X-Robots-Tag rules. Confidence: high · Verified: Google: Block indexing with noindex

Quindi, se vuoi escludere una pagina dall’indice, il consiglio di John Mueller è il modo più semplice per ricordare la soluzione: quando vuoi rimuovere pagine dall’indice, non devi bloccare Google con robots.txt, ma usare noindex.

La prova concreta: ho bloccato due nostre pagine con ottimi posizionamenti

Non devo dimostrarlo soltanto in teoria. Nel mio esperimento in cui ho bloccato due pagine Ahrefs con ottimi posizionamenti, le ho bloccate deliberatamente in robots.txt e ho osservato che cosa è successo. Le pagine sono rimaste indicizzate e hanno mantenuto i posizionamenti: non sono scomparse. Abbiamo perso la freschezza garantita dalle nuove scansioni di Google: “We lost a position here or there and all of the featured snippets for the pages.” (traduzione) «Abbiamo perso una posizione qua e là e tutti gli snippet in primo piano delle pagine.» Il traffico è diminuito, ma meno di quanto mi aspettassi: “Both pages lost some traffic. But it didn’t result in much change to our traffic estimate like I was expecting.” (traduzione) «Entrambe le pagine hanno perso un po’ di traffico, ma ciò non ha modificato molto la nostra stima del traffico, contrariamente a quanto mi aspettavo.»

La mia conclusione dai dati: “Accidentally blocking pages (that Google already ranks) from being crawled using robots.txt probably isn’t going to have much impact on your rankings, and they will likely still show in the search results.” (traduzione) «Impedire accidentalmente tramite robots.txt la scansione di pagine che Google già posiziona probabilmente non avrà un grande impatto sui posizionamenti e le pagine continueranno verosimilmente a comparire nei risultati di ricerca.» E la versione senza mezzi termini: “Don’t block pages you want indexed. It hurts. Not as bad as you might think it does—but it still hurts.” (traduzione) «Non bloccare le pagine che vuoi indicizzare. Fa male. Non quanto potresti pensare, ma fa comunque male.»

Il rovescio della medaglia è rassicurante: quando Search Console segnala “Indexed, though blocked by robots.txt” (traduzione) «Indicizzata, anche se bloccata da robots.txt» per un URL di servizio, come carrelli, filtri o parametri inutili, di solito non è un problema. Come ha spiegato Mueller riguardo agli URL per aggiungere prodotti al carrello, bloccarli va bene e, anche se vengono «indicizzati», è improbabile che compaiano nei risultati, a meno che qualcuno non esegua una ricerca molto specifica per quegli URL, cosa che gli utenti reali non fanno. Distingui l’avviso dal tono allarmante da un problema effettivo: conta soltanto se l’URL bloccato è una pagina che volevi davvero far scansionare e indicizzare.

La sintassi (riferimento)

Un robots.txt è composto da gruppi. Ogni gruppo inizia con una o più righe User-agent che indicano a quali crawler si applica, seguite dalle relative regole.

User-agent: *
Disallow: /cart/
Disallow: /search
Allow: /search/help

User-agent: Googlebot
Disallow: /no-google/

Sitemap: https://example.com/sitemap.xml

User agent e gruppi. Un crawler rispetta esattamente un gruppo, quello con lo user agent più specifico che corrisponde al crawler, e ignora gli altri. Google: “Google’s crawlers determine the correct group of rules by finding in the robots.txt file the group with the most specific user agent that matches the crawler’s user agent. Other groups are ignored.” (traduzione) «I crawler di Google determinano il gruppo di regole corretto trovando nel file robots.txt il gruppo con lo user agent più specifico che corrisponde allo user agent del crawler. Gli altri gruppi vengono ignorati.» E ancora: “Only one group is valid for a particular crawler.” (traduzione) «Per uno specifico crawler è valido un solo gruppo.» (Bing si comporta allo stesso modo; ne parleremo più avanti.)

Questo significa anche che un gruppo specifico non viene integrato con le regole del gruppo jolly: viene usato autonomamente, senza unirlo a User-agent: *. La specifica Google afferma esplicitamente che “user agent specific groups and global groups (*) are not combined.” (traduzione) «i gruppi specifici per user agent e i gruppi globali () non vengono combinati.»* Quindi, se crei un gruppo User-agent: googlebot-news, deve essere autosufficiente: tutte le regole del gruppo * che vuoi continuare ad applicare devono essere ripetute al suo interno, altrimenti Googlebot-News non le vedrà affatto.

Evidence for this claim For Google's crawlers, the most specific matching user-agent group applies; rules from that specific group are not combined with the global asterisk group, although multiple matching specific groups are merged internally. Scope: robots.txt parsing and fetching Confidence: high · Verified: How Google Interprets the robots.txt Specification

Disallow e Allow. Disallow elenca i percorsi che un crawler non deve richiedere; Allow ricava eccezioni al loro interno. La regola disallow “specifies paths that must not be accessed by the crawlers identified by the user-agent line the disallow rule is grouped with.” (traduzione) «specifica i percorsi a cui non devono accedere i crawler identificati dalla riga user-agent del gruppo a cui appartiene la regola disallow.» La regola allow “specifies paths that may be accessed by the designated crawlers. When no path is specified, the rule is ignored.” (traduzione) «specifica i percorsi a cui possono accedere i crawler indicati. Quando non viene specificato alcun percorso, la regola viene ignorata.»

La regola di corrispondenza (quasi tutte le guide la spiegano male). Quando due regole sono in conflitto, vince quella più specifica, dove «più specifica» significa percorso più lungo: “When matching robots.txt rules to URLs, crawlers use the most specific rule based on the length of the rule path. In case of conflicting rules, including those with wildcards, Google uses the least restrictive rule.” (traduzione) «Quando associano le regole di robots.txt agli URL, i crawler usano la regola più specifica in base alla lunghezza del percorso della regola. In caso di regole in conflitto, comprese quelle con caratteri jolly, Google usa la regola meno restrittiva.» Quindi, in caso di vera parità, vince la regola meno restrittiva: Allow prevale su Disallow. RFC 9309 la definisce “Longest Match” (traduzione: «corrispondenza più lunga») e afferma: “The following example shows that in the case of two rules, the longest one is used for matching.” (traduzione) «L’esempio seguente mostra che, in presenza di due regole, per la corrispondenza viene utilizzata quella più lunga.» Evidence for this claim Google resolves matching robots.txt rules by path specificity and uses the least restrictive rule when equally specific rules conflict. Scope: Google crawler interpretation of robots.txt rules; other crawlers may implement different extensions. Confidence: high · Verified: Google: Robots.txt interpretation

Esempio pratico:

User-agent: *
Allow: /folder/page
Disallow: /folder/

L’URL /folder/page corrisponde a entrambe le regole. Allow: /folder/page (12 caratteri) è più lungo di Disallow: /folder/ (8 caratteri), quindi vince la regola Allow più lunga e specifica e la pagina può essere scansionata.

Caratteri jolly * e $. Google: * designates 0 or more instances of any valid character. $ designates the end of the URL.” (traduzione) « indica zero o più occorrenze di qualsiasi carattere valido. $ indica la fine dell’URL.»* Quindi Disallow: /*.pdf$ blocca tutti gli URL che terminano in .pdf, mentre Disallow: /*? blocca tutti gli URL contenenti una stringa di query. La corrispondenza avviene per prefisso: Disallow: /fish corrisponde a /fish, /fish.html e /fish/salmon.html, ma non a /Fish (distingue maiuscole e minuscole) o /catfish (è un prefisso, non una sottostringa).

Distinzione tra maiuscole e minuscole (il dettaglio insidioso). I nomi dei campi e degli user agent non distinguono maiuscole e minuscole; i valori dei percorsi sì. Google: “Both the user-agent field name and its value are case-insensitive,” (traduzione) «Sia il nome del campo user-agent sia il suo valore non distinguono maiuscole e minuscole» ma “The field name (disallow) is case-insensitive, but its value is case-sensitive,” (traduzione) «Il nome del campo (disallow) non distingue maiuscole e minuscole, mentre il suo valore sì» e “The path value must start with / to designate the root and the value is case-sensitive.” (traduzione) «Il valore del percorso deve iniziare con / per indicare la radice e distingue maiuscole e minuscole.» Quindi Disallow: /Folder/ non blocca /folder/.

Sitemap. La direttiva Sitemap: accetta un URL assoluto completo ed è indipendente dai gruppi: può trovarsi ovunque nel file.

Commenti. Tutto ciò che segue # viene ignorato: “To include comments, precede your comment with the # character.” (traduzione) «Per includere commenti, anteponi al commento il carattere #.»

noindex, nofollow e crawl-delay NON sono direttive di robots.txt

È un mito persistente. Dal 1º settembre 2019, Google non supporta più le regole non documentate e non previste dallo standard, tra cui noindex, nofollow e crawl-delay. L’annuncio di Google si concentrava sulle regole non supportate dalla bozza Internet, come crawl-delay, nofollow e noindex, osservando che Google non le aveva mai documentate, e dichiarava che in quella data avrebbe ritirato tutto il codice dedicato alle regole non supportate e non pubblicate, come noindex. L’elenco dei campi supportati è breve e la specifica esplicita l’esclusione: Google supporta user-agent, allow, disallow e sitemap, mentre “other fields such as crawl-delay aren’t supported.” (traduzione) «altri campi, come crawl-delay, non sono supportati.»

Se usavi noindex in robots.txt, le alternative sono un meta tag noindex o un’intestazione X-Robots-Tag, i codici di stato 404/410, la protezione con password, un Disallow oppure lo strumento di rimozione di Search Console.

Come Google gestisce internamente robots.txt

  • Limite di dimensione: 500 KiB. “Google enforces a robots.txt file size limit of 500 kibibytes (KiB). Content which is after the maximum file size is ignored.” (traduzione) «Google applica ai file robots.txt un limite di dimensione di 500 kibibyte (KiB). Il contenuto successivo alla dimensione massima viene ignorato.» RFC 9309 concorda: “The parsing limit MUST be at least 500 kibibytes [KiB].” (traduzione) «Il limite di analisi DEVE essere di almeno 500 kibibyte [KiB].»
  • Cache: circa 24 ore. “Google generally caches the contents of robots.txt file for up to 24 hours, but may cache it longer in situations where refreshing the cached version isn’t possible.” (traduzione) «In genere Google memorizza nella cache il contenuto del file robots.txt per un massimo di 24 ore, ma può conservarlo più a lungo quando non è possibile aggiornare la versione memorizzata.» Una modifica, quindi, non viene necessariamente rilevata subito. Evidence for this claim Google generally caches robots.txt for up to 24 hours and changes crawling behavior according to the HTTP status returned for the file. Scope: Google crawler handling of robots.txt fetches, including documented 4xx, 5xx, and redirect behavior. Confidence: high · Verified: Google: Robots.txt file handling
  • I codici di stato incidono sull’intero sito. È la parte ignorata dalla maggioranza delle guide:
    • 4xx (tranne 429) → nessuna restrizione. “Google’s crawlers treat all 4xx errors, except 429, as if a valid robots.txt file didn’t exist. This means that Google assumes that there are no crawl restrictions.” (traduzione) «I crawler di Google trattano tutti gli errori 4xx, tranne 429, come se non esistesse un file robots.txt valido. Ciò significa che Google presume che non vi siano restrizioni alla scansione.» Un 404 su /robots.txt significa «scansiona tutto». (Non usare 401/403 per limitare la scansione.)
    • 5xx / non raggiungibile → pericoloso. “For the first 12 hours, Google stops crawling the site but keeps trying to fetch the robots.txt file. If Google can’t fetch a new version, for the next 30 days Google will use the last good version, while still trying to fetch a new version.” (traduzione) «Per le prime 12 ore, Google interrompe la scansione del sito ma continua a tentare di recuperare il file robots.txt. Se Google non riesce a recuperare una nuova versione, per i successivi 30 giorni utilizzerà l’ultima versione valida, continuando nel frattempo a cercarne una nuova.» Un errore del server su /robots.txt può quindi impedire di fatto la scansione dell’intero sito per le prime 12 ore circa, dopodiché viene usata l’ultima copia valida per circa 30 giorni. Un robots.txt che restituisce errori persistenti rappresenta un rischio per la scansione di tutto il sito. Se dopo quei 30 giorni il problema persiste: “If the errors are still not fixed after 30 days: If the site is generally available to Google, Google will behave as if there is no robots.txt file (but still keep checking for a new version).” (traduzione) «Se gli errori non sono ancora stati risolti dopo 30 giorni: se il sito è generalmente disponibile per Google, Google si comporterà come se non esistesse alcun file robots.txt, continuando comunque a controllare se ne è disponibile una nuova versione.» In altre parole, un robots.txt che non si ripristina mai non rimane bloccante per sempre: Google finisce per riprendere la scansione senza restrizioni, come con un 404.
    • 3xx → Google segue almeno cinque passaggi di reindirizzamento, poi lo tratta come un 404.

robots.txt in Bing, Yandex e negli altri motori

Il raggruppamento e la sintassi sono sostanzialmente condivisi, ma contano due differenze:

  • crawl-delay. Google lo ignora, Bing continua a rispettarlo e Yandex ha smesso nel 2018: la documentazione di Yandex dichiara “From February 22, 2018, Yandex doesn’t take into account the Crawl-delay directive,” (traduzione) «Dal 22 febbraio 2018, Yandex non tiene conto della direttiva Crawl-delay» e rimanda invece all’impostazione della frequenza di scansione in Yandex Webmaster. Bing afferma esplicitamente che “The robots.txt file is the only valid place to set a crawl-delay directive for MSNBot,” (traduzione) «Il file robots.txt è l’unico posto valido in cui impostare una direttiva crawl-delay per MSNBot» e che la direttiva “accepts only positive, whole numbers as values… the higher the value, the more throttled down the crawl rate will be.” (traduzione) «accetta come valori soltanto numeri interi positivi… quanto maggiore è il valore, tanto più viene limitata la frequenza di scansione.» Nota che Bing interpreta il valore come limitazione relativa, non letteralmente come N secondi.
  • L’insidia della sezione bingbot. Come nella regola di Google “only one group per crawler” (traduzione) «un solo gruppo per crawler», se crei una sezione User-agent: bingbot, Bing applica soltanto quella sezione e ignora le impostazioni predefinite di User-agent: *, fatta eccezione per crawl-delay. Un gruppo specifico per bingbot deve quindi ripetere tutte le direttive che vuoi continuare ad applicare.
  • Cache e comportamento in caso di errore di Amazon. Amazon dichiara che i suoi crawler possono usare una copia di robots.txt memorizzata nella cache nei 30 giorni precedenti. Se non riescono a recuperare il file, si comportano come se non esistesse. Uno strumento di controllo può riferire quale copia ha recuperato, ma non può dimostrare quale versione memorizzata abbia usato Amazon, né che Amazon abbia osservato lo stesso errore dello strumento. Evidence for this claim Amazon says its crawlers may use a robots.txt copy cached within the previous 30 days and behave as though the file does not exist when they cannot fetch it. Scope: Amazon crawler behavior only; a checker result cannot establish which cached copy Amazon used or whether Amazon observed the same fetch failure. Confidence: high · Verified: Amazon: Amazonbot

Gestire i crawler di IA con robots.txt

Robots.txt è attualmente lo strumento principale per gestire i crawler di IA, che rispettano la stessa sintassi di gruppi e user agent. Il problema è che si tratta di token distinti, quindi bloccarne uno non blocca gli altri.

  • OpenAI gestisce diversi bot distinti e i controlli di ciascuno sono indipendenti: consentirne uno non consente gli altri e bloccarne uno non blocca gli altri. GPTBot scansiona contenuti per addestrare i modelli di OpenAI; OAI-SearchBot mostra i siti nelle funzioni di ricerca di ChatGPT; OAI-AdsBot controlla la sicurezza delle pagine presentate come annunci e i suoi dati non vengono usati per l’addestramento. Blocca l’addestramento con User-agent: GPTBot / Disallow: /: questa misura da sola non fermerà i bot di ricerca o pubblicitari. ChatGPT-User è ancora diverso: viene attivato dalle azioni di una persona in ChatGPT o in un Custom GPT, non dalla scansione automatica, e OpenAI dichiara che “robots.txt rules may not apply” (traduzione) «le regole di robots.txt potrebbero non applicarsi»; non fare quindi affidamento su Disallow per tenerlo fuori. Se modifichi ciò che OAI-SearchBot può scansionare, OpenAI segnala che l’aggiornamento può impiegare circa 24 ore per raggiungere i suoi sistemi di ricerca.
  • Google-Extended controlla l’addestramento di Gemini/Vertex ed è separato da Googlebot.
  • Altri nomi da conoscere: CCBot (Common Crawl), ClaudeBot (Anthropic), PerplexityBot e Bytespider.

L’avvertenza fondamentale è che il rispetto delle regole è volontario. Robots.txt formula richieste, non le impone. I crawler corretti le rispettano; gli strumenti di estrazione automatica possono ignorarle e spesso lo fanno. Se devi davvero tenere qualcosa lontano da un bot, è un problema di autenticazione o blocco, non di robots.txt.

Errori comuni (e relative correzioni)

Il file restituisce 200, ma in realtà non è un file robots utilizzabile. Il solo stato non basta. Acquisisci il Content-Type della risposta e i primi byte: un modello CDN o di errore personalizzato può restituire HTML in /robots.txt con 200; ciò deve generare un avviso, non un esito «consenti tutto». Google documenta robots.txt come testo semplice UTF-8 e può ignorare caratteri non validi. Un singolo BOM UTF-8 all’inizio è tollerato, ma un secondo BOM, un BOM nel mezzo, byte UTF-16, NUL o caratteri invisibili o di controllo possono modificare il primo token o invalidare una riga. Mostra l’offset del byte e la riga interessata; non normalizzare silenziosamente il file prima di comunicare all’utente che cosa ha ricevuto il crawler. Applica il limite effettivo di analisi di Google di 500 KiB prima di calcolare i risultati allow/disallow, continuando però a segnalare la parte finale scartata.

  • Bloccare una pagina che vuoi anche rimuovere dall’indice. Blocco + noindex impedisce a Google di scansionarla e vedere il noindex. Usa noindex senza il blocco.
  • Usare robots.txt per rimuovere pagine dall’indice. È lo strumento completamente sbagliato: questo è il compito di noindex.
  • Bloccare CSS/JS essenziali per il rendering. Google ha bisogno di queste risorse per vedere la pagina come un utente; l’esempio di robots.txt di Google consente nuovamente in modo esplicito .css/.js affinché Googlebot possa scansionarli.
  • Tentare di nascondere dati sensibili. RFC 9309 è categorico: “The Robots Exclusion Protocol is not a substitute for valid content security measures. Listing paths in the robots.txt file exposes them publicly and thus makes the paths discoverable.” (traduzione) «Il Robots Exclusion Protocol non sostituisce misure valide di sicurezza dei contenuti. Elencare percorsi nel file robots.txt li espone pubblicamente e li rende quindi individuabili.» Non consentire /secret-admin/ equivale letteralmente a pubblicizzarlo. Usa l’autenticazione.
  • Un Disallow: / fuori posto. Blocca l’intero sito per il crawler indicato: il classico residuo dell’ambiente di preparazione che fa sparire un sito da Google.
  • Ignorare il codice di risposta di /robots.txt. Un 5xx può bloccare la scansione dell’intero sito; considera la disponibilità del file essenziale per la produzione.

Per comprendere il processo più ampio di cui fa parte — individuazione, pianificazione della scansione, rendering e differenza tra scansione e indicizzazione — consulta l’hub sulla scansione. Gli argomenti correlati, ovvero budget di scansione e gestione delle sitemap da parte di Google, approfondiscono ciascuno un elemento specifico.

Who's been ignoring my robots.txt?

This is live data from this site, not an illustration. My robots.txt disallows /api/trap/, and the only link to it is invisible to humans — so a compliant crawler will never request it. Every user-agent below fetched it anyway. (Humans poking at it with curl show up too; the user-agent usually gives them away.)

Loading trap log…

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.