L’indicizzazione su Google e il robots.txt che non ti aspetti


robots.txt

In questo articolo mostreremo i risultati di un esperimento SEO relativo al file robots.txt e alle direttive utilizzabili al suo interno. Nello specifico la curiosità sta nella direttiva Noindex scovata da Enrico Altavilla, da cui ho preso spunto per far partire questo esperimento sul sito seomantical.com.
Per chiarezza sotto riporterò gli embed post di Google+ che riepilogano gli avvenimenti, ma già in questo post farò un breve sunto dell’esperimento.

Step 1 – La scoperta del noindex in un robots.txt di Google

Di seguito un estratto e l’immagine di un post su g+ dove viene identificata la direttiva Noindex:.

Here is the story. Not many people know that until some time ago Google supported a proprietary out-of-standard robots.txt instruction called “noindex”.

The robots exclusion standard doesn’t contemplate an instruction named “noindex” in the robots.txt file. Robots meta tags and X-Robots HTTP headers have that instruction, of course, but not the robots.txt file.

There is a good reason about the absence of a noindex directive within a robots.txt file: the goal of this file has never been to manage search engine indexing but only search engine crawling, which are two extremely different things.

In Google intentions, the noindex directive in the robots.txt file works exactly as a normal noindex directive used in a specific page, the only difference is that in the robots.txt file you could ask for entire directories to not be indexed.

The additional advantage of the robots.txt version of this directive is that a noindex directive contained in the HTML code of a resource can be seen by the spider only if it downloads the resource and reads its code. The noindex directive in the robots.txt file, instead, is immediately acquired and the spider doesn’t need to ask for the resource that you don’t want to be indexed…
Enrico Altavilla

Che tradotto liberamente per il nostro pubblico italiano:

Non molti sanno che Google supportava in passato una istruzione proprietario e non-standard per il robots.txt chiamata “noindex”. Lo standard di esclusione robots non contempla una istruzione chiamata “noindex” nel file robots.txt. I meta tag Robots e l’intestazione http X-Robots invece hanno questa direttiva, ma non il file robots.txt.
 
C’è una buona ragione per cui è corretto non avere una direttiva noindex nel file robots.txt: l’obiettivo del file non è mai stato relativo alla gestione dell’indicizzazione, ma solamente alla gestione del crawling, che sono due cose molto differenti.
 
Nelle intenzioni di Google, l’uso del noindex nel file dovrebbe avere lo stesso funzionamento del noindex all’interno delle singole pagine, ma con la sola differenza di permettere la deindicizzazione di intere directory.
 
Il vantaggio ulteriore di avere una direttiva noindex all’interno del robots.txt è di consentire l’effetto dell’istruzione senza la necessità di scaricare la risorsa e leggerne il contenuto. In questo modo infatti la direttiva viene subito recepita e di conseguenza si può indicare la non indicizzazione senza far accedere la risorsa.

noindex robots

La cosa molto interessante è poi la risposta di John Mueller di Google:

We never officially supported this, so I wouldn’t count on it doing anything specific.

John Mueller

Visto che io sono sempre molto data-driven ho pensato di fare un veloce test.

Step 2 – Introduzione della direttiva Noindex: / all’interno del robots.txt di seomantical.com

robots.txt seomantical

Ho aggiunto il sito seomantical.com a Google Webmaster Tool e ho inviato per la scansione il file robots.txt ottenendo il messaggio di impossibilità di scansione.

Al momento la pagina non può essere sottoposta a scansione poiché bloccata dall’ultimo file robots.txt scaricato da Googlebot.

Il file robots.txt del sito è il seguente:

User-Agent: *
Noindex: /

Da notare che in realtà non c’è nessuna direttiva di Disallow nel file robots.txt e che il sito al tempo era completamente indicizzato (anche se nello screenshot già si vedono gli effetti della direttiva non-standard):

site seomantical

Come riprova del messaggio ricevuto da webmaster tools si rende dunque necessario approfondire la situazione per vedere il comportamento del bot.

Step 3 – Controllo dei log del web server – nello specifico il comportamento di Googlebot

