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 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.
Je suis également certifié IX-SEO, QASEO et CESEO.

Laisser un commentaire

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