Robots noindex follow tramite X-Tag-robots, esempio pratico

Avete mai utilizzato l’x-tag-robots negli headers di una pagina per fornire agli spider i metatag desiderati?

Inizialmente ne avevo parlato qui

La settimana scorsa un po’ per necessità (non volevo coinvolgere gli sviluppatori che sono già oberati dalle mie richieste), ma soprattutto per gioco, ho provato a capire come funziona l’x-tag-robots e volevo condividere con voi la mia esperienza.

Obbiettivo: chiudere alcune aree del sito, che sono dei listing di vecchi contenuti, ma lasciare che gli spider indicizzino le loro foglie.
La soluzione sarebbe semplice: basterebbe inserire nel template che genera queste pagine il seguente metatag:

<meta name =”robots” content=”noindex,follow”>

oppure tramite il PHP:

header(“X-Robots-Tag: noindex”, true);

Ma così facendo avrei perso tutto il divertimento, e avrei dovuto coinvolgere gli sviluppatori.
Prima di iniziare mi sono letto il riassunto fatto da Google: http://code.google.com/intl/it-IT/web/controlcrawlindex/docs/robots_meta_tag.html e pensavo di cavarmela con un banale copia e incolla, invece non è stato così.

Mi sarebbe piaciuto poter utilizzare un espressione regolare, come la seguente, all’interno del file .htaccess

<IfModule mod_headers.c>
<FilesMatch “^nomefile\.php$”>
Header set X-Robots-Tag: “noindex, follow”
</FilesMatch>
</IfModule>

Ma dopo svariati tentativi andati a vuoto, mi sono accorto che la direttiva FilesMatch intercetta il nome del file, ma nel mio caso le url sono virtuali (url rewriting), generate dal cms, e non ho assolutamente idea di quale sia il nome del file da intercettare.

Ho provato a cercare qui un’altra direttiva che facesse al caso mio, e LocationMatch mi è sembrata perfetta!
Se non fosse per un piccolo particolare, ossia che non può essere utilizzata sul file .htaccess, il suo contesto d’uso è limitato alla configurazione del server e ai virtual host.

locationmatch directive

E’ bastato quindi aggiungere la seguente riga al file contenente il virtual host e riavviare apache

<IfModule mod_headers.c>
<LocationMatch “(archivio|scaduti)/$”>
Header set X-Robots-Tag “noindex, follow”
</LocationMatch>
</IfModule>

Importante:

  • è necessario che il modulo degli headers (mod_headers) sia abilitato in apache.
  • Includete sempre le vostre direttive all’interno di IfModule, così se il modulo non dovesse essere incluso almeno non riceverete un errore 500.

Per testarne il funzionamento utilizzate un qualsiasi plugin o sito che vi permetta di visualizzare gli header della pagina. Io sono abituato ad utilizzare liveHttpHeader (plugin di Apache)

livehttpheaders

Considerazioni finali

Nonostante il divertimento nell’arrivare a questa soluzione, sconsiglio di implementarla. Si tratta di un intervento che potrebbe portare più problemi che benefici.
Immaginate le conseguenze che potrebbe portare se l’espressione regolare fosse mal gestita, o se arrivasse in azienda un nuovo Seo (in sostituzione di quello che ha proposto questo intervento) e non ne fosse messo al corrente. Credo che non molti Seo si accorgerebbero di quel noindex negli headers…

 

Un Commento

Partecipa alla Discussione

Puoi usare i seguenti HTML tag e attributi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>