UX & Coding

Robots.txt: cos’è, come funziona e come istruisce i motori di ricerca

"Il file robots.txt aiuta i motori di ricerca ad eseguire la scansione del sito web in modo più efficiente permettendo un accesso guidato e completo a tutti i contenuti e le risorse principali"

Il robots.txt è un semplice file di testo che ha lo scopo di informare i motori di ricerca (e altri strumenti simili) su come eseguire la scansione delle pagine.

Fa parte del protocollo di esclusione robot, un gruppo di standard web che regola il modo in cui i robot (crawler) eseguono la scansione, accedono ai siti e indicizzano il contenuto che forniscono agli utenti.

È formato da una o più regole che agiscono su diversi fattori ed ognuna di queste permette di specificare se determinati user agent (software di scansione web) possono o meno eseguire la lettura di un sito o di alcune aree specifiche.

Scopo e importanza

Il file robots.txt svolge un ruolo essenziale dal punto di vista dell’ottimizzazione dei motori di ricerca (SEO) dato che indica come possono eseguire la scansione del sito al meglio.

Un utilizzo corretto impedisce di scansionare alcune parti del sito, di generare contenuti duplicati e fornisce utili consigli su come i crawler possono eseguire la scansione delle pagine e delle risorse in modo più efficiente.

Robots.txt
Il robots.txt indica ai crawler quali aree è possibile scansionare

È importante crearlo sempre perché ad ogni accesso lo spider verifica l’esistenza di questo file per controllare se ci sono direttive di esclusione o di inclusione di cui deve tenere conto durante il processo di scansione.

I motori di ricerca in genere memorizzano nella cache il contenuto del robots.txt aggiornandola poi nelle visite successive per rilevare eventuali cambiamenti.

Il crawl budget

I bot non dispongono di risorse illimitate e dividono il quantitativo a disposizione su milioni di siti web; per questa ragione hanno bisogno di un metodo per dare priorità al loro tempo di scansione.

Siti che rispondono molto velocemente e che non hanno errori server, permettono al motore di ricerca di avviare un processo di verifica degli URL più efficiente e quindi aumenterà il numero di risorse che potranno esaminare.

Google Search Console statistiche scansione
Esempio di statistiche di scansione da Google Search Console

In presenza di un numero elevato di pagine (ad esempio migliaia) è essenziale evitare che il bot non “sprechi il suo tempo” su aree di minore importanza e concentri le sue verifiche sui contenuti principali.

Per questa ragione grazie al robots.txt è possibile limitare ad alcune sezioni del sito la scansione per assicurarsi che le pagine più importanti o che ricevono più di frequente un aggiornamento siano sempre indicizzate e analizzate rispetto alla loro ultima versione.

Una situazione in cui il crawler budget è particolarmente importante è quando il sito utilizza molti parametri negli URL (ad esempio per filtrare e ordinare): ogni combinazione di parametri genera indirizzi differenti e questo porta a centinaia se non a migliaia di possibili pagine.

Bloccare la scansione di tutti i parametri della query contribuisce a garantire che il motore di ricerca rilevi solo gli URL principali del sito.

Come creare il file robots.txt

Il robots.txt deve essere un file di testo con caratteri UTF-8 (che comprende ASCII) e deve risiedere nella directory principale del sito, quindi, per il dominio example.com, il file robots.txt sarà collocato all’indirizzo example.com/robots.txt.

Alcune regole generali per una corretta gestione:

  • il nome del file deve essere esattamente robots.txt
  • è possibile avere un solo file robots.txt per ogni sito
  • non può essere contenuto in una cartella secondaria (ad es., example.com/dir/robots.txt)
  • può essere implementato separatamente per i sottodomini (es. blog.example.com)
  • in mancanza di istruzioni specifiche il crawler eseguirà la scansione di tutte le risorse che potrà analizzare
  • i commenti sono consentiti e sono preceduti dal simbolo #

Le istruzioni e il loro significato

