Qu'est-ce que Robots.txt ? | Comment fonctionne un fichier Robots.txt

Un fichier robots.txt contient des instructions pour les bots qui leur indiquent les pages web auxquelles ils peuvent et ne peuvent pas accéder. Les fichiers Robots.txt sont les plus pertinents pour les robots d'indexation de moteurs de recherche comme Google.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Découvrir ce qu'est un fichier robots.txt et ce qu'il fait
  • Comprendre comment les bots interagissent avec un fichier robots.txt
  • Découvrir les protocoles utilisés dans un fichier robots.txt, y compris le protocole d'exclusion des robots et les sitemaps

Copier le lien de l'article

Qu'est-ce que robots.txt ?

Le modèle OSI

Un fichier robots.txt est un ensemble d'instructions pour les bots. Ce fichier est inclus dans les fichiers source de la plupart des sites Web. Les fichiers Robots.txt sont principalement destinés à gérer les activités des bons bots comme les robots d'indexation, puisque les mauvais bots ne sont pas susceptibles de suivre les instructions.

Vous pouvez vous représenter un fichier robots.txt comme un panneau « Code de conduite » affiché sur le mur d'une salle de sport, d'un bar ou d'un centre communautaire : le panneau lui-même n'a pas le pouvoir de faire appliquer les règles indiquées, mais les « bons » clients suivront les règles, tandis que les « mauvais » les enfreindront et se feront exclure.

Un bot est un programme informatique automatisé qui interagit avec les sites Web et les applications. Il existe des bons bots et des mauvais bots. Parmi les bons bots, on trouve les robots d'indexation ou « robots d'indexation Web ». Ces bots « explorent » les pages web et indexent le contenu afin qu'il puisse apparaître dans les résultats des moteurs de recherche. Un fichier robots.txt permet de gérer les activités de ces robots d'indexation afin qu'ils ne surchargent pas le serveur web hébergeant le site ni n'indexent les pages qui ne sont pas destinées à être consultées par le public.

Comment fonctionne un fichier robots.txt ?

Un fichier robots.txt est juste un fichier texte sans code de balisage HTML (d'où l'extension .txt). Le fichier robots.txt est hébergé sur le serveur web comme tout autre fichier sur le site web. En fait, le fichier robots.txt d'un site web donné peut généralement être consulté en tapant l'URL complète de la page d'accueil, puis en ajoutant /robots.txt, comme https://www.cloudflare.com/robots.txt. Le fichier n'est lié à aucun autre endroit du site, il est donc peu probable que les utilisateurs le trouvent, mais la plupart des robots d'indexation recherchent ce fichier avant d'explorer le reste du site.

Alors qu'un fichier robots.txt fournit des instructions pour les bots, il ne peut pas réellement faire appliquer ces instructions. Un bon bot, tel qu'un robot d'indexation ou un bot de thèmes d'actualité, tentera de visiter le fichier robots.txt avant de consulter toutes les autres pages d'un domaine et suivra les instructions. Un bot malveillant ignorera le fichier robots.txt ou le traitera afin de trouver les pages web qui sont interdites.

Un robot d'indexation suivra l'ensemble des instructions le plus spécifique du fichier robots.txt. Si le fichier comporte des commandes contradictoires, le bot suivra la commande plus granulaire.

Il est important de noter que tous les sous-domaines ont besoin de leur propre fichier robots.txt. Par exemple, alors que www.cloudflare.com a son propre fichier, tous les sous-domaines Cloudflare (blog.cloudflare.com, community.cloudflare.com, etc.) ont également besoin du leur.

Quels protocoles sont utilisés dans un fichier robots.txt ?

Dans les réseaux, un protocole est un format permettant de fournir des instructions ou des ordres. Les fichiers Robots.txt utilisent plusieurs protocoles différents. Le protocole principal est appelé le protocole d'exclusion des robots. C'est un moyen de dire aux bots quelles pages web et quelles ressources éviter. Les instructions formatées pour ce protocole sont incluses dans le fichier robots.txt.

L'autre protocole utilisé pour les fichiers robots.txt est le protocole Sitemaps. Il peut être considéré comme un protocole d'inclusion de robots. Sitemaps indique à un robot d'indexation les pages qu'il peut explorer. De cette manière, un robot d'indexation ne manquera aucune page importante.

