Bien configurer le fichier robots.txt

Publié le 14 juillet 2009 par Maccimum

S’il est important que vos pages soient indexées au mieux par les robots (spiders) des moteurs de recherche, il peut être néanmoins utile — voire indispensable — d’empêcher les spiders d’en prendre certaines en compte. C’est possible grâce au fichier robots.txt.

Comment çà marche ?

Ce fichier texte contient des commandes à destination des robots d’indexation des moteurs de recherche afin de leur préciser les pages qu’ils peuvent ou ne peuvent pas indexer. Concrètement, tout moteur de recherche commence l’exploration d’un site web en recherchant le fichier robots.txt qu’il faut impérativement placer dans le répertoire racine du site. De plus, il doit être unique. Et s’il ne trouve pas ce fichier, que fait-il ? Il considère alors que rien ne lui est interdit, et de ce fait, il indexera toutes les pages de votre site, sans distinction.

À quoi çà sert ?

Il y a trois raisons principales pour lesquelles il est recommandé de ne pas limiter l’indexation des pages d’un site.

  1. Il y a de nombreuses pages qui ne vous apporterons aucun traffic. Il est donc inutile de les faire indexer par un robot ! C’est le cas des feuilles de styles par exemple, mais aussi de répertoires complets, comme le dossier /cgi-bin/.
  2. Il convient de signaler un autre intérêt majeur :  Certains robots sont particulièrement gourmands en bande passante. Grâce à robots.txt, on peut réduire la bande passante consommée par des robots inutiles.
  3. Les moteurs de recherche n’aiment pas les doublons (duplicate content). Quand un moteur de recherche découvre le même contenu à différents endroits sur un site, il peut pénaliser l’ensemble du site, considérant que vous « trichez » dans le but d’améliorer le référencement. Le fichier robots.txt permet donc de limiter l’accès à une page par une seule adresse.

Précisons tout d’abord que le fichier robots.txt n’empêche pas les visites de robots malveillants. Bien au contraire ! Des programmes sont écrits par des personnes mal intentionnées dans le but de trouver les fichiers sensibles que vous ne souhaitez pas voir indexer. Il existe toutefois une parade facile pour ne pas dévoiler les adresse exactes dont on veut éviter l’accès. Il suffit de n’indiquer que le début des adresses comme ceci : Disallow: /_wp

Structure

Le fichier robots.txt est composé d’un ou plusieurs blocs d’instructions. Chaque bloc comprend des directives et éventuellement des commentaires. Les blocs sont séparés entre eux par une ou plusieurs lignes vides.

Au début de chaque bloc d’instructions, on trouve une ou plusieurs directive User-agent. Elle indique à quels robots s’adressent le bloc d’instructions.

Quelques exemples de fichier robots.txt

Insérer une ligne de commentaire :
# Ceci est un commentaire
Exclusion de toutes les pages (directive adressée à tous les robots) :
User-Agent: *
Disallow: /
Exclusion d’aucune page (équivalent à l’absence de fichier robots.txt, toutes les pages sont visitées) :
User-Agent: *
Disallow:
Autorisation d’un seul robot :
User-Agent: nomDuRobot
Disallow :
User-Agent: *
Disallow: /
Exclusion d’un robot :
User-Agent: NomDuRobot
Disallow: /
User-Agent: *
Disallow:
Exclusion d’une page :
User-Agent: *
Disallow: /repertoire/chemin/page.html
Exclusion de plusieurs page :
User-Agent: *
Disallow: /repertoire/chemin/page.html
Disallow: /repertoire/chemin/page2.html
Disallow: /repertoire/chemin/page3.html
Exclusion de toutes les pages d’un répertoire et ses sous-dossiers :
User-Agent: *
Disallow: /repertoire/
Exclusion d’une image :
User-Agent: *
Disallow: /mon_image.jpg
Exclusion d’un script avec paramètres particuliers :
User-Agent: *
Disallow: /repertoire/page.php?couleur=rouge&fonction=impression

Syntaxe

Il n’existe que deux commandes qui soient reconnues par tous les moteurs. C’est le standard.

Google, Yahoo et Microsoft ont ajoutés quelques extensions à la syntaxe robots.txt standard. Attention toutefois : Ces extensions peuvent être purement et simplement ignorées par les robots qui respectent uniquement les directives robots.txt standard. Elles peuvent aussi ne pas être comprises, voire même, mal interprétées par certains robots.

Si on souhaite utiliser l’extension tout en évitant toute mauvaise interprétation du fichier robots.txt, il est souhaitable de créer un bloc d’instructions destinées à Google, Yahoo et Microsoft et un autre bloc d’instructions destinées aux autres robots.

Le standard

1°) La commande User-agent :

  • Permet de s’adresser à un spider en particulier, ou bien à tous les spiders.
  • Chaque spider doit être appellé par son nom (par exemple, Slurp pour Inktomi, Googlebot pour Google, Scooter ou Mercator pour Altavista…)
  • Pour s’adresser en même temps à tous les moteurs de recherche, il suffit d’utiliser un « * ».