Il file robots.txt è costituito da uno o più blocchi di direttive, ognuno che inizia con una riga riguardante il tipo di bot (determinato attraverso il suo user-agent e seguita da istruzioni che consentono di inibire o consentire l’accesso a specifiche aree, pagine o URL.

Anche se molti crawler si attengono agli standard del file robots.txt, alcuni potrebbero interpretare le direttive in modo differente: è consigliabile verificare la sintassi più appropriata da applicare a seconda dei casi specifici.

User-agent

È un valore obbligatorio e corrisponde al nome del robot di un motore di ricerca (software web crawler) a cui verrà applicata la regola.

# Solo Google

User-agent: Googlebot
# Bing e Google


User-agent: Bingbot
User-agent: Googlebot

Usando la regola di corrispondenza asterisco (*), come nell’esempio qui sotto, la direttiva che sarà utilizzata successivamente verrà applicata a tutti i crawler tranne a AdsBot (che si occupano di scansionare gli annunci pubblicitari), i cui nomi devono essere indicati espressamente.

User-agent: *

Questo è un un elenco degli user-agent più noti che possono essere utilizzati nel robots.txt per dare indicazioni ai crawler:

La maggior parte degli user-agent è indicata nel database Web Robots Database o nell’elenco di Google
CrawlerTipologiauser-agent
BaiduGeneral baiduspider
BaiduImages baiduspider-image
BaiduMobile baiduspider-mobile
BaiduNews baiduspider-news
BaiduVideo baiduspider-video
BingGeneral bingbot
BingGeneral msnbot
BingImages & Video msnbot-media
BingAds adidxbot
GoogleGeneral Googlebot
GoogleImages Googlebot-Image
GoogleMobile Googlebot-Mobile
GoogleNews Googlebot-News
GoogleVideo Googlebot-Video
GoogleAdSense Mediapartners-Google
GoogleAdWords AdsBot-Google
Yahoo!General slurp
YandexGeneral yandex

Disallow

Comunica ai motori di ricerca di non accedere a determinati file, pagine o sezioni del sito web.

La direttiva Disallow è seguita dal percorso a cui non è possibile accedere: se non viene definito alcun percorso, la direttiva viene ignorata.

Se si vuole bloccare una pagina, deve essere indicato il nome completo, se invece si tratta di una directory il nome dovrebbe terminare con il carattere /.

# Blocco tutta la cartella "media" per qualsiasi crawler

User-agent: *
Disallow: /media/
# Blocco tutto il sito solo per Google

User-agent: Googlebot
Disallow: /

# Blocco solo la cartella "img" per Bing e Yahoo

User-agent: Bingbot
User-agent: Slurp
Disallow: /img/

L’istruzione Disallow del file robots.txt non garantisce che una pagina non venga compresa tra i risultati di ricerca: informazioni esterne come i link in entrata potrebbero comunque rendere la pagina disponibile senza che lo spider sappia cosa contiene (dato che gli è stato impedito l’accesso).

Un URL bloccato ma comunque indicizzato potrebbe apparire in questo modo:

Robots.txt directory bloccata

Per bloccare in modo sicuro l’indicizzazione di una pagina, deve essere utilizzato il meta tag robots noindex o l’intestazione HTTP X-Robots-Tag ricordandosi di non impedire la lettura della pagina nel robots.txt.

Il motivo è che tale risorsa deve essere sottoposta a scansione per far sì che il tag venga riconosciuto ed seguito.

Allow

La direttiva Allow (interpretata solo da Googlebot) ha esattamente lo scopo contrario di Disallow e normalmente si usa per consentire al motore di ricerca l’accesso ad un file o una pagina specifica all’interno di una directory che potrebbe essere esclusa dall’indicizzazione.

# Blocco l'accesso a tutta la cartella "img" tranne che al file "logo.png"

User-agent: *
Disallow: /img/
Allow: /img/logo.png

Non è necessario inserire nel robots.txt tutte le cartelle e i file che possono essere indicizzati, Allow viene utilizzato solo in presenza di regole di blocco o risorse che non potrebbero facilmente essere raggiunte in alcun modo dal cralwer.

Sitemap

Anche se il file robots.txt è stato ideato principalmente per indicare ai motori di ricerca su quali pagine eseguire la scansione, può anche essere utilizzato per indirizzare i crawler alla sitemap.

User-agent: *
Sitemap: https://example.com/sitemap.xml

La sitemap deve essere inserita come URL assoluto ed è consigliabile indicare la sua posizione anche se già segnalata a strumenti come Google Search Console o Bing Webmaster Tools.

Molti altri motori di ricerca potrebbero usufruirne ed è importante comunicare a loro l’esatta posizione.

Craw-delay

La frequenza di crawling definisce l’attesa tra le differenti richieste che i bot eseguono al sito web e quindi imposta l’intervallo con cui effettueranno la scansione dei contenuti.

L’impostazione crawl-delay indica ai bot che la supportano, come Yahoo!, Bing e Yandex (Google non la considera più) di attendere un determinato periodo di tempo tra le singole richieste.

User-agent: *
Crawl-delay: 5

Impostando il valore a 5, come nell’esempio sopra, Yahoo! e Bing aspetteranno 5 secondi tra una scansione e la successiva, mentre Yandex accederà al sito solo una volta ogni 5 secondi (ogni bot ha le proprie modalità di interpretazione).

Il motivo per cui si ricorrere a questa regola è che se un sito ha un numero molto elevato di pagine, un bot che effettua il crawling con frequenze molto alte potrebbe generare troppe richieste in un periodo di tempo ristretto.

La conseguenza può essere l’esaurimento delle risorse del server e un rallentamento del caricamento del sito o addirittura un down improvviso.

Host

La direttiva host è attualmente supportata solo da Yandex e consente all’utente di decidere se mostrare il sito come example.com (senza www) o come www.example.com nei risultati di ricerca.

Host: example.com

È la meno utilizzata anche alla luce dello scarso supporto limitato ad uno user-agent e non sostituisce alcuna regola di reindirizzamento che andrebbe sempre gestita con l’ausilio dei redirect 301.

Regole di corrispondenza

Il file robots.txt consente l’uso delle regole di corrispondenza che permettono di applicare disposizioni estese a più risorse senza bisogno di utilizzare innumerevoli dichiarazioni specifiche per ogni caso.

Wildcard (*)

Il carattere jolly * intercetta qualsiasi tipo di sequenza di caratteri e viene utilizzato per regole estese a gruppi di file o pagine.

# Blocco l'accesso a qualsiasi URL che contiene il punto di domanda

User-agent: *
Disallow: /*?*

Fine dell’URL ($)

Con il $ si verifica l’esatta fine dell’URL e con questa regola verranno presi in considerazione solo gli indirizzi che terminano esattamente con quel carattere.

# Consento l'accesso a qualsiasi URL che finisce con ".html"

User-agent: *
Allow: /*.html$

Esempi pratici

Qui di seguito alcune possibili applicazioni del file robots.txt e il loro significato:

DichiarazioneEsempio
Non consentire la scansione dell’intero sito web User-agent: *
Disallow: /
Non consentire la scansione di più directory e dei relativi contenuti User-agent: *
Disallow: /admin/
Disallow: /file/
Consentire l’accesso a un singolo user-agent User-agent: Googlebot-news
Allow: /

User-agent: *
Disallow: /
Non consentire la scansione di una singola pagina User-agent: *
Disallow: /pagina.html
Bloccare un’immagine specifica su Google Immagini User-agent: Googlebot-Image
Disallow: /img/header.jpg
Bloccare la scansione di tutte le immagini su Google Immagini User-agent: Googlebot-Image
Disallow: /
Non consentire la scansione di un tipo di file specifico User-agent: Googlebot
Disallow: /*.pdf$
Bloccare tutti gli URL che terminano con .js User-agent: Googlebot
Disallow: /*.js$

Unisciti alla community! Rimani aggiornato, scopri le migliori guide e ricevi risorse gratuite.



Aggiungi un commento

UX & Coding

Articoli recenti

Newsletter

Inserisci la tua email per restare aggiornato sulle ultime novità.