66.249.72.77 - - [11/Aug/2013:15:23:00 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [11/Aug/2013:15:23:00 +0200] "HEAD /amante-della-seo-4.html HTTP/1.1" 200 - "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [11/Aug/2013:15:23:00 +0200] "GET /amante-della-seo-4.html HTTP/1.1" 200 413 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [11/Aug/2013:15:59:10 +0200] "GET / HTTP/1.1" 200 939 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [11/Aug/2013:16:08:20 +0200] "GET /min/?g=css HTTP/1.1" 200 4222 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [13/Aug/2013:06:05:36 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [13/Aug/2013:06:05:37 +0200] "GET / HTTP/1.1" 200 939 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [13/Aug/2013:06:10:13 +0200] "GET /min/?g=css HTTP/1.1" 200 4222 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [13/Aug/2013:14:30:33 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [13/Aug/2013:14:30:33 +0200] "GET /net HTTP/1.1" 200 1199 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [13/Aug/2013:16:18:59 +0200] "GET /page HTTP/1.1" 200 1219 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
88.231.30.49 - - [17/Aug/2013:16:48:46 +0200] "HEAD /?author=1 HTTP/1.1" 400 - "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [22/Aug/2013:16:27:29 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [22/Aug/2013:16:27:29 +0200] "GET / HTTP/1.1" 200 939 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [22/Aug/2013:16:29:17 +0200] "GET /min/?g=css HTTP/1.1" 200 4222 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [22/Aug/2013:22:09:00 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:10:28:05 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:10:28:05 +0200] "GET /net/reversedns HTTP/1.1" 200 1045 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:10:34:05 +0200] "GET /page/nofollow HTTP/1.1" 200 1033 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:11:12:39 +0200] "GET /min/?g=css HTTP/1.1" 200 4222 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:11:12:40 +0200] "GET /land/images/jquery.png HTTP/1.1" 200 1182 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:11:12:41 +0200] "GET /land/css/images/alert-overlay.png HTTP/1.1" 200 135 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:11:12:41 +0200] "GET /land/css/images/bc.png HTTP/1.1" 200 327 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:11:12:42 +0200] "GET /land/images/html5.png HTTP/1.1" 200 6397 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:11:12:43 +0200] "GET /land/css/images/page.png HTTP/1.1" 200 2681 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:11:12:44 +0200] "GET /land/images/blueprint.png HTTP/1.1" 200 2117 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:11:12:45 +0200] "GET /land/images/codeigniter.png HTTP/1.1" 200 1118 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [24/Aug/2013:12:14:22 +0200] "GET /net/whois HTTP/1.1" 200 1011 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [25/Aug/2013:11:49:53 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [25/Aug/2013:11:49:54 +0200] "GET / HTTP/1.1" 200 939 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [26/Aug/2013:02:12:42 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [26/Aug/2013:02:12:43 +0200] "GET /min/?g=css HTTP/1.1" 200 4222 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [26/Aug/2013:21:16:16 +0200] "GET /robots.txt HTTP/1.1" 404 340 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [26/Aug/2013:21:16:16 +0200] "GET /page/inspector HTTP/1.1" 200 1003 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.65 - - [27/Aug/2013:14:54:13 +0200] "GET /robots.txt HTTP/1.1" 200 45 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.72.77 - - [27/Aug/2013:22:10:38 +0200] "GET /robots.txt HTTP/1.1" 200 45 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.75.77 - - [30/Aug/2013:20:22:43 +0200] "GET /robots.txt HTTP/1.1" 200 45 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
66.249.75.65 - - [31/Aug/2013:04:51:01 +0200] "GET /robots.txt HTTP/1.1" 200 45 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Notare come dal 27 Agosto il comportamento di Googlebot sia cambiato.

Step 4 – L’attesa e la lenta de-indicizzazione in corso

Il sito in questione era composto di pochissime pagine e dunque risulta molto semplice controllare la scomparsa di particolari URL. La prima pagina rimossa è stata la Home Page per poi lentamente rimuovere anche le altre.

Per mostrare una riprova prendo una SERP dove apparivano pagine che ora non sono più presenti.

site seomantical 2

Di seguito embeddo il post su Google+ in modo da poter anche leggere alcuni degli interessanti commenti e le elaborazioni/supposizioni fatte al momento.

Conclusione – Il Noindex nel file robots.txt funziona

Cosa abbiamo imparato da questo esperimento oltre alla teoria, che è sempre bene conoscere.

Trova le risposte
Cercale dove sono realmente.

Nonostante l’affermazione di John Mueller e nonostante quello che ci dice il buon senso spesso la realtà di come funzionano le cose è differente. Nella SEO il pensiero critico è una necessità che ci deve contraddistinguere e ci deve portare a sperimentare, analizzare, provare e confutare le teorie e le regole imposte dalle linee guida.

Per riuscire a comprendere il funzionamento delle cose è necessario toccare con mano, soprattutto perché Google tende a fare spesso un po’ come vuole lui…mascherato da paladino del web libero, standard compliant, cacciatore di streghe e W3Ciaro.

Ogni verità è un percorso tracciato attraverso la realtà.

Henri Bergson, Le due sorgenti della morale e della religione, 1932 – http://bit.ly/16aYf2J

Aggiornamento finale e de-indicizzazione totale – 02-12-2013

site noindex

Scritto il , ultima modifica


Sei membro del forum? Vuoi scrivere anche tu su SEO Blog gt
Chiedilo a @giorgiotave