Cos'è un file robots.txt? | Come funziona un file robots.txt

Un file robots.txt contiene istruzioni per i bot che indicano loro a quali pagine Web possono e non possono accedere. I file robots.txt sono particolarmente rilevanti per i crawler Web dei motori di ricerca come Google.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Scoprire cos'è un file robots.txt e cosa fa
  • Scoprire come i bot interagiscono con un file robots.txt
  • Esplorare i protocolli utilizzati in un file robots.txt, inclusi Robots Exclusion Protocol e Sitemaps

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Defend against bot attacks like credential stuffing and content scraping with Cloudflare

Cos'è un file robots.txt?

Il modello OSI

Un file robots.txt è un insieme di istruzioni per i bot. Questo file è incluso nei file di origine della maggior parte dei siti Web. I file robots.txt sono destinati principalmente alla gestione delle attività di bot buoni come i crawler Web, poiché è improbabile che i bot dannosi seguano le istruzioni.

Pensa a un file robots.txt come un cartello con scritto "Codice di condotta" affisso al muro di una palestra, di un bar o di un centro comunitario: il cartello in sé non ha il potere di far rispettare le regole elencate, ma i clienti "buoni" le seguiranno, mentre quelli "cattivi" probabilmente le infrangeranno e verranno banditi.

Un bot è un programma informatico automatizzato che interagisce con siti Web e applicazioni. Esistono bot buoni e bot cattivi e un tipo di bot buono è chiamato bot crawler Web. Questi bot "scansionano" le pagine Web e ne indicizzano il contenuto in modo che possa comparire nei risultati dei motori di ricerca. Un file robots.txt aiuta a gestire le attività di questi crawler Web in modo che non sovraccarichino il server Web che ospita il sito Web o che non indicizzino pagine non destinate alla visualizzazione pubblica.

Come funziona un file robots.txt?

