Robots.txt et WordPressParmi les pratiques les plus anciennes en référencement naturel, le fichier robots.txt est toujours utilisé par un grand nombre de référenceur.

Mais est-il encore utile ? Et si oui, comment le paramétrer sur votre site Internet et sur WordPress ?

Article mis à jour le 06/09/2012

Qu’est-ce que le fichier robots.txt ?

Le robots.txt est un fichier que l’on place à la racine de son serveur et qui indique aux moteurs de recherches et autres robots le comportement qu’ils doivent adopter quand ils parcourent et indexent votre site Internet. Pour ceux qui ne comprennent pas le terme, « indexer » signifie pour un moteur de recherche d’analyser, de parcourir et de garder en mémoire votre contenu, et donc de pouvoir le proposer dès qu’un Internaute faire une recherche.

Grâce à ce fichier, vous pouvez indiquer quels contenus doivent être indexés et lesquels doivent être ignorés. En d’autres termes, c’est une aide pour améliorer votre référencement naturel, notamment pour bloquer l’accès à certains contenus privés, inutiles ou nuisibles.

Le robots.txt ne fait pas tout

Le hic, c’est que ce fichier est insuffisant pour s’assurer que les pages bloquées ne soient pas visibles dans les moteurs de recherche.

La preuve : Google indique dans les résultats que la page n’a pas pu être indexée correctement, mais que celle-ci est quand même présente présent dans l’index… En gros, cela veut dire : « on a bien compris votre fichier robots.txt, mais on s’en tape comme de l’an 40 » (et dieu sait combien c’était fun en l’an 40).

Page bloquée par Robots.txt dans les résultats de Google
Résultats Google avec une page bloquée par Robots.txt – Source Search Engine Land

En fait, cela s’explique par le fait que Google a trouvé des liens pointant vers cette page, sans pour autant en connaître le contenu réel. On peut donc se poser la question de la pertinence de Google sur ce point précis.

Si vous utilisez le fichier robots.txt pour restreindre l’accès à certains éléments de votre site Internet, posez-vous donc d’abord ces quelques questions :

  • Existe t-il une réelle utilité à restreindre l’accès à ces contenus ?
  • Si je restreint l’accès, ai-je limité au maximum les liens qui pointent vers ceux-ci ?

Le fichier robots.txt ne doit jamais être utilisé comme une rustine pour cacher certains contenus. Partez du principe que ce que vous devez indexer doit être accessible facilement par l’utilisateur et le moteur de recherche, ce qui repose sur la mise en place d’une structure de site Internet cohérente.

Pour être concret : si vous avez un contenu bloqué par le fichier robots.txt, c’est un peu comme si vous aviez une superbe porte d’entrée à l’avant de votre maison, mais que vous disiez aux invités de faire le tour…

Cela ne vous dispense donc pas d’ajouter sur toutes vos pages bloquées une ligne pour lui indique de ne pas indexer le contenu de celles-ci :

<meta name="robots" content="noindex, nofollow">

Robots.txt : fonctionnement

Indexer tous vos contenus

Si vous avez dans l’optique de référencer l’intégralité de vos pages, de vos contenus et de vos médias, n’utilisez pas le fichier robots.txt : il ne vous servira à rien.

Par défaut, tous les robots et moteurs de recherche vont indexer tout ce qu’ils trouvent. Donc si vous n’avez rien à bloquer ou à cacher, inutile de lire la suite de cet article et allez plutôt boire un café ou une bière (en fonction de l’heure qu’il est). Attention cependant, je connais peu de sites qui sont dans ce cas de figure…

Désindexer vos contenus

Le fonctionnement pour désindexer un contenu grâce au fichier robots.txt est identique sur WordPress que sur n’importe quel autre site Internet. Il faut indiquer le nom du robot concerné suivi des règles que celui-ci devra suivre :

User-agent: Nom du robot
Disallow: répertoire à désindexer

Dans un même fichier robots.txt, on peut avoir :

  • plusieurs user-agent différent.
  • plusieurs lignes « Allow » (autoriser) ou « Disallow » (Interdire) pour chaque user-agent.

On peut par exemple bloquer Google sur certains répertoire, Yahoo sur d’autres et Bing sur aucun.

User-agent: Nom-du-1er-robot
Disallow: /repertoire-a-desindexer
Disallow: /2eme-repertoire-a-desindexer

User-agent: Nom-du-2nd-robot
Disallow: /repertoire-a-desindexer
Disallow: /2eme-repertoire-a-desindexer
Disallow: /3eme-repertoire-a-desindexer

...

Le fichier robots.txt permet heureusement d’utiliser le caractère * qui indique « quel que soit le contenu » ou « quel que soit le robot« . C’est ce qu’on appelle un Wildcard, mais il n’est pas supporté par tous les robots et moteurs de recherche. Heureusement pour nous, les principaux comprennent parfaitement cette commande (Google, Bing, …). Voici quelques exemples concrets de son utilisation :

