Robots.txt: laissons à Google ce qui lui appartient

écrit par Aymeric

Espèce d'andouille de robotLe fichier robots.txt est destiné aux robots (crawlers) comme son nom l'indique. Censé bloquer l'indexation de certaines URL, son efficacité peut parfois laisser songeur...
Ils peuvent cepandant être lus par les humains. Il suffit de rajouter /robots.txt à la fin d'une nom de domaine. Et cela peut parfois donner des informations intéressantes aux indiscrets!

Répertoires privés publics

Si vous souhaitez par exemple bloquer l'indexation de votre répertoire /perso/ aux yeux de Google en ajout la ligne "Disallow: /perso/" dans votre fichier robots.txt, une simple commande Google permettra de le trouver, pour ensuite aller fouiller dedans...Ex: http://www.google.fr/search?q=etquelquesparamètres

Si vous n'avez pas été plus prudent que ça et que vous n'avez pas bloqué l'affichage des contenus des dossiers dans les paramètres de votre serveur Web, n'importe quel internaute curieux pourra accéder aux fichiers "perso" que vous souhaitiez rendre invisibles (et oui, quand vous utilisez le FTP perso de Free, n'oublie pas que le contenu de vos dossiers est accessible via le protocole HTTP).

Humans.txt pour les humains

Les humains aussi ont droit à leur fichier: http://fr.wikipedia.org/wiki/Humans.txt, le blog d'Axenet par exemple: http://blog.axe-net.fr/humans.txt, ou encore celui de Google: http://www.google.fr/humans.txt.

Alors, pour ne pas donner trop d'informations aux inquisiteurs du dimanche, pourquoi ne pas faire du cloaking et afficher le contenu de ce fichier aux internautes qui tenteraient de connaître le contenu de votre fichier robotx.txt? Allez, je vous dois bien un petit bout de code pour votre .htaccess après cette longue introduction.

Règle pour masquer mon robots.txt aux humains

Comme nous avons vu que les robots ne parlaient aucune langue, nous allons renvoyer le contenu du fichier humans.txt à ceux qui ont un HTTP_ACCEPT_LANGUAGE et qui ne sont donc à priori pas des robots. Pour être vraiment certains de ne pas empêcher les robots d'accéder au fichier, j'ajoute aussi une condition qui vérifie le USER_AGENT :

RewriteBase /
RewriteCond %{REQUEST_URI} ^/robots.txt$
RewriteCond %{HTTP:Accept-Language} !^$
RewriteCond %{HTTP_USER_AGENT} !(msnbot|slurp|googlebot) [NC] 
RewriteRule ^robots.txt$ /humans.txt [L]

Et voilà, vous ne verrez pas mon fichier robots.txt. Enfin avec quelques plugins {Chrome|Firefox}, on peut y arriver 😉

écrit dans Apache, Astuces par Aymeric | 20 commentaires

20 commentaires "Robots.txt: laissons à Google ce qui lui appartient"

  • Moa dit:
  • Diije dit:
  • lereferenceur dit:
  • 512banque dit:
    • Aymeric dit:
    • Maxime dit:
  • Mikiweb dit:
  • lionel dit:
  • Guib dit:
  • Yoann dit:
    • Aymeric dit:
  • Keeg dit:
  • flo dit:
  • Maxime dit:
  • Alban dit:
  • 21J dit:
  • webmaster referenceur dit:
    • Aymeric dit: