Comment interdire l'accès aux robots

De PGVWiki
Sauter à la navigation Sauter à la recherche

Introduction

Un robot d'indexation (ou araignée ; en anglais web crawler ou web spider) est un logiciel qui explore automatiquement Internet. Il est généralement conçu pour collecter les les pages Web, afin de permettre à un moteur de recherche de les indexer. Ces robots sont indispensables car ils vous permettent, lorsque vous entrez un mot clé dans un moteur de recherche, de trouver le site qui correspond à vos critères de recherche. Mais ce faisant, ces robots surchargent l'accès de vos sites de manière importante. Il existe une méthode qui permet de limiter l'accès de ces robots à certaines parties de votre site. Le standard d'exclusion des robots utilisé par tous les moteurs de recherche vous permet en effet de spécifier des parties de votre site dont vous souhaitez interdire l'accès aux robots. Un exemple décrit ci-après interdit l'accès des bots à la page du calendrier des événements. Toutes les informations affichées sur cette page sont disponibles sur d'autres pages. Il en est de même pour la plupart des arbres de descendance et d'ascendance. Pour interdire l'accès à ces pages, il suffit de créer un fichier nommé robots.txt. Cet erticle vous explique comment créer ce fichier.

Nom du fichier et format

Les moteurs de recherche chercheront dans le répertoire racine de votre serveur la présence d'un fichier nommé "robots.txt". Ce fichier indique au robot quels sont les fichiers qu'il peut télécharger. Ce systèmes ets appelé "Standard d'exclusion des robots".

Le format du fichier robots.txt est particulier. Il est constitué d'enregistrements. Chacun des enregistrements contient deux champs: une ligne "User-agent" et une ou plusieurs lignes "Disallow". Le format est le suivant:

<Champ> ":" <value>

le fichier robots.txt doit être créé dans le mode Unix "ligne de commande" ! La plupart des bons éditeurs de texte disposent d'un mode Unix, sinon votre client FTP est capable de réaliser la conversion. N'essayez pas d'utiliser un éditeur de texte HTML qui ne dispose pas d'un mode d'édition de texte pour créer le fichier robots.txt.

User-agent

la ligne User-agent spécifie le robot concerné. Par example:

User-agent: googlebot

Vous pouvez aussi utiliser le caractère "*" pour spécifier tous les robots:

User-agent: *

Vous pouvez utiliser dans le fichier "robots.txt" les noms de "user agent" qui figurent dans vos propres logs en y recherchant des requêtes de robots. La plupart des moteurs de recherche ont des noms courts pour leurs robots.

Interdiction

La deuxième partie de l'enregistrement est constitiuée de lignes "Disallow:". Ces lignes spécifient quels sont les fichiers et/ou répertoires à interdire. Par exemple, les lignes suivantes informent les robots qu'ils ne peuvent pas télécharger le fichier email.htm:

Disallow: email.htm

Vous pouvez également spécifier des répertoires:

Disallow: /cgi-bin/

La ligne ci-dessus empêche les bots d'indexer ce qui se trouve dans votre répertoire.

L'instruction "Disallow: /bob" interdit l'indexation des fichiers /bob.html et /bob/index.html ainsi que tous les fichiers qui se trouvent dans le répertoire bob.

Si vous laissez un blanc derrière l'instruction Disallow, cela signifie que TOUS les fichiers peuvent être indexés. Il est recommandé d'inscrire au moins une ligne disallow pour chaque User-agent. Un fichier Robots.txt totalement vide a le même effet que ce si ce fichier n'exsitait pas.

Espaces blancs & commentaires

Chacune des lignes du fichier robots.txt qui commence par le caractère # est considérée comme une ligne de commentaires. Le standrad autorise la présence de commentaires à la fin des lignes d'instructions, mais ce n'est pas très joli et parfois inefficace:

Disallow: bob #commentaire

Qualques bots n'interpréteront pas la ligne ci-dessus correctement et essaieront au contraire d'interdire l'indexation de "bob#comment". L +il est donc recommandé de placer les commentaires sur des lignes à part entière.