User-agent: Nom-du-1er-robot
# tout répertoire qui commence par zigo
Disallow: /zigo*
# toute image au format jpg
Disallow: /*.jpg
# toute URL qui contient le caractère ?
Disallow: /*?

# pour tous les robots
User-agent: *
Disallow: /zigossqdqf

Si vous travaillez sur un nouveau site ou que le site est en maintenance, et que vous voulez vous assurer qu’aucun moteur ne puisse rien indexer, il existe une simple commande qui force la non-indexation de tout le contenu par n’importe quel robot :

User-agent: *
Disallow: /

Maintenant que vous avez compris le concept de base, voyons comment créer un fichier robots.txt pertinent pour le CMS WordPress.

WordPress et Robots.txt

Les fichiers inutiles de WordPress

De base, un nombre relativement important de fichiers issus du cœur de WordPress peuvent être indexés, alors que ceux-ci n’ont aucun intérêt pour le moteur de recherche ou le visiteur. De même, les fichiers de vos plugins ou de vos thèmes ne servent à rien pour l’internaute. Autant indiquer directement dans le fichier robots.txt que vous ne voulez en aucun cas qu’ils soient indexer :

User-agent : *
# On désindexe tous les URL ayant des paramètres (duplication de contenu)
Disallow: /*?
# On désindexe la page de connexion (contenu inutile)
Disallow: /wp-login.php
# On désindexe tous les fichiers du coeur de WordPress (contenus inutiles)
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
# On autorise Google à indexer les fichiers mis en ligne dans vos articles et pages (images, vidéos, audio,...)
Allow: /wp-content/uploads

Avec ce simple code, nous avons déjà une base saine. Mais nous pouvons aller plus loin.

Référencement et fichiers sensibles

La partie suivante du fichier robots.txt de WordPress permet d’améliorer et de compléter le paramétrage optimale du CMS pour le référencement naturel. Nous allons en effet bloquer l’accès à certains contenus et URL indésirables :

User-agent: *
# On bloque les URL de ping et de trackback
Disallow: */trackback
# On bloque tous les flux RSS sauf celui principal (enlevez /* pour bloquer TOUS les flux)
Disallow: /*/feed
# On bloque toutes les URL de commentaire (flux RSS inclus)
Disallow: /*/comments

Attention, cela ne vous dispense pas de correctement paramétrer votre blog WordPress, sans quoi le code précédent est aussi utile que du pain rassi au beau milieu d’un désert aride. Il vous faut donc :

  • Supprimez dans votre thème les liens qui pointent vers les trackbacks de vos articles : c’est une spécificité de WordPress et ce CMS ajoute déjà ces informations dans le header (une section visible uniquement du moteur de recherche). Inutile donc de les garder dans le thème visible par les visiteurs.
  • Ne divisez pas en sous-pages vos commentaires, car cela créer des pages souvent pauvres en contenus, tout en diluant inutilement la popularité du site sur des pages secondaires. Pour changer cela, rendez-vous dans l’administration dans « Réglages => Discussions« .
  • Supprimez dans votre thème toute référence aux flux RSS (sauf celui de l’accueil). Vous pouvez à la rigueur garder ceux des catégories mais par pitié supprimez ceux des commentaires. Dans le cas contraire, je serais obligé de vous abattre à coup de pelle…

Continuons sur notre lancée : certains fichiers ne devraient jamais être accessibles par une autre personne que le webmaster, et encore moins être mis à disposition dans les résultats de recherche de Google, Yahoo ou Bing. Le fichier robots.txt peut heureusement bloquer l’accès à ceux-ci, avec ces quelques lignes :

User-agent: *
# On élimine ce répertoire sensible présent sur certains serveurs
Disallow: /cgi-bin
# On désindexe tous les fichiers qui n'ont pas lieu de l'être
Disallow: /*.php$
Disallow: /*.inc$
Disallow: /*.gz$
Disallow: /*.cgi$

Google Image et Adsense

Vous pouvez aussi choisir de ne pas indexer des pages, mais de faire en sorte que les images qu’elles contiennent soient quand même ajoutées dans le moteur  de recherche d’image de Google. Si vous êtes dans ce cas de figure, rajoutez ce code :

User-agent: Googlebot-Image
Disallow:

Si comme un grand nombre de sites vous faites appel à la plateforme Adsense pour afficher des publicités, voici quelques lignes qui permettront à leur script de fonctionner parfaitement sur toutes vos pages, quels que soient les autres lignes de votre fichier robots.txt :

# Autoriser Google AdSense
User-agent: Mediapartners-Google
Disallow:

Le fichier sitemap ?

Le fichier robots.txt permet aussi d’indiquer l’URL de votre fichier sitemap, qui lui-même recense tous les URL de vos différents contenus, sous la forme suivante :

Sitemap: http://www.monsite.fr/sitemap.xml

Honnêtement, ne le faites pas ! Et la raison en est toute simple : cela ne sert à rien. Il est bien plus efficace d’ajouter votre sitemap directement dans les centres webmaster de chaque moteur de recherche :

Non seulement c’est plus rapide et efficace, mais chaque centre vous donnera des informations intéressantes sur la validité du fichier sitemap:

Sitemap et centre Webmaster de Google
Sitemap et centre Webmaster de Google

Pire encore, si vous indiquez clairement l’URL de votre fichier sitemap, vous facilitez la tâche de tous les personnes qui voudront scanner votre site ou voler vos contenus (il existe des dizaines d’outils gratuits et payants pour cela, croyez-moi…).

Le code complet

Vous l’aurez donc compris (enfin j’espère) : le fichier robots.txt va vous permettre de bloquer l’accès à certains contenus, sans pour autant être la solution miracle. A vous d’optimiser votre site pour bloquer de manière plus complète et naturelle l’accès aux contenus privés, dupliqués ou inintéressants.

Et voici le code final du fichier robots.txt pour WordPress :

User-agent: *
Disallow: /*?
Disallow: /wp-login.php
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content
Allow: /wp-content/uploads
Disallow: */trackback
Disallow: /*/feed
Disallow: /*/comments
Disallow: /cgi-bin
Disallow: /*.php$
Disallow: /*.inc$
Disallow: /*.gz
Disallow: /*.cgi

User-agent: Googlebot-Image
Disallow:

User-agent: Mediapartners-Google
Disallow:

Si vous avez des remarques, questions ou critiques, n’hésitez pas.