Robots.txt
Cos’è un file robots.txt?
Robots.txt è un file di testo creato dai webmaster per istruire i robot web (in genere i robot dei motori di ricerca) su come eseguire la scansione delle pagine sul loro sito web. Il file robots.txt fa parte del protocollo di esclusione dei robot (REP), un gruppo di standard Web che regolano il modo in cui i robot eseguono la scansione del Web, accedono e indicizzano i contenuti e forniscono tali contenuti agli utenti. Il REP include anche direttive come meta robot, nonché istruzioni a livello di pagina, sottodirectory o sito su come i motori di ricerca dovrebbero trattare i collegamenti (come “follow” o “nofollow”).
In pratica, i file robots.txt indicano se determinati user agent (software di scansione web) possono o meno eseguire la scansione di parti di un sito web. Queste istruzioni di scansione vengono specificate “non consentendo” o “consentendo” il crawling di alcuni (o tutti) user agent(o crawler).
Indice
Formato base:
User-agent: [nome user-agent] Disallow: [stringa URL da non scansionare]
Insieme, queste due righe sono considerate un file robots.txt completo, sebbene un file robots possa contenere più righe di agenti utente e direttive (ad esempio, disallows, allows, crawl-delays, ovvero “non consentire”, “consenti”, “ritarda-scansione”, ecc.).
All’interno di un file robots.txt, ogni insieme di direttive user-agent appare come un insieme distinto, separato da un’interruzione di riga:
In un file robots.txt con più direttive user-agent, ciascuna regola di non autorizzazione o autorizzazione si applica solo agli useragent specificati in quel particolare insieme separato da interruzioni di riga. Se il file contiene una regola che si applica a più di uno user-agent, un crawler presterà attenzione (e seguirà le direttive in) solo al gruppo di istruzioni più specifico.
Ecco un esempio:
Esempio robots.txt:
Ecco alcuni esempi di robots.txt in azione per un sito www.esempio.com:
URL del file Robots.txt: www.esempio.com/robots.txt
Blocco di tutti i web crawler dalla scansione di tutti i contenuti
User-agent: * Disallow: /
L’utilizzo di questa sintassi in un file robots.txt direbbe a tutti i web crawler di non eseguire la scansione di alcuna pagina su www.esempio.com, inclusa la home page.
Consenti a tutti i web crawler di accedere a tutti i contenuti:
User-agent: * Disallow:
L’utilizzo di questa sintassi in un file robots.txt indica ai web crawler di eseguire la scansione di tutte le pagine su www.example.com, inclusa la home page.
Blocco di un web crawler specifico da una cartella specifica:
User-agent: Googlebot Disallow: /example-subfolder/
Questa sintassi indica solo al crawler di Google (nome user-agent Googlebot) di non eseguire la scansione delle pagine che contengono la stringa URL www.example.com/example-subfolder/.
Blocco di uno specifico web crawler da una specifica pagina web:
User-agent: Bingbot Disallow: /example-subfolder/blocked-page.html
Questa sintassi indica solo al crawler di Bing (nome agente utente Bing) di evitare di eseguire la scansione della pagina specifica all’indirizzo www.esempio.com/esempio-subfolder/pagina-bloccata.html.
Come funziona robots.txt?
I motori di ricerca hanno due funzioni principali:
- Scansione del Web per scoprire contenuti;
- Indicizzare quel contenuto in modo che possa essere offerto agli utenti che cercano informazioni.
Per eseguire la scansione dei siti, i motori di ricerca seguono i collegamenti per passare da un sito all’altro, eseguendo in ultima analisi la scansione di molti miliardi di collegamenti e siti Web. Questo comportamento di scansione è talvolta noto come “spidering”.
Dopo essere arrivato a un sito Web ma prima di eseguirne lo spider, il crawler di ricerca cercherà un file robots.txt. Se ne trova uno, il crawler leggerà quel file prima di continuare nella pagina. Poiché il file robots.txt contiene informazioni su come il motore di ricerca deve scansionare, le informazioni trovate istruiranno ulteriori azioni del crawler su questo particolare sito. Se il file robots.txt non contiene direttive che impediscono l’attività di uno user-agent (o se il sito non dispone di un file robots.txt), procederà alla scansione di altre informazioni sul sito.
Altre informazioni rapide su robots.txt:
(discusso più dettagliatamente di seguito)
Per essere trovato, un file robots.txt deve essere inserito nella directory di primo livello di un sito web.
Robots.txt fa distinzione tra maiuscole e minuscole: il file deve essere denominato “robots.txt” (non Robots.txt, robots.TXT o altro).
Alcuni agenti utente (robot) potrebbero scegliere di ignorare il tuo file robots.txt. Ciò è particolarmente comune con crawler più nefasti come robot malware o scraper di indirizzi e-mail.
Il file /robots.txt è disponibile pubblicamente: basta aggiungere /robots.txt alla fine di qualsiasi dominio principale per vedere le direttive di quel sito web (se quel sito ha un file robots.txt!). Ciò significa che chiunque può vedere quali pagine desideri o non desideri vengano scansionate, quindi non utilizzarle per nascondere le informazioni private dell’utente.
Ogni sottodominio su un dominio principale utilizza file robots.txt separati. Ciò significa che sia blog.example.com che example.com devono avere i propri file robots.txt (su blog.example.com/robots.txt e example.com/robots.txt).
In genere è buona norma indicare la location di eventuali Sitemap associate a questo dominio nella parte inferiore del file robots.txt. Ecco un esempio:
Sintassi tecnica robots.txt
La sintassi di Robots.txt può essere considerata come la “lingua” dei file robots.txt. Ci sono cinque termini comuni che potresti incontrare in un file robots. Loro includono:
- User-agent: lo specifico web crawler a cui stai dando istruzioni di scansione (di solito un motore di ricerca). Un elenco della maggior parte degli agenti utente può essere trovato qui.
- Disallow: il comando utilizzato per indicare a uno user-agent di non eseguire la scansione di un determinato URL. È consentita una sola riga “Disallow:” per ogni URL.
- Allow: (applicabile solo a Googlebot): il comando per comunicare a Googlebot che può accedere a una pagina o a una sottocartella anche se la pagina principale o la sottocartella potrebbero non essere consentite.
- Crawl-delay: quanti secondi deve attendere un crawler prima di caricare ed eseguire la scansione del contenuto della pagina. Tieni presente che Googlebot non riconosce questo comando, ma la velocità di scansione può essere impostata in Google Search Console.
- Sitemap: utilizzata per richiamare la posizione di qualsiasi mappa del sito XML associata a questo URL. Nota che questo comando è supportato solo da Google, Ask, Bing e Yahoo.
Pattern-matching
Quando si tratta degli URL effettivi da bloccare o consentire, i file robots.txt possono diventare piuttosto complessi in quanto consentono l’uso della corrispondenza dei modelli per coprire una gamma di possibili opzioni URL. Google e Bing rispettano entrambi due espressioni regolari che possono essere utilizzate per identificare pagine o sottocartelle che un SEO vuole escludere. Questi due caratteri sono l’asterisco (*) e il simbolo del dollaro ($).
- * è un carattere jolly che rappresenta qualsiasi sequenza di caratteri
- $ corrisponde alla fine dell’URL
Google offre un ottimo elenco di possibili sintassi ed esempi di corrispondenza dei modelli qui.
Dove va a finire robots.txt su un sito?
Ogni volta che accedono a un sito, i motori di ricerca e altri robot di scansione del Web (come il crawler di Facebook, Facebot) sanno che devono cercare un file robots.txt. Ma cercheranno quel file solo in un posto specifico: la directory principale (in genere il tuo dominio principale o la tua home page). Se un agente utente visita www.example.com/robots.txt e non trova un file robots, presumerà che il sito non ne abbia uno e procederà con la scansione di tutto sulla pagina (e forse anche sull’intero sito).
Anche se la pagina robots.txt esistesse, ad esempio, all’indirizzo example.com/index/robots.txt o www.example.com/homepage/robots.txt, non verrebbe scoperta dagli agenti utente e quindi il sito verrebbe trattato come se non avesse alcun file robots.
Per assicurarti che il file robots.txt venga trovato, includilo sempre nella directory principale o nel dominio principale.
Perché hai bisogno di robots.txt?
I file Robots.txt controllano l’accesso del crawler a determinate aree del tuo sito. Sebbene ciò possa essere molto pericoloso se impedisci accidentalmente a Googlebot di eseguire la scansione dell’intero sito (!!), ci sono alcune situazioni in cui un file robots.txt può essere molto utile.
Alcuni casi d’uso comuni includono:
- Prevenire la visualizzazione di contenuti duplicati nelle SERP (nota che i meta robot sono spesso una scelta migliore per questo)
- Mantenere private intere sezioni di un sito Web (ad esempio, il sito di staging del tuo team di ingegneri)
- Impedire che le pagine dei risultati di ricerca interni vengano visualizzate su una SERP pubblica
- Specificare la posizione delle mappe del sito
- Impedire ai motori di ricerca di indicizzare determinati file sul tuo sito Web (immagini, PDF, ecc.)
- Specificare un ritardo di scansione per impedire il sovraccarico dei server quando i crawler caricano più parti di contenuto contemporaneamente
- Se non ci sono aree sul tuo sito a cui desideri controllare l’accesso dell’agente utente, potresti non aver bisogno di un file robots.txt.
Verificare se hai un file robots.txt
Non sei sicuro di avere un file robots.txt? Digita semplicemente il tuo dominio principale, quindi aggiungi /robots.txt alla fine dell’URL. Ad esempio, il file dei robot di Moz si trova su moz.com/robots.txt.
Se non viene visualizzata alcuna pagina .txt, al momento non disponi di una pagina robots.txt (attiva).
Come creare un file robots.txt
Se hai scoperto di non avere un file robots.txt o di voler modificare il tuo, crearne uno è un processo semplice. Questo articolo di Google illustra il processo di creazione del file robots.txt e questo strumento ti consente di verificare se il tuo file è impostato correttamente.
Stai cercando un po’ di pratica nella creazione di file robots? Questo post sul blog illustra alcuni esempi interattivi.
Le migliori pratiche SEO
Assicurati di non bloccare alcun contenuto o sezione del tuo sito Web di cui desideri eseguire la scansione.
I collegamenti alle pagine bloccate da robots.txt non verranno seguiti. Ciò significa 1.) A meno che non siano collegati anche da altre pagine accessibili dai motori di ricerca (ad esempio pagine non bloccate tramite robots.txt, meta robot o altro), le risorse collegate non verranno sottoposte a scansione e potrebbero non essere indicizzate. 2.) Nessuna link equity può essere trasferita dalla pagina bloccata alla destinazione del link. Se disponi di pagine a cui desideri trasferire l’equità, utilizza un meccanismo di blocco diverso da robots.txt.
Non utilizzare robots.txt per impedire la visualizzazione di dati sensibili (come le informazioni private dell’utente) nei risultati della SERP. Poiché altre pagine possono collegarsi direttamente alla pagina contenente informazioni private (aggirando così le direttive robots.txt sul tuo dominio principale o home page), potrebbe comunque essere indicizzata. Se desideri bloccare la tua pagina dai risultati di ricerca, utilizza un metodo diverso come la protezione tramite password o la meta direttiva noindex.
Alcuni motori di ricerca hanno più user-agent. Ad esempio, Google utilizza Googlebot per la ricerca organica e Googlebot-Image per la ricerca di immagini. La maggior parte degli agenti utente dello stesso motore di ricerca segue le stesse regole, quindi non è necessario specificare direttive per ciascuno dei molteplici crawler di un motore di ricerca, ma avere la possibilità di farlo ti consente di ottimizzare la modalità di scansione del contenuto del tuo sito.
Un motore di ricerca memorizzerà nella cache i contenuti di robots.txt, ma di solito aggiorna i contenuti nella cache almeno una volta al giorno. Se modifichi il file e desideri aggiornarlo più rapidamente di quanto avviene, puoi inviare il tuo URL robots.txt a Google.
Robots.txt vs meta robot vs x-robot
Quanti robot ci sono?!? Qual è la differenza tra questi tre tipi di istruzioni del robot? Prima di tutto, robots.txt è un vero e proprio file di testo, mentre meta e x-robots sono meta direttive. Al di là di ciò che effettivamente sono, i tre hanno tutti funzioni diverse. Robots.txt determina il comportamento di scansione a livello di sito o directory, mentre meta e x-robot possono dettare il comportamento di indicizzazione a livello di singola pagina (o elemento di pagina).