Exemple de fichier robots.txt

Voici le fichier robots.txt pour www.cloudflare.com :

Le modèle OSI

Ci-dessous, nous expliquerons ce que tout cela signifie.

Qu'est-ce qu'un agent utilisateur ? Qu'entend-on par agent utilisateur : * ?

Toute personne ou programme actif sur Internet aura un « agent utilisateur » ou un nom attribué. Pour les utilisateurs humains, cela inclut des informations telles que le type de navigateur et la version du système d'exploitation, mais aucune information personnelle. Il aide les sites web à afficher un contenu compatible avec le système de l'utilisateur. En termes de bots, l'agent utilisateur (théoriquement) aide les administrateurs de sites web à savoir quel type de bot explore le site.

Dans un fichier robots.txt, les administrateurs de sites web peuvent fournir des instructions spécifiques pour des bots spécifiques en écrivant différentes instructions pour les agents utilisateurs de bots. Par exemple, si un administrateur souhaite qu'une certaine page apparaisse dans les résultats de recherche Google mais pas dans les recherches Bing, il peut inclure deux ensembles de commandes dans le fichier robots.txt : un ensemble précédé de « User-agent: Bingbot » et un ensemble précédé de « User-agent: Googlebot ».

Dans l'exemple ci-dessus, Cloudflare a inclus « User-agent: * » dans le fichier robots.txt. L'astérisque représente un agent utilisateur avec un caractère générique, ce qui signifie que les instructions s'appliquent à tous les bots et non à un bot spécifique.

Voici quelques noms d'agent utilisateur de bots de moteur de recherche courants :

Google :

  • Googlebot
  • Googlebot-Image (pour les images)
  • Googlebot-News (pour les actualités)
  • Googlebot-Video (pour la vidéo)

Bing

  • Bingbot
  • MSNBot-Media (pour les images et la vidéo)

Baidu

  • Baiduspider

Comment fonctionnent la commande Disallow dans un fichier robots.txt ?

