Robots.txt : Arrêtez de vous tirer une balle dans le pied !

Le fichier “robots.txt” est un outil très simple et indispensable pour maîtriser le comportement d’exploration des bots des moteurs de recherche. Son objectif premier est de permettre d’interdire aux bots qui respectent les directives du robots.txt de télécharger le contenu de certaines URLs.
C’est simple à implémenter (c’est juste un fichier à la racine, en texte brut), la syntaxe à utiliser est basique ! Mais pourtant, dans de nombreux cas, les webmasters se tirent gravement une balle dans le pied en utilisant mal le robots.txt. Pourquoi ?

Un outil simple, puissant, donc dangereux…

Attention déjà à bien implémenter vos robots.txt : c’est un outil certes simple, mais extrêmement puissant. Donc toute erreur se paie cash, par une perte de trafic search, ou par des effets de bord désagréables. Voici un florilège des erreurs communes qui peuvent provoquer des catastrophes :

  • l’URL du robots.txt qui renvoie une erreur (404, 500…),
  • le robots.txt écrasé par la version en préproduction (contenant une directive disallow/ qui bloque tout le site),
  • un changement d’URL du robots.txt (qui n’est plus à la racine),
  • une ligne blanche dans un bloc de directives,
  • un mauvais encodage du robots.txt,
  • un mauvais ordre des blocs de directives,
  • etc.

Ne bloquez pas massivement des URLs du front office

En principe, sur un site techniquement bien fait, bloquer l’exploration des URLs visibles par un utilisateur par les moteurs de recherche n’a pas d’utilité. Il peut arriver néanmoins que l’on ne souhaite pas que certaines pages soient indexées. Il ne faut pas piloter l’indexation des pages à l’aide du robots.txt, ce n’est pas fait pour ça. Une balise “noindex” est plus appropriée.
Ensuite, et c’est moins connu, les URLs bloquées par le robots.txt ont un pagerank, reçoivent du pagerank, mais ne redonnent jamais le pagerank qu’on leur a transmis. Si vous bloquez massivement des URLs qui sont affichées sur votre site par des directives “disallow”, cela peut faire disparaître une part non négligeable du pagerank interne. J’ai encore vu un site ces jours-ci dont le robots.txt faisait disparaître 50% de son linkjuice !
En fait, il est recommandé d’éviter de faire trop de liens dans votre maillage interne vers des pages bloquées par une directive “disallow”.

Bloquez bien certaines syntaxes dynamiques

A l’inverse, il est extrêmement utile d’empêcher les moteurs de découvrir les syntaxes des URLs dynamiques qui correspondent par exemple :
– à des recherches du moteur de recherche interne
– à des filtres créés par une navigation à facettes
Ces URLs ne font pas partie de l’arborescence « normale » du site. Elles ne figurent pas dans les menus (sauf cas exceptionnel). Bloquer ces syntaxes est une bonne idée. Ne pas le faire peut clairement vous empêcher d’avoir un bon référencement, car un grand nombre de pages inutiles seraient crawlées et indexées.

Et ne bloquez plus les ressources utiles

Et pour finir, sachez qu’il ne faut plus bloquer dans le robots.txt les ressources (fichiers CSS, JavaScript, JSON, XML, images) qui servent à obtenir l’affichage attendu de la page. Les moteurs de recherche comme Google savent aujourd’hui exécuter des JavaScripts simples et exploiter l’information des CSS pour analyser ce à quoi ressemble la page vue par les utilisateurs. Bloquer ces fichiers vous fait courir le risque que la version analysée par Google soit incomplète. Et les informations manquantes ne pourront pas être indexées.
Bref, portez un peu plus d’attention au robots.txt sur vos sites, assurez-vous de sa bonne implémentation, de son contenu et du respect de la syntaxe, et surtout, utilisez-le à bon escient…
Quelques ressources utiles :
https://www.youtube.com/watch?v=I2giR-WKUfY
https://support.google.com/webmasters/topic/4589290?hl=fr&ref_topic=4558844