Un espace blanc en début de ligne est autorisé, mais n'est pas recommandé.

  Disallow: bob #commentaire

Exemples

Les lignes suivantes permettent à tous les robots de visiter tous les fichiers à cause de la présence du carctère "*" qui spécifie tous les robots.

User-agent: *
Disallow:

Ces instructions rejettent tous les robots.

User-agent: *
Disallow: /

Ces instructions interdisent l'accès des répertoires cgi-bin et images à tous les robots:

User-agent: *
Disallow: /cgi-bin/
Disallow: /images/

Ces instructions interdisent l'accès de les fichiers présents sur le serveur au robot Roverdog:

User-agent: Roverdog
Disallow: /

Ces instructions interdisent au robot googlebot d'indexer le fichier cheese.htm:

User-agent: googlebot
Disallow: cheese.htm

Pour des exemples plus compliqués, récupérez quelques fichiers robots.txt sur les sites like Cnn, ou Looksmart.

Exemples de fichiers robots.txt proposés par les utilisateurs de PhpGedView

Exemple 1

User-agent: *
Disallow: /phpgedview/reportengine.php
Disallow: /phpgedview/fanchart.php
Disallow: /phpgedview/search.php
Disallow: /phpgedview/login.php
Disallow: /phpgedview/clippings.php
Disallow: /phpgedview/sosabook.php
Disallow: /phpgedview/timeline.php
Disallow: /phpgedview/calendar.php
Disallow: /phpgedview/images/

Danx cet exemple, PhpGedView a été installé dans le répertoire phpgedview. Placez ce fichier dans le répertoire racine de votre serveur.

Exemple 2

Proposé par: pmarfell

Le fichier suivant montre une *partie* du contenu de mon fichier. Comme vous pouvez le constater il continue à bannir complètement tous les bots.

User-agent: *
Disallow: /bin/
Disallow: /cgi-bin/
Disallow: /dev/
Disallow: /mypostnuke/
Disallow: /phpfunc/
Disallow: /phpGedView/reportengine.php
Disallow: /phpGedView/fanchart.php
Disallow: /phpGedView/search.php
Disallow: /phpGedView/login.php
Disallow: /phpGedView/clippings.php
Disallow: /phpGedView/sosabook.php
Disallow: /phpGedView/timeline.php
Disallow: /phpGedView/calendar.php
Disallow: /phpGedView/hourglass.php
Disallow: /phpGedView/ancestry.php
Disallow: /phpGedView/descendancy.php
Disallow: /phpGedView/pedigree.php
Disallow: /phpGedView/family.php
Disallow: /phpGedView/relationship.php
Disallow: /phpGedView/famlist.php
Disallow: /phpGedView/patriarchlist.php
Disallow: /phpGedView/repolist.php
Disallow: /phpGedView/aliveinyear.php

User-agent: URL_Spider_Pro
Disallow: /

User-agent: CherryPicker
Disallow: /

Mauvais Bots

Que faire si un bot n'obéit pas aux exclusions que vous avez placé dans votre fichier robots.txt? La méthode la plus simple est d'empêcher le robot de fouiner sur votre site en lui interdisant l'accès à votre site. Il vous suffit d'utiliser le fichier .htaccess

Par exemple le bot omni-explorer semble ne pas obéir à l'instruction Disallow:; Il vous suffit alors d'ajouter les lignes suivantes dans le fichier .htaccess qui se trouve dans le répertoire phpGedView.

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} "^64\.127\.124\." [OR]
RewriteCond %{REMOTE_ADDR} "^65\.19\.150\."
RewriteRule .* - [F,L]

Quelques User-Agents

Voici quelques exemples de User-Agents pour les moteurs de recherche les plus populaires :

Nom du moteur User-Agent
Alta Vista Scooter
Excite ArchitextSpider
Google Googlebot
InfoSeek Sidewinder
Lycos T-Rex
HotBot Slurp
Volia Echo


Liens externes