Il y a plusieurs façons de communiquer avec ces robots :

  • Au niveau d’un site tout entier par le biais du fichier « robots.txt »
  • Au niveau d’une page en utilisant les balises META

Chacune de ces alternatives a un usage précis et des fonctionnalités propres.

Le fichier robots.txt

Le principe de fonctionnement est le suivant :

Il s’agit d’un simple fichier texte placé à la racine du serveur.

Les robots arrivant sur un site sont supposés le visiter avant tout autre fichier et sont également supposés s’y conformer.

(Dans les faits, ce n‘est pas toujours le cas, il n’y a aucune obligation et c’est au bon vouloir de l’auteur du robot. Néanmoins les plus importants d’entre eux le respecte.)

Il répond à un standard (Standard for Robot Exclusion) qui bien que non officiel à fait l’objet d’un consensus en 1994 entre la plupart des créateurs de robots et les personnes intéressées par ces questions.

Comme son nom l’indique, il a pour but de fixer des règles d’exclusion pour les robots dans la visite et l’indexation des pages d’un site.

Il définit également des règles de formatage et de syntaxe pour les administrateurs de site :

  • Le fichier robots.txt doit se situer à la racine du serveur
  • Le nom du fichier doit être en minuscule
  • Il ne peut y avoir qu’un seul fichier robots.txt

Exemple :

Pour un site

http://www.example.com

le fichier doit se trouver là :

http://www.example.com/robots.txt

et pour

http://example.com

il doit être accessible ici :

http://example.com/robots.txt


http://www.example.com/Robots.txt

n’est pas valide, pas plus que :

http://www.example.com/user/robots.txt


Concernant les instructions que le fichier robots.txt contient, elles sont de deux types :

Les instructions « User-agent: »
et les instructions « Disallow: ».

Les premières spécifient à quel robot particulier les secondes sont destinées.

L’astérisque (*) sert de wildcard et signifie « tous les robots. »

Le dièse (#) est la marque du commentaire, tout ce qui le suit sur la même ligne est ignoré.

Exemple :

# Fichier robots.txt type

User-agent: *	  # Pour tous les robots	
Disallow:	  # Rien n’est interdit

Signifie que tous les robots (*) sont autorisés à crawler le site. (C’est le comportement par défaut, équivalent à l’absence de fichier robots.txt)

A l’inverse, un fichier comportant ces lignes :

User-agent: *    # Pour tous les robots
Disallow: /      # Tout est interdit

Signifie que tous les robots (*) ont l’interdiction de visiter l’ensemble du site ( / représente la racine du site)

Il est bien sur possible d’être plus sélectif, tant au niveaux des robots autorisés ou exclus que des parties du sites interdites ou ouvertes au crawl.

Exemple :

User-agent: Googlebot    # Le robot de Google
Disallow: /              # est interdit sur tout le site
                         # les autres robots sont autorisés.

Exemple:

User-agent: msnbot      # Le robot de Live.com
Disallow:               # est autorisé sur tout le site

User-agent: *      # tous les autres robots
Disallow: /        # sont interdit sur tout le site

Exemple :

User-agent: *			
Disallow: /private/	# Interdiction du répertoire ‘private’

Signifie que tous les robots sont autorisés sur le site, sauf dans le répertoire “private” qui est interdit pour tous.

Par le jeux des combinaisons, il est possible de créer des règles complexes bien que, sauf cas particuliers, peu d’entre nous en ait réellement l’utilité.

La valeur de l’instruction « Disallow: » peut-être un chemin complet ou partiel correspondant au début de l’URL.

Ainsi,

Disallow: /private		# Interdit à la fois /private.html 
                                # et /private/index.html

Alors que :

Disallow: /private/		# Interdit /private/index.html
                                # mais n’interdit pas /private.html

De la même manière :

Disallow: /perso.php 	# Interdit aussi bien /perso.php
                        # que /perso.php?name=joe


Règles d’écritures du fichier robots.txt :

  • Il ne peut y avoir qu’une seule instruction « User-agent: * » par fichier
  • Il ne peut y avoir qu’une seule instruction par ligne
  • Tout ce qui n’est pas spécifiquement exclu est autorisé
  • Les commentaires doivent être précédés du signe #
  • Les lignes vides servent à séparer les groupes d’instructions destinées à un robot ou à un groupe de robots. (Il ne doit pas y avoir de ligne vide à l’intérieur d’un groupe d’instructions)

Voici pour les directives standards, reconnues par les spécifications du W3C et par le Standard for Robot Exclusion.

Certains moteurs ont cependant ajouté leurs propres instructions. voici quelques uns de ces cas particuliers :

Google :

Dans le but d’assouplir le protocole d’exclusion, Googlebot reconnaît les règles d’écriture suivantes :

  • L’utilisation de l’astérisque « * » pour remplacer n’importe quelle chaîne de caractère.
  • L’ajout en fin de chaîne du signe « $ » pour indiquer la fin d’un terme.

Exemples :

User-agent: Googlebot
Disallow: /*perso-

Signifie que Googlebot ne visitera pas les URLs contenant la chaîne de caractères « perso- » comme :

/users/perso-bob/
/users/perso-joe/

On peut aussi, de cette façon, interdire les pages dynamiques contenant un point d’interrogation (?) par exemple avec l’instruction :

Disallow: /*?
User-agent: Googlebot
Disallow: /*.html$

Signifie que Googlebot ne visitera pas les URLs dont l’extension est « .html ».

On peut ainsi interdire la lecture de certains types de fichiers (*.pdf$, .jpg$, etc…)

MSN :

MSN reconnaît également certaines instructions non standard. Parmi elles :

  • L’astérisque « * » et le signe « $ » utilisées conjointement pour interdire l’indexation de fichiers ayant une extension particulière.
  • Le paramètre « Crawl-delay » pour restreindre la fréquence de visite du robot.

Exemples :

User-agent: msnbot
Disallow: /*.gif$

Pour interdire la lecture de tous les fichiers PDF.

(MSN ne précise pas si les signes (*) et ($) peuvent être utilisés de manière plus étendue comme c’est le cas pour Google.)

User-agent: msnbot
Crawl-delay: 120

Indique au robot qu’il doit attendre un minimum de 120 secondes avant d’accéder de nouveau à votre site.

Yahoo! :

Yahoo!, lui aussi, comme MSN, prend en compte le paramètre « Crawl-delay ». Il s’utilise de la même manière.


Voilà pour les bases d’utilisation du fichier robots.txt.

En ce qui concerne les instructions non standard reconnues par certains moteurs, cette liste n’est sans doute pas exhaustive.

Si vous en connaissez d’autres, n’hésitez pas à l'indiquer dans vos commentaires. (Je pense notamment à l’instruction « Allow: » de Google dont j’ai entendu parler mais dont je n’ai pas trouvé mention dans l’aide officielle.)

Enfin une bonne source d’exemples est d'aller voir les fichiers robots.txt de certains des sites que vous visitez, on y trouve parfois des choses intéressantes.

(pas la peine de chercher sur ce site, il n'y en a pas encore...)

Mon préféré est celui là :

http://www.webmasterworld.com/robots.txt :)

Un site complet sur les robots des principaux moteurs, (user agent et adresses IP)

C'est tout pour les fichiers robots.txt, les balises META feront l'objet d'une seconde partie.