N.B. : D’après le standard original, l’étoile (*) n’est acceptée que dans le champ User-agent. Elle ne peut servir d’opérateur de troncature, comme dans l’exemple : Disallow: /entravaux/*.

2°) La commande Disallow :

  • Permet d’interdire à un moteur ou à tous les moteurs, un fichier précis (une page, une image) ou un répertoire (et/ou groupe de répertoires) désignés par leurs urls relatives. Cette commande permet également d’interdire une ligne de script, en spécifiant même des paramètres précis.
  • En l’absence d’interdiction, tout fichier présent sur un site web est considéré par défaut comme indexable.

N.B. : Il n’existe pas de champ correspondant à la permission, de type Allow:.

Les extensions à la commande Disallow

1°) La commande Allow :

  • Le but principal de robots.txt étant d’interdire l’accès à certaines adresses, la directive Allow permet d’ajouter des exceptions aux interdictions définies par des directives Disallow.
  • Selon Google, on peut faire ceci:
User-agent: googlebot
Disallow: /abc/
Allow: /abc/xyz/
  • De cette manière, les robots de Google n’auront pas accès au répertoire /abc/ à l’exception du sous-répertoire /abc/xyz/.
  • Une sérieuse difficulté dans l’emploi de Allow est l’absence de règles de priorité non ambiguës entre Allow et Disallow. Dans le cas suivant, nous ne savons pas si l’accès à /test/matt-cutts.pdf est autorisé ou interdit:
User-agent: googlebot
Disallow: /test/*.pdf$
Allow: /test/matt-cutts
  • Tant que cette situation n’est pas clarifiée, la directive Allow ne peut pas être utlisée de manière fiable.

2°) La commande Sitemap :

  • Grâce à cette commande, vous n’avez plus à soumettre votre Sitemap à chaque moteur de recherche.
  • L’emploi de cette commande est simple. Elle ne pose aucun problème de compatibilité, contrairement à la commande Allow. Elle peut se placer n’importe où dans le fichier robots.txt. Elle accepte la mention de plusieurs fichiers Sitemap dans un même fichier robots.txt. On peut aussi spécifier un fichier d’index Sitemap (dans ce cas, il ne faut pas recopier la liste des différents fichiers Sitemap).

3°) Le caractère spécial $ :

  • Selon l’extension, le caractère $ placé à la fin de la directive indique que ce qui précède doit correspondre à l’URL complète.
  • Pour les robots comprenant l’extension,
Disallow: /personnel.htm$
interdit uniquement l’accès à l’adresse /personnel.htm, mais l’accès à personnel.html est autorisé.

4°) Le caractère spécial * :

  • Selon l’extension, le caractère * peut remplacer n’importe quelle séquence de caractères. Cela est utile quand on veut éviter qu’une série d’adresses ayant une partie commune ne soit visitée par les robots.
  • Disallow: /*.css$
interdit l’accès à tous les fichiers .css du site

Quelques User-Agents

  • Alta Vista : Scooter
  • Excite : ArchitextSpider
  • Google : Googlebot
  • HotBot : Slurp
  • InfoSeek : InfoSeek Sidewinder
  • Lycos : T-Rex
  • Voilà : Echo

Une liste plus complète des noms de spiders est accessible à cette adresse : http://www.robotstxt.org/wc/active.html

Quelques conseils à respecter impérativement !

  1. Le fichier robots.txt doit être créé avec un éditeur, au format ASCII.
  2. Il doit être placé dans le répertoire racine du site (à l’adresse http://www.monsite.com/robots.txt)
  3. Il ne peut exister qu’un seul fichier robots.txt sur un site, et il doit se trouver à la racine du site.
  4. Le nom du fichier (robots.txt) doit toujours être indiqué en minuscules. Seuls les serveurs de Microsoft ne font pas la différence entre majuscules et minuscules.
  5. Vérifier l’orthographe de votre nom de fichier : « robots.txt » s’écrit toujours avec un « s » à « robots », une erreur encore trop fréquente.
  6. Aucune ligne vide ne peut être inséré à l’intérieur d’un bloc d’instructions.
  7. Le fichier robots.txt n’est pas obligatoire. Toutefois, l’absence de ce fichier entraînera des « erreurs 404 » dans vos rapports de statistiques. Pour éviter cela, il suffit de placer un fichier robots.txt vide.
  8. La balise <META NAME=”robots” CONTENT=”noindex”> permet d’interdire l’indexation de la page où elle figure. Cela est vrai pour Google, Yahoo, Microsoft et quelques autres moteurs, mais un certain nombre ne respectent pas cette convention. Attention toutefois à ne pas insérer cette balise dans une page dont l’accès à déjà été interdit dans le fichier robots.txt).

Pour analyser et éditer votre fichier robots.txt

Yooda propose un outil qui vous permettra de vérifier l’exactitude de votre fichier robots.txt.