La commande Disallow (c'est-à-dire Interdire) est la plus courante dans le protocole d'exclusion des robots. Elle indique aux bots de ne pas accéder à la page web ou à l'ensemble de pages web qui suivent la commande. Les pages interdites ne sont pas nécessairement « masquées », elles ne sont tout simplement pas utiles pour l'utilisateur Google ou Bing moyen et ne leur sont donc pas présentées. La plupart du temps, un utilisateur du site web peut toujours naviguer vers ces pages s'il sait où les trouver.

La commande Disallow peut être utilisée de différentes façons reprises dans l'exemple ci-dessus.

Bloquer un fichier (en d'autres termes, une page web particulière)

Par exemple, si Cloudflare souhaitait empêcher les bots d'explorer notre article « Qu'est-ce qu'un bot ? », une telle commande serait écrite comme suit :

Interdire : /learning/bots/what-is-a-bot/

Après la commande « Disallow », la partie de l'URL de la page web qui vient après la page d'accueil, dans ce cas, « www.cloudflare.com », est incluse. Avec cette commande en place, les bons bots n'accéderont pas à https://www.cloudflare.com/learning/bots/what-is-a-bot/, et la page ne s'affichera pas dans les résultats des moteurs de recherche.

Bloquer un répertoire

Parfois, il est plus efficace de bloquer plusieurs pages à la fois, au lieu de les répertorier toutes individuellement. Si elles se trouvent toutes dans la même section du site web, un fichier robots.txt peut simplement bloquer le répertoire qui les contient.

Voici un exemple provenant du chemin indiqué ci-dessus :

Disallow : /__mesa/

Cette commande signifie que toutes les pages contenues dans le __répertoire mesa ne doivent pas être explorées.

Autoriser un accès complet

Une telle commande se présenterait comme suit :

Disallow :

Cette commande indique aux bots qu'ils peuvent parcourir l'intégralité du site web, parce qu'il n'existe aucune interdiction.

Masquer l'ensemble du site web des bots

Disallow: /

Le « / » représente ici la « racine » dans la hiérarchie d'un site web, ou la page à partir de laquelle toutes les autres pages se ramifient, il inclut donc la page d'accueil et toutes les pages qui lui sont reliées. Avec cette commande, les bots des moteurs de recherche ne peuvent pas du tout explorer le site web.

En d'autres termes, une seule barre oblique peut éliminer un site web complet de l'Internet consultable !

 Quelles autres commandes font partie du protocole d'exclusion des robots ?

Allow : la commande « Allow » (Autoriser), comme on peut s'y attendre, indique aux bots qu'ils sont autorisés à accéder à une certaine page web ou à un certain répertoire. Cette commande permet d'autoriser les bots à atteindre une page web particulière, tout en interdisant le reste des pages web du fichier. Tous les moteurs de recherche ne reconnaissent pas cette commande.

Crawl delay : la commande Crawl delay est destinée à économiser la bande passante du serveur pour éviter que les spiders des moteurs de recherche ne causent des problèmes de chargement de serveurs. Elle permet aux administrateurs de préciser le temps entre chaque requête en millisecondes. Voici un exemple de commande Crawl delay correspondant à un temps d'attente de 8 ms :

Retard d'indexation : 8

Google ne reconnaît pas cette commande, contrairement à d'autres moteurs de recherche. Pour Google, les administrateurs peuvent modifier la fréquence d'exploration de leur site web dans Google Search Console.

Qu'est-ce que le protocole Sitemaps ? Pourquoi est-il inclus dans robots.txt ?

Le protocole Sitemaps aide les bots à savoir quelles pages inclure dans l'indexation d'un site web.

Un sitemap du site est un fichier XML qui ressemble à ceci :

Exemple de plan du site

Il s'agit d'une liste lisible par une machine de toutes les pages d'un site web. À travers le protocole Sitemaps, des liens vers ces sitemaps peuvent être inclus dans le fichier robots.txt. Le format est le suivant : « Sitemaps : » suivi de l'adresse web du fichier XML. Vous pouvez voir plusieurs exemples dans le fichier Cloudflare robots.txt ci-dessus.

Bien que le protocole Sitemaps permette de garantir que rien ne puisse échapper aux spiders web lorsqu'ils visitent un site web, les bots continueront à suivre leur processus de crawling typique. Le Sitemaps n'oblige pas les robots d'indexation à hiérarchiser les pages web différemment.

Comment le fichier robots.txt est-il lié à la gestion des bots ?

La gestion des bots est essentielle pour maintenir un site Web ou une application opérationnel, car même une bonne activité de bot peut surcharger un serveur d'origine, ralentir ou supprimer une propriété web. Un fichier robots.txt bien construit maintient un site Web optimisé pour le SEO et maintient l'activité des bons bots sous contrôle.

Cependant, un fichier robots.txt n'est pas d'une grande utilité pour gérer le trafic de robots malveillants. Une solution de gestion des robots telle que Cloudflare Bot Management ou Super Bot Fight Mode peut contribuer à limiter l'activité des robots malveillants sans nuire aux robots essentiels tels que les robots d'indexation du Web.

Œufs de Pâques dans le fichier Robots.txt

Parfois, un fichier robots.txt contient des « œufs de Pâques », c'est-à dire des messages humoristiques que les développeurs ont inclus, car ils savent que ces fichiers sont rarement lus par les utilisateurs. Par exemple, le fichier robots.txt de YouTube comporte un texte anglais que l'on peut traduire ainsi : « Créé dans un avenir lointain (l'an 2000) après le soulèvement robotique du milieu des années 90 qui a anéanti tous les humains ». Le fichier robots.txt de Cloudflare demande « Dear robot, be nice », c'est-à-dire « Cher bot, sois gentil».


#    .__________________________.
#    | .___________________. |==|
#    | | ................. | |  |
#    | | ::[ Dear robot ]: | |  |
#    | | ::::[ be nice ]:: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | |  |
#    | | ::::::::::::::::: | | ,|
#    | !___________________! |(c|
#    !_______________________!__!
#   /                            \
#  /  [][][][][][][][][][][][][]  \
# /  [][][][][][][][][][][][][][]  \
#(  [][][][][____________][][][][]  )
# \ ------------------------------ /
#  \______________________________/

Google a aussi un fichier « humans.txt » sur : https://www.google.com/humans.txt