Robots.txt, un simple fichier texte pourtant essentiel en SEO

Le fichier robots.txt est un des éléments quasi-essentiels d’un site internet. Ce fichier fait partie des premières vérifications que je réalise lors d’un audit SEO. Je dis « quasi », car dans certains cas, vous pouvez tout à fait avoir un site sans fichier robots.txt sans vous inquiéter pour votre référencement naturel. Cela étant, on va voir dans cet article que ce n’est pas toujours optimal.

D’où vient le fichier robots.txt ?

Le premier fichier robots.txt a été créé en 1994. À l’échelle d’internet, c’était donc il y a bien longtemps. Son inventeur est Martijn Koster qui n’est autre que l’inventeur d’Aliweb, considéré comme le premier moteur de recherche sur internet.

Ce fichier n’a pas beaucoup évolué depuis sa création et vous pouvez même toujours consulter le protocole rédigé par son créateur.

En 2019, pour les 25 ans du fichier robots.txt, Google a décidé de formaliser davantage la norme de ce fichier afin qu’il devienne un standard sur internet et ainsi simplifier son utilisation et sa création. Par exemple, la directive noindex parfois utilisée (à tort) dans le fichier robots.txt n’est plus respectée par les robots de Google depuis cette date.

C‘est quoi le fichier robots.txt ? À quoi sert-il ?

Le robots.txt est donc un simple fichier au format « .txt » que vous pourriez créer en utilisant uniquement le bloc-notes de votre ordinateur.

Cela étant il est régi par de nombreuses règles que je vais détailler au fil de cet article.

Le fichier robots.txt est essentiel si vous souhaitez maîtriser les ressources auxquelles les robots crawlers des moteurs de recherche peuvent avoir accès.

C’est un aspect qui peut s’avérer extrêmement important dans le cas où votre site serait particulièrement volumineux (grand nombre de pages et ressources). Mais aussi dans le cas où votre serveur aurait des performances limitées.

Ce fichier peut aussi servir à limiter le risque d’exploration de ce qu’on appelle des « spider traps » ou piège à robot. Si par exemple vous avez un calendrier sur votre site et qu’il est possible de naviguer de mois en mois, cela signifie que potentiellement, le robot peut essayer d’accéder à chaque mois et ceci indéfiniment.

En empêchant les robots d’explorer des ressources dont ils n’ont pas besoin, vous limitez ainsi une surcharge inutile du serveur, vous indiquez aux robots uniquement les ressources utiles à explorer et vous laissez vos utilisateurs accéder à votre site sans ralentissement.

Les robots respectent-ils le fichier robots.txt ?

En théorie, vous pouvez « empêcher » Google, Bing, Qwant et compagnie d’explorer certaines pages ou ressources.

Si je dis « en théorie », c’est parce que le robot peut tout à fait ignorer le fichier robots.txt s’il a été conçu ainsi et vous ne pouvez rien y faire. En tout cas, pas avec le fichier robots.txt. Oui, car il faut bien avoir à l’esprit que les moteurs de recherche ne sont pas les seuls à utiliser des robots.

Ils peuvent avoir été conçus par des outils SEO ou dans un but moins bien intentionnés (voir plus bas, la liste des user-agent).

Le fichier robots.txt est-il obligatoire ?

Comme je le disais en introduction de cet article, non, le fichier robots.txt n’est absolument pas obligatoire. Dans le cas où vous n’avez pas ce fichier, les robots considéreront que c’est open-bar et ils iront crawler l’intégralité des ressources « crawlables » sur votre site.

A vous de voir donc si ça peut être un problème.

Où doit se trouver le fichier robots.txt ?

Le fichier robots.txt doit se trouve à la racine du site concerné. Attention, si vous utilisez des sous-domaines, chaque sous-domaine doit avoir son propre fichier robots.txt.

Il n’est pas possible de donner de directives entre différents domaines ou sous-domaines via robots.txt (et heureusement).

Comment créer ou modifier le fichier robots.txt ?

Comme indiqué plus haut, un simple éditeur de texte type « bloc-notes » permet de créer ou modifier le fichier robots.txt. Il faut tout de même impérativement que le fichier soit encodé en UTF-8 (c’est la norme sur plus de 95% des sites sur le web). En général, c’est aussi l’encodage par défaut de la plupart des éditeurs type bloc-notes.

La syntaxe technique du fichier robots.txt

