Un crawler – altrimenti detto robot, spider o bot – è un software che, in modo sistematico, cerca e analizza contenuti testuali all’interno una rete per conto di un motore di ricerca allo scopo di inserirli in un indice consultabile. Normalmente questi software cercano di scovare il maggior numero possibile di dati da catalogare ed è quindi opportuno indirizzare le loro scansioni.
Come sappiamo infatti, molto spesso all’interno di un sito sono presenti pagine che non si vuole appaiano nei risultati dei motori di ricerca. Il file robots.txt ci aiuta nel compito di regolamentare le visite dei crawler.
La prima cosa che fa uno spider quando visita un indirizzo è cercare il file robots.txt nella directory principale. Una volta trovato, ne legge il contenuto e ne segue le indicazioni, sempre a patto che non si tratti di malware robots perché in tal caso il file verrebbe ignorato.
Essendo un file pubblico possiamo facilmente intuire che il suo scopo non è nascondere informazioni quanto renderle o meno indicizzabili.
robots.txt non dispone di un vero e proprio standard, almeno non sulla carta. Alcune aziende però, come Google, Yahoo e Microsoft avevano iniziato a muoversi in questa direzione già qualche anno fa includendo il supporto al wildcard, alle sitemaps, ai meta tags, ecc…
Per creare un robots.txt non serve altro che un editor di testo basilare, come il blocco note di Windows. I campi fondamentali da includere sono l’User-agent e la regola ad esso applicata.
L’User-agent non è altro che il nome del crawler: googlebot per Google, slurp per Yahoo!, scooter per Altavista, ecc… Solitamente anziché specificare un singolo nome si preferisce inserire un asterisco ad indicare che tutti i crawler devono seguire le regole riportate.
I comandi che possiamo dare ai bot sono Allow (permette l’indicizzazione) e Disallow (impedisce l’indicizzazione), ma dato che di default gli spider analizzano ogni cosa, disallow è il più utilizzato tra i due. Nel file possiamo includere anche l’url della sitemap, ottenendo un codice di questo tipo:
User-agent: * Disallow: Sitemap: http://www.miosito.com/sitemap.xml
Con questo comando si specifica che tutti gli spider (User-agent: *) devono indicizzare l’intero sito (“Disallow: ” che equivale a “Allow= /” dove / indica tutto il contenuto della root).
Per ogni User-agent è possibile specificare più regole ognuna delle quali deve essere posta su una differente riga:
Scrorretto:
User-agent: * Disallow: /cartella1/ /cartella2/
Corretto:
User-agent: * Disallow: /cartella1/ Disallow: /cartella2/
In presenza sia di comandi generici che specifici, un crawler seguirà sempre quelli più specifici ignorando gli altri:
User-agent: * Disallow: /cartella1/ Disallow: /cartella2/ User-agent: googlebot Disallow: /cartella3/
Anche se non si hanno particolari esigenze o si desidera indicizzare l’intero sito è comunque consigliabile creare sempre il file robots.txt; prima di tutto per evitare errori 404 da parte del log del server per il file mancante e in secondo luogo per una questione di chiarezza verso il crawler.
Una volta creato va inserito nella root del sito. Per controllare che il file sia stato caricato correttamente controllare l’indirizzo www.miosito.it/robots.txt (/robots.txt si trova sempre dopo l’estensione del dominio).
Il file robots.txt è un’alternativa sbrigativa e meno precisa al meta tag robots capace invece di evitare l’indicizzazione di una pagina senza per questo bloccare la distribuzione del link juice (valore distribuito sui link in uscita che comprende il PageRank).
<html> <head> <title>...</title> <meta name="robots" content="noindex, follow"> </head>
Indicizzare l’intero sito:
Disallow:
Inserendo uno slash ( / ) dopo Disallow si esclude l’intero sito dall’analisi dei crawler:
Disallow: /
Per evitare l’indicizzazione di una cartella e del suo contenuto bisogna indicarne il percorso:
Disallow: /documenti/
Per escludere una pagina la dicitura è la stessa. Il percorso deve essere corretto: nell’esempio che segue, il file è nella root:
Disallow: /pagina.html
Per esclude uno specifico file inserito in una cartella:
Disallow: /immagini/foto.jpg
Utilizzare un asterisco per indicare sequenze di caratteri corrispondenti. Nell’esempio si blocca l’accesso a tutte le sottodirectory che iniziano con “privato”:
Disallow: /privato*/
Sempre con l’utilizzo dell’asterisco blocco l’accesso a tutti gli URL che presentano un punto interrogativo tra due stringhe:
Disallow: /*?
Per specificare la corrispondenza della fine di un URL, utilizza il carattere $. Nell’esempio si bloccano tutti gli URL che terminano con .jpg:
Disallow: /*.jpg$
Utilizzare Disallow in combinazione con Allow per evitare indicizzazioni di pagine duplicate o non idonee. Ad esempio se nell’url di una pagina il punto interrogativo ( ? ) indica un ID di sessione, e quindi lo si vuole escludere dall’indicizzazione, ma allo stesso tempo è presente in indirizzi di pagine che si vogliono includere, è necessario indicare la seguente istruzione:
User-agent: * Allow: /*?$ Disallow: /*?
Con questo comando bloccheremo qualsiasi indirizzo che presenterà un punto interrogativo compreso tra due stringhe mentre consentiremo l’indicizzazione di quelli che termineranno con quel carattere.
Google Webmaster Tools offre diversi strumenti per la gestione del file robots.txt e il controllo dei risultati delle scansioni dei crawler.
Come sempre WordPress viene in nostro aiuto con diversi plugin più o meno completi:
Ciao, grazie per il tuo post!
Io ho un piccolo problema: Google mi indicizza “troppo” la mia sitemap.
La sitemap è in .xml, e l’ho generata da xml-sitemaps.com
Praticamente alcune parole, come ad esempio l’ora di inserimento di una pagina nella sitemap, vengono indicizzati molto togliendo potere ad altre query per le quali avevo indicizzato il sito.
Comprendi che la cosa è fastidiosa, ora mi chiedo:
come potrei fare per fare vedere la sitemap, ma non farne indicizzare le parole all’interno?
Spero mi potrai aiutare,
grazie
Stefano
Onestamente non ho capito il problema e la sitemap del tuo sito mi pare corretta. Puoi spiegarti meglio?
Ciao, è stato erroneamente caricato sul nostro sito un robots.txt che disabilita la scansione dell’intero sito. Abbiamo già provveduto a toglierlo e sostituirlo con un robots corretto, ma google aveva già preso come buono quello errato.
Quanto tempo ci vuole prima che venga rifatta la scansione e quindi letto il robots.txt corretto.
Grazie e complimenti per la chiarezza del tutorial.
Per essere sicuro che il googlebot torni presto sul tuo sito, carica manualmente la sitemap tramite Google Webmasters Tools.
Ciao, non conosco l’esatta frequenza di scansione di Google, però non penso impieghi molto per ritornare sul tuo sito.
Ma il sito è presente negli indici di Google? lo puoi verificare scrivendo nella barra di ricerca di Google: site:http://www.tuosito.it
In ogni caso puoi sempre verificare lo stato del tuo robots.txt andando su “Strumenti per webmaster” (http://www.google.com/webmasters/tools) nella sezione “Salute” > “URL bloccati”.
Qui puoi trovare la data in cui è stato scaricato il robots.txt l’ultima volta, gli url bloccati e il contenuto del file che Google ha analizzato.
Spero di esserti stata d’aiuto.
Ciao Giulia, ho una domanda forse stupida ma a cui non trovo risposta:
entrando in webmaster di google sembra che il mio file robot sia presente anche se molto scarno… il problema e che se voglio modificarlo es entro nella directory di aruba non trovo il robot.txt…?
Come è possibile che venga visto da google ma non lo trovo nel filemanager di Aruba..?
Potrebbe essere che viene generato da qualche plug-in ad esempio wordpress SEO by Yoast e quindi non lo trovo nel filemanager..?
Se creo un robot.txt nuovo con le tue indicazioni poi lo carico manualmente su aruba creo qualche danno o sostituisco semplicemente il precedente..?
Ti sarei molto grato se potessi aiutarmi…
Ciao Nicho,
Wordpress dispone già di un file virtuale robots.txt, che tu non lo puoi vedere senza aver installato un plugin. Ti sconsiglio di caricare manualmente un file robots.txt nella root, invece ti suggerisco il plugin WP Robots Txt. Dopo l’installazione vai sulla Dashboard/Impostazioni/Lettura e troverai i campi vuoti per poter aggiungere i commandi.
Un esempio di file robots.txt
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /*? #non indicizza le query di ricerca e le session ID
Sitemap: http://www.nomesito.it/sitemap_index.xml #la sitemap di WordPress SEO by Yoast
Con un plugin è ovviamente più semplice, ma non mi pare ci siano controindicazioni nel crearlo manualmente. Se per qualche motivo non dovesse riuscire a modificarlo tramite plugin, rimane comunque questa una soluzione.
Si, è possibile che esista un robots.txt virtuale. Prova a creare manualmente il file ed inserirlo via FTP nella root del sito, dovrebbe sovrascriverlo. Se non riesci, scarica un plugin e con quello crea il file.
Buongiorno
Volevo chiedere cortesemente se posso utilizzare Disallow: / per eliminare articoli di testate giornalistiche che riguardano fatti di due anni fà e che ogni qualvolta digito o digitano il mio nome compaiono.
Salve,
il disallow dà solo indicazione (non è una vera e propria regola) agli spider di non considerare determinate pagine, ma a quanto ho capito le pagine di cui parliamo sono già indicizzate. Consiglio di escludere dai robots tali pagine, di non includerle nelle sitemap e, visto che sono già indicizzate, utilizzare lo strumento “Rimozione URL” da Strumenti per i Webmaster di Google (https://support.google.com/webmasters/answer/1663419).
Spero di essere stata d’aiuto.
Ciao Giulia, io se inserisco il mio sito su google mi compare la frase con scritto e i file robots.txt del mio sito non sono aggiornati, come posso fare per aggiornarli? Ovviamente anche pagando qualcuno che lo faccia visto che io non è che me ne capisco molto.
Il sito web è http://www.immosanremo.com
Saluti
Intendi dire in Google Webmaster Tools? Non capisco cosa significhi “non aggiornato”, però ho notato che il tuo file esclude dall’indicizzazione praticamente tutto il sito.
Ciao Giulia, complimenti per il post! ho provato a scrivermi da solo il file robots.txt seguendo quello che hai scritto, ma poi negli strumenti per Webmaster google mi dice che è sbagliato… alla fine ho risolto con questo strumento: http://toolset.mrwebmaster.it/seo/genera-robots-txt.html
spero possa essere utile anche ad altri come a me. ciao
Grazie per la segnalazione 😀