Un file robots.txt è solo un file di testo senza codice di markup HTML (da cui l'estensione file .txt). Il file robots.txt è ospitato sul server Web come qualsiasi altro file sul sito Web. In effetti, il file robots.txt per qualsiasi sito web può essere in genere visualizzato digitando l'URL completo della home page e quindi aggiungendo /robots.txt, come https://www.cloudflare.com/robots.txt. Il file non è collegato ad alcun altro elemento del sito, quindi è improbabile che gli utenti lo trovino, ma la maggior parte dei robot dei crawler Web cercherà prima questo file prima di esplorare il resto del sito.

Sebbene un file robots.txt fornisca istruzioni per i bot, in realtà non può applicarle. Un buon bot, come un crawler Web o un bot di news feed, tenterà di visitare prima il file robots.txt prima di visualizzare qualsiasi altra pagina di un dominio e seguirà le istruzioni. Un bot cattivo ignorerà il file robots.txt oppure lo elaborerà per trovare le pagine Web vietate.

Un bot crawler Web seguirà la serie più specifica di istruzioni nel file robots.txt. Se nel file sono presenti comandi in contraddizione, il bot seguirà il comando più dettagliato.

Una cosa importante da notare è che tutti i sottodomini necessitano del proprio file robots.txt. Ad esempio, mentre www.cloudflare.com ha un proprio file, tutti i sottodomini di Cloudflare (blog.cloudflare.com, community.cloudflare.com, ecc.) necessitano del proprio.

Quali protocolli vengono utilizzati in un file robots.txt?

In ambito di rete, un protocollo è un formato per fornire istruzioni o comandi. I file robots.txt utilizzano un paio di protocolli diversi. Il protocollo principale è denominato Robots Exclusion Protocol. Questo è un modo per indicare ai bot quali pagine Web e risorse evitare. Le istruzioni formattate per questo protocollo sono incluse nel file robots.txt.

L'altro protocollo utilizzato per i file robots.txt è il protocollo Sitemaps. Questo può essere considerato un protocollo di inclusione dei file robot. Sitemaps mostra a un crawler Web quali pagine può analizzare. Ciò aiuta a garantire che un bot crawler non perda nessuna pagina importante.

Esempio di file robots.txt

Ecco il file robots.txt per www.cloudflare.com:

Il modello OSI

Di seguito spieghiamo nel dettaglio cosa significa tutto ciò.

Cos'è un agente utente? Cosa significa "User-agent: *"?

Ogni persona o programma attivo su Internet avrà un "agente utente", ovvero un nome assegnato. Per gli utenti umani, questo include informazioni come il tipo di browser e la versione del sistema operativo, ma non informazioni personali; aiuta i siti Web a mostrare contenuti compatibili con il sistema dell'utente. Per i bot, l'agente utente (in teoria) aiuta gli amministratori del sito Web a sapere che tipo di bot stanno esplorando il sito.

In un file robots.txt, gli amministratori di siti Web sono in grado di fornire istruzioni specifiche per bot specifici, scrivendo istruzioni diverse per gli agenti utente dei bot. Ad esempio, se un amministratore desidera che una determinata pagina venga visualizzata nei risultati di ricerca di Google ma non nelle ricerche di Bing, può includere due set di comandi nel file robots.txt: un set preceduto da "User-agent: Bingbot" e un set preceduto da "User-agent: Googlebot".

Nell'esempio sopra, Cloudflare ha incluso "User-agent: *" nel file robots.txt. L'asterisco rappresenta un agente utente "jolly" e significa che le istruzioni si applicano a tutti i bot e non a uno specifico.

I nomi comuni degli agenti utente bot dei motori di ricerca includono:

Google:

  • Googlebot
  • Googlebot-Image (per le immagini)
  • Googlebot-News (per le notizie)
  • Googlebot-Video (per il video)

Bing

  • Bingbot
  • MSNBot-Media (per immagini e video)

Baidu

  • Baiduspider

Come funzionano i comandi "Disallow" in un file robots.txt?

Il comando Disallow è il più comune nel protocollo di esclusione dei robot. Indica ai bot di non accedere alla pagina Web o all'insieme di pagine Web che seguono il comando. Le pagine non consentite non sono necessariamente "nascoste": semplicemente non sono utili per l'utente medio di Google o Bing, quindi non vengono mostrate. Nella maggior parte dei casi, un utente del sito Web può comunque raggiungere queste pagine se sa dove trovarle.

Il comando Disallow può essere utilizzato in diversi modi, molti dei quali sono visualizzati nell'esempio sopra.

Bloccare un file (in altre parole, una pagina Web specifica)

Ad esempio, se Cloudflare volesse impedire ai bot di esplorare il nostro articolo "Cos'è un bot?", il comando dovrebbe essere scritto come segue:

Disallow: /learning/bots/what-is-a-bot/

Dopo il comando "disallow", la parte dell'URL della pagina Web che segue la home page, in questo caso "www.cloudflare.com", è inclusa. Con questo comando in atto, i bot buoni non accederanno a https://www.cloudflare.com/learning/bots/what-is-a-bot/ e la pagina non verrà visualizzata nei risultati dei motori di ricerca.

Bloccare una directory

A volte è più efficiente bloccare più pagine contemporaneamente, invece di elencarle tutte singolarmente. Se si trovano tutte nella stessa sezione del sito Web, un file robots.txt può semplicemente bloccare la directory che le contiene.

Nell'esempio precedente si ha:

Disallow: /__mesa/

Ciò significa che tutte le pagine contenute nella directory __mesa non devono essere sottoposte a scansione.

Consentire l'accesso completo

Tale comando avrebbe il seguente aspetto:

Non consentire:

In questo modo si comunica ai bot che possono esplorare l'intero sito Web, perché non vi è nulla di vietato.

Nascondere l'intero sito Web dai bot

Disallow: /

In questo caso, il simbolo "/" rappresenta la "radice" nella gerarchia di un sito Web, ovvero la pagina da cui si diramano tutte le altre pagine, quindi include la home page e tutte le pagine ad essa collegate. Con questo comando, i bot dei motori di ricerca non potranno in alcun modo esplorare il sito Web.

In altre parole, una sola barra può eliminare un intero sito web dalla rete Internet ricercabile.

Quali altri comandi fanno parte del Robots Exclusion Protocol?

Allow: proprio come ci si potrebbe aspettare, il comando "Allow" indica ai bot che sono autorizzati ad accedere a una determinata pagina Web o directory. Questo comando consente ai bot di raggiungere una determinata pagina Web, impedendo al contempo l'accesso alle altre pagine Web presenti nel file. Non tutti i motori di ricerca riconoscono questo comando.

Crawl-delay: il comando Crawl-delay ha lo scopo di impedire ai bot dei motori di ricerca di sovraccaricare un server. Permette agli amministratori di specificare per quanto tempo il bot deve attendere tra ogni richiesta, in millisecondi. Ecco un esempio di un comando Crawl-delay per attendere 8 millisecondi:

Crawl-delay: 8

Google non riconosce questo comando, mentre altri motori di ricerca sì. Per Google, gli amministratori possono modificare la frequenza di scansione del proprio sito Web in Google Search Console.

Cos'è il protocollo Sitemaps? Perché è incluso in robots.txt?

Il protocollo Sitemaps aiuta i bot a sapere cosa includere nella scansione di un sito Web.

Una mappa del sito è un file XML simile al seguente:

Esempio di Sitemap

È un elenco leggibile dalla macchina di tutte le pagine di un sito Web. Tramite il protocollo Sitemaps, i link a queste mappe del sito possono essere inclusi nel file robots.txt. Il formato è: "Sitemaps:" seguito dall'indirizzo Web del file XML. Puoi vedere diversi esempi nel file robots.txt di Cloudflare qui sopra.

Sebbene il protocollo Sitemaps aiuti a garantire che i bot spider Web non perdano nulla durante la scansione di un sito Web, i bot seguiranno comunque il loro tipico processo di scansione. Sitemaps non obbliga i bot crawler a dare priorità diverse alle pagine Web.

In che modo robots.txt è correlato alla gestione dei bot?

La gestione dei bot è essenziale per mantenere attivo e funzionante un sito Web o un'applicazione, perché anche una buona attività di bot può sovraccaricare un server di origine, rallentando o rendendo inutilizzabile una proprietà Web. Un file robots.txt ben strutturato mantiene un sito web ottimizzato per la SEO e tiene sotto controllo l'attività dei bot.

Tuttavia, un file robots.txt non sarà molto utile per gestire il traffico dei bot dannosi. Una soluzione di gestione dei bot come Cloudflare Bot Management o la modalità Super Bot Fight può aiutare a limitare l'attività dei bot dannosi senza compromettere i bot essenziali come i crawler Web.

Uova di Pasqua di robots.txt

Di tanto in tanto un file robots.txt conterrà delle uova di Pasqua, messaggi umoristici che gli sviluppatori hanno incluso perché sanno che questi file vengono visti raramente dagli utenti. Ad esempio, il file robots.txt di YouTube riporta: "Creato in un futuro lontano (anno 2000) dopo la rivolta robotica della metà degli anni '90 che ha spazzato via tutti gli esseri umani". Il file robots.txt di Cloudflare chiede: "Caro robot, sii gentile".


#    .__________________________.
#    | .___________________. |==|
#    | | ................. | |  |
#    | | ::[ Dear robot ]: | |  |
#    | | ::::[ be nice ]:: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | | ,|
#    | !___________________! |(c|
#    !_______________________!__!
#   /                            \
#  /  [][][][][][][][][][][][][]  \
# /  [][][][][][][][][][][][][][]  \
#(  [][][][][____________][][][][]  )
# \ ------------------------------ /
#  \______________________________/

Google ha anche un file "humans.txt" all'indirizzo: https://www.google.com/humans.txt