Le fichier robots.txt est extrêmement simple et se limite à quelques commandes que voici :

User-agent: C‘est ici qu’il faut spécifier le robot crawler visé. Vous ne pouvez pas spécifier plusieurs robots par commande, il faudra réécrire la commande pour chaque bot visé.

Disallow: La commande disallow doit être associée à un ou plusieurs user-agent et permet d’indiquer quels dossiers ou ressources ne doivent pas être explorés.

Allow: La commande allow doit aussi être associée à un ou plusieurs user-agent et n’aurait pas de sens si elle n’était pas également associée à une commande « Disallow: ». Elle permet de préciser que, malgré la commande disallow, tel répertoire ou ressource peut être exploré.

Sitemap: La commande sitemap permet d’indiquer où se trouve le ou les fichiers sitemap (répéter la commande pour chaque sitemap ou utiliser un index de sitemaps). Je parle plus en détail du sitemap dans le robots.txt plus bas dans cet article.

Crawl-delay: La commande crawl-delay permet de préciser le nombre de secondes à attendre entre chaque sollicitation de ressource. Cette commande n’est pas prise en considération par Google, mais d’autres robots en tiennent compte.

Pour Google, vous pouvez demander à limiter la fréquence d’exploration de votre site via cet outil.

Bien entendu, ce n’est conseillé que si vous pensez que ça impacte considérablement les ressources de votre serveur.

L’agent utilisateur ou user-agent

Pour commencer, il faut savoir que l’user-agent, est une chaîne de caractères qui permet d’identifier le type de l’entité qui accède à une ressource. Par exemple, lorsque vous naviguez sur le web, votre navigateur envoie cette information systématiquement. Le site sur lequel vous allez peut savoir quel navigateur vous utilisez.

Cependant, quand on parle de user-agent dans le cas du fichier robots.txt, on parle en fait du produit aussi appelé token ou jeton. Le token est la partie spécifique au robot concerné.

Le user agent complet du robot « classique » de Google, à l’instant où j’écris cet article, est celui-ci : Googlebot/2.1; +http://www.google.com/bot.html) Chrome/86.0.4240.96 Safari/537.36, mais c’est seulement la partie en gras qui nous intéresse. Dans le fichier robots.txt, vous identifierez donc chaque robot par son user-agent comme ceci : User-agent: Googlebot dans le cas du robot de Google.

Chaque crawler doit également avoir un user agent. Dans les cas des crawlers « officiels », sous-entendu, ceux qui ne sont pas mal intentionnés, vous pouvez facilement les identifier.

Dans la pratique, il y a des robots malveillants, qui peuvent simplement récupérer vos données ou surcharger vos serveurs, mais il est fort probable que leur user-agent change régulièrement ou imite celui d’un bot légitime comme Googlebot. Dans ce cas, difficile de s’en prémunir sans faire de reverse DNS. Plus d’informations sur la méthode pour vérifier qu’un Googlebot est bien un robot en provenance de Google.

Commentaires

Pour mettre un commentaire dans un fichier robots.txt, il suffit de mettre le symbole # en début de ligne. Cette ligne sera alors ignorée par les robots. Vous pouvez donc ajouter des commentaires utiles pour vous rappeler des modifications effectuées dans ce fichier. Si vous avez du temps à tuer, vous pouvez aussi laisser parler votre créativité comme dans l’exemple ci-dessous :

Logo Nike Dans Fichier Robots.txt
On s’éclate chez Nike

Wildcard * et symbole dollar $

Les wildcards (ou joker) permettent de remplacer n’importe quel caractère et sont représentés par le symbole astérisque *. Ce symbole va s’avérer très pratique dans le cas où vous souhaiteriez cibler un grand nombre de ressources ou pour cibler tous les robots par exemple.

Ainsi, pour s’adresser à tous les user-agent, il faudra écrire la commande suivante : User-agent: *

Vraiment tous ? Non ! Attention, les robots de type « Adsbot » de Google ne respectent pas le wildcard « * » dans la commande user-agent. Il faut explicitement les nommer.

Pour empêcher l’exploration de tous les fichiers pdf, il faudra écrire la commande suivante :

Disallow: /*.pdf$

Cette commande me permet également d’introduire l’utilisation du symbole dollar $. Comme vous pouvez le voir sur la règle ci-dessus, j’ai ajouté un symbole $ à la fin de l’URL. Ce symbole marque la fin de l’URL.

Dans le cas ci-dessus avec les fichiers pdf, cela signifie que si l’URL se finit par .pdf, la ressource ne sera pas explorée. En revanche, si un paramètre y est ajouté, mettons .pdf?test, la ressource pourra être explorée.

Sitemap

Le fichier robots.txt permet également d’indiquer aux robots où se situe votre fichier sitemap. Bien que les moteurs principaux permettent d’indiquer l’URL du sitemap directement dans une interface type « search console », ça reste utile pour les autres robots.

Pour indiquer le chemin vers le fichier sitemap dans le fichier robots.txt, il suffit d’utiliser la commande suivante :

Sitemap: https://www.votresite.com/sitemap.xml

Bien entendu, le chemin de votre fichier peut être différent et le fichier peut ne pas être au format .xml, à vous d’adapter cet exemple à votre cas. A noter que l’URL du sitemap doit être absolue.

Par exemple : https://hello-papaye.com/sitemap.xml plutôt que //hello-papaye.com/sitemap.xml ou encore /sitemap.xml

Liste des user-agent des robots

Vous pouvez trouver des listes de user-agent sur différents sites, voici la plus complète que j’ai pu trouver.

https://user-agents.net/bots

Si vous en avez une plus complète, je vous invite pas à me l’indiquer en commentaire.

Documentations des différents robots crawlers légitimes

Pour vous assurer qu’un bot est légitime ou en savoir plus sur son fonctionnement, la société ayant conçu le crawler met souvent à disposition une documentation à propos de son robot. En voici quelques-unes :

Comment optimiser son fichier robots.txt ?

Il n’y a pas vraiment de recette miracle. Le fichier robots.txt est un fichier très simple en soi et la seule manière de l’optimiser et de réduire les directives au strict minimum.

Ainsi, si vous devez cibler un grand nombre de ressources, il faut essayer d’identifier un pattern commun pour créer une directive qui va cibler toutes ces ressources plutôt que les cibler une par une.

Si certaines ressources à bloquer se trouvent dans un même dossier et qu’il n’y a rien d’autre dans ce dossier, dans ce cas, il vaut mieux empêcher l’exploration de ce dossier plutôt que les ressources. En faisant cela, aucune ressource de ce dossier ne sera explorée.

Bien sûr, il faut faire attention à ne pas écrire de directives trop larges qui pourraient empêcher l’exploration de ressources essentielles.

Si vous souhaitez viser certains user-agent particuliers et leur appliquer les mêmes règles, vous pouvez les regrouper comme dans cet exemple qui empêche les robots de Baidu et Yandex d’explorer votre site :

User-agent: BaiduSpider
User-agent: YandexBot
Disallow: /

Pour vous donner un autre exemple d’optimisation relativement simple, si vous avez plusieurs fichiers sitemap, il vaut mieux utiliser un index de sitemap. Ainsi vous conservez une seule ligne dans votre fichier robots.txt, mais les robots vont quand même pouvoir accéder à tous les sitemaps.

Évidemment, ces optimisations ne vont pas vous apporter de boost en termes de positionnement, mais plus votre fichier robots.txt sera « simple », plus il sera facile à maintenir et à modifier lorsque ce sera nécessaire. Vous limiterez aussi le risque d’erreurs.

Faut-il utiliser le fichier robots.txt pour empêcher l’indexation de pages ?

Réponse courte : non il ne faut pas utiliser le fichier robots.txt pour empêcher l’indexation d’URLs spécifiques.

Contrairement à ce qu’on peut lire sur de nombreux articles, le fichier robots.txt ne permet pas d’empêcher l’indexation d’une page dans les moteurs de recherche.

Si vous ne deviez retenir qu’une phrase de cet article, ce serait la suivante :

Le fichier robots.txt permet d’empêcher l’exploration, mais pas l’indexation !

Et encore, cette phrase n’est valable que si le robot respecte le fichier robots.txt, ce qui est normalement le cas des robots légitimes comme ceux de Google, Bing, Qwant, etc.

Certains articles font également mention d’une directive « noindex » dans le fichier robots.txt. Il faut savoir que cette directive, n’a jamais été une directive documentée par Google et bien qu’elle ait pu être respectée par le passé, elle n’est officiellement plus supportée par Google depuis le 1er septembre 2019. Pour information, Bing par exemple n’a jamais supporté cette directive.

Comment tester le fichier robots.txt ?

Avant de mettre votre fichier robots.txt en ligne et empêcher l’exploration de nombreuses ressources, il est toujours préférable de s’assurer que tout est 100% conforme à ce que vous attendez comme résultat.

Pour cela vous avez plusieurs solutions :

  1. Tester son fichier robots.txt directement avec le robot concerné

Google et Bing, pour ne citer que les plus gros moteurs de recherche, fournissent chacun leur outil de test du fichier robots.txt.

Dans ces outils vous pouvez donc tester si une URL est explorable via le fichier robots.txt actuellement présent sur votre site, mais vous pouvez aussi modifier le fichier robots.txt dans l’outil pour tester l’ajout de nouvelles directives avant de mettre à jour votre fichier sur le serveur.

Tester son fichier robots.txt avec Google
Tester son fichier robots.txt avec Bing

  1. Tester son fichier robots.txt avec un outil tiers

D’autres outils permettent de tester son fichier robots.txt en simulant le robot qui vous intéresse. C‘est une solution que je trouve bien plus pratique lorsque l’on a écrit des directives différentes en fonction des robots visés.

L’outil que j’utilise en général est celui-ci de TechnicalSEO.

Vous entrez l’URL à tester, vous choisissez le user-agent (le robot donc), vous sélectionnez « editor », vous copiez/collez votre fichier robots.txt qui n’est pas encore en ligne dans le bloc de texte juste en dessous et enfin vous cliquez sur « test ». Si vous le souhaitez, vous pouvez aussi demander à l’outil de vérifier si vos ressources JavaScript, CSS, images, etc. sont bloquées ou non.

Outils De Test Fichier Robots.txt
Ici, j’ai ajouté une directive pour empêcher Googlebot d’explorer un répertoire et j’ai testé une page de ce répertoire dans le champ « URL ». L’outil m’indique bien que la page est restreinte (en bas à droite) et m’indiquer clairement en rouge, la directive du fichier qui donne ce résultat.

Si votre robots.txt est déjà en ligne et que vous souhaitez vous assurer qu’une page n’est pas bloquée par le fichier robots.txt, vous pouvez aussi utiliser une extension de navigateur dont j’ai parlé dernièrement. Il s’agit de l’extension Robots Exclusion Checker qui va automatiquement vérifier que le fichier robots.txt n’empêche pas l’exploration de cette page.

Les erreurs courantes à éviter

Sensibilité à la casse

C‘est une erreur assez courante et qui peut assez vite arriver si on ne fait pas attention. La sensibilité à la casse signifie qu’une lettre en majuscule n’a pas la même valeur qu’une lettre en minuscule.

Il y a 2 entités sensibles à la casse :

  • Le nom du fichier robots.txt en lui-même. Il doit bien être écrit ainsi : « robots.txt » et non « Robots.txt » ou encore « robots.TXT »
  • Les chemins des ressources indiquées dans les directives du fichier. Par exemple « /dossier/ » n’est pas pareil que « /Dossier/ » ou « /DOSSIER/ »

En revanche, pour le nom du robot (le user-agent), aucun problème, vous pouvez écrire « Googlebot », GoogleBot » ou « googlebot », ça aura le même effet.

Fichier trop lourd

C‘est une restriction tout de même assez large, mais il faut savoir que le fichier robots.txt est limité en poids. La limite (pour Google) se trouve à 512Ko. Pour vous donner une idée, un fichier robots.txt de 3000 lignes de longueurs variables pèse 120Ko. Vous avez donc de la marge, mais bien entendu, il est logique d’avoir un fichier le plus léger possible.

Si vous visez Yandex (le moteur de recherche russe), assurez-vous que votre fichier soit très léger puisque la limite de poids chez Yandex est de seulement 32Ko. Ça devrait vous laisser tout de même de quoi y écrire quelques centaines de lignes, mais c’est toujours bon à savoir.

Fichier robots.txt en erreur

C‘est une erreur facile à éviter, mais qu’il faut absolument savoir. Le fichier robots.txt est une ressource comme une autre et va être obtenu en même temps qu’un code de réponse http. Voici les principales consignes vis-à-vis de ce code :

  • Votre fichier robots.txt doit être accessible immédiatement via un code http 2xx
  • Si le fichier est accessible au travers de redirections http 3xx, Google suit 5 redirections (ce qui est déjà énorme) et au-delà, considère que le fichier est en erreur 4xx
  • Si le fichier robots.txt est en erreur 4xx, le robot va considérer que le fichier n’existe pas et que le site peut donc être exploré dans son intégralité (hors en-tête x-robots-tag ou balise meta pour les robots).
  • Si le fichier robots.txt est en erreur 5xx (erreur serveur), le robot considère que le site ne doit pas être exploré. Si le robots.txt est en erreur serveur pendant plus de 30 jours, Google va utiliser la dernière version en cache du fichier robots.txt. S’il n’a jamais « vu » le fichier robots.txt et qu’il n’a donc pas de cache, Google va considérer qu’il peut explorer l’intégralité du site.

Bien écrire ses user-agent et directives

C’est probablement la partie la plus délicate du fichier robots.txt : bien cibler ses directives et s’assurer qu’elles ne se contredisent pas.

Premier point, les user-agents. Si vous indiquez un user-agent spécifique, le robot suivra uniquement les directives associées à cet user-agent.

Mettons que vous ayez les groupes de directives suivantes dans votre fichier :

User-agent: *
Disallow: /dossier-a-ne-pas-explorer/

User-agent: Googlebot
Disallow:

Dans ce cas, Googlebot va suivre uniquement le groupe qui lui est indiqué et va considérer que l’intégralité du site peut être explorée. Les autres robots que Googlebot (et qui respectent le fichier robots.txt) n’iront pas explorer le dossier indiqué.

Une autre règle de base à savoir est la suivante :

« La directive la plus spécifique, basée sur la longueur du chemin (path) de la ressource l’emporte sur la directive la plus courte. Si les directives se contredisent, alors la moins restrictive s’applique »

Google

Dit comme ça, c’est peut-être un peu flou alors voici un tableau récapitulatif issu de la documentation de Google pour les développeurs :

Tableau Recapitulatif Robots.txt Regles

Bloquer des URLs qui ne doivent pas être indexées

Bien qu’il peut être tentant, voire rassurant de bloquer l’exploration des URLs qui ne doivent pas être indexées, c’est une pratique à éviter absolument !

Lorsque vous souhaitez qu’une page ne soit pas indexée, vous devez utiliser la balise meta pour les robots ou une en-tête HTTP X-Robots-Tags avec comme directive « noindex ».

Si vous bloquez l’exploration de cette page via le fichier robots.txt, le robot ne pourra pas voir que cette page à pour directive « noindex » et cette page pourra alors malgré tout se retrouver dans l’index.

Exemples de fichiers robots.txt

Je sais que c’est très théorique et parfois un peu complexe, alors voici quelques exemples simples et clairs pour mieux comprendre le fonctionnement du fichier robots.txt :

  1. Autoriser l’exploration intégrale du site (revient aussi à ne pas avoir de fichier robots.txt) :
User-agent: *
Disallow:
  1. Empêcher l’exploration de tout le site :
User-agent: *
Disallow: /
  1. Bloquer l’exploration d’un répertoire :
User-agent: *
Disallow: /dossier-a-ne-pas-explorer/
  1. Bloquer l’exploration d’un fichier :
User-agent: *
Disallow: /fichier-a-ne-pas-explorer.html
  1. Bloquer l’exploration de tous les fichiers JavaScript (même ceux avec des paramètres) :
User-agent: *
Disallow: /*.js
  1. Bloquer l’exploration de tous les fichiers JavaScript (sauf ceux avec des paramètres) :
User-agent: *
Disallow: /*.js$

Si vous lisez ceci, bravo, vous êtes arrivés à la fin de cet article. J’espère que vous avez trouvé les informations que vous cherchiez. Si ce n’est pas le cas, merci de m’indiquer en commentaire ce que vous aimeriez savoir.

Pour (encore) plus d’informations sur le fichier robots.txt, vous pouvez consulter la documentation de Google pour les webmasters et ici la documentation de Google pour les développeurs.

Partagez cet article 👍
Facebook
Twitter
LinkedIn
A propos de l'auteur
Timothée Allemmoz - consultant SEO pour les SaaS

J’apporte mon expertise SEO aux startups qui se démènent pour proposer des outils et des solutions en ligne à leurs clients. Mon esprit d’analyse et mon expérience dans le SEO (certifié IX-SEO, QASEO et CESEO) permettent à mes clients d’atteindre leurs objectifs de croissance. Notre objectif commun : être présent sur Google tout au long du parcours d’achat de leurs prospects.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *