Le fichier robots.txt, comment bien l'optimiser pour son référencement ?

Mathilde
Rédigé par Geoffroy Barre
Rédacteur web
Mathilde

Revu par Mathilde Grattepanche
Responsable éditoriale chez Abondance

Le 19 juin 2024

Icône fichier robots.txt

Souvent négligé, le fichier robots.txt a pourtant un rôle important pour une bonne exploration de vos pages par les crawlers des moteurs de recherche. Ce fichier texte, placé à la racine de votre site, permet de donner des instructions aux robots d'exploration (user-agents) concernant les zones accessibles ou non. Une utilisation judicieuse et une mise à jour régulière du fichier robots.txt, selon vos besoins, doit faire partie de votre stratégie SEO. On vous dit tout pour être au top avec les robots !

Les bonnes pratiques pour optimiser le robots.txt

Commençons ce guide à propos du fichier robots.txt en balayant les bonnes pratiques connues pour optimiser tant sa rédaction que son utilisation.

Tout d’abord, évoquons l’emplacement de ce fichier et sa syntaxe.

Le fichier robots.txt doit impérativement être placé à la racine de votre site web (https://www.monsite.com/robots.txt). Cette position permet aux robots d'y accéder facilement dès leur arrivée sur le domaine. Vous devez avoir un robots.txt différent par pour chaque sous-domaine.

La syntaxe du fichier robots.txt repose sur deux directives principales : User-agent et Disallow.

  • L'étoile (*) après User-agent fait référence à tous les robots. Vous pouvez également spécifier des robots particuliers comme Googlebot.
  • Disallow: /repertoire-interdit/ interdit l'accès au répertoire spécifié pour tous les robots.

Avec ces deux requêtes, vous pouvez donner des règles que les robots vont interpréter pour savoir s'ils peuvent accéder ou non à un fichier / dossier de votre site web. Plus vos règles sont précises, mieux les robots comprendront vos instructions.

User-agent: *

Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Ici, on bloque l'accès à l'administration WordPress (/wp-admin/) tout en autorisant une URL spécifique (/wp-admin/admin-ajax.php) essentielle au bon fonctionnement du site (permet à Google de voir comment le site est réalisé, avec le CSS, les JS et autres éléments en Ajax).

Pour une meilleure lisibilité, structurez votre fichier robots.txt avec des sauts de ligne et des commentaires (#).

# Règles générales

User-agent: *
Disallow: /cdn-cgi/
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

# Règles spécifiques pour Googlebot

User-agent: Googlebot
Disallow: /panier/
Disallow: /compte/

Comme vous le voyez avec l’exemple ci-dessus, le fichier robots.txt vous laisse beaucoup de liberté à propos des dossiers que vous souhaitez autoriser ou bloquer. Vous pouvez vous adresser aux différents agents (robots) mais cette flexibilité ne doit pas vous emmener dans une dérive. N'interdisez que les répertoires inutiles au référencement pour ne pas compliquer l'exploration des robots ! Pas la peine de faire un robots.txt d’une centaine de lignes !

Pour une bonne interprétation du site sur mobile, il est recommandé d'autoriser l'accès aux fichiers CSS, JavaScript et aux images. En effet, ces ressources sont essentielles pour le rendu et l'expérience utilisateur sur les appareils mobiles. Bloquer leur accès aux crawlers empêcherait une indexation correcte du contenu tel qu'il apparaît sur mobile. Des instructions Allow spécifiques comme "Allow: /*.css$" ou "Allow: /assets/images/" dans le robots.txt permettent d'autoriser explicitement l'exploration des feuilles de style, scripts JS et images. Cette pratique optimise le crawl et l'indexation mobile en donnant l'accès complet aux ressources nécessaires au bon rendu across devices.

Enfin, pensez à vérifier régulièrement les éventuelles modifications apportées au fichier. Celui-ci peut en effet être modifié par un plugin que vous utilisez, ou même être écrasé par une nouvelle version lorsque vous effectuez des modifications sur votre site (selon le CMS retenu). Le robots.txt écrasé par la version en préproduction (avec des directives disallow/ inappropriées), ça peut arriver.

Astuce :  ajoutez un lien vers votre sitemap.xml pour faciliter la découverte de vos URL. Ce n’est pas obligatoire, mais c’est une fois encore une bonne pratique et cela permet à d’autres moteurs de recherche de trouver votre sitemap. Rien ne vous empêche en parallèle de déclarer l’emplacement de ce fichier via la Google Search Console (GSC). Il vous suffit d’ajouter les lignes suivantes, en fonction du bot ciblé et de l’adresse de votre sitemap (vous pouvez en ajouter plusieurs).

Sitemap: https://www.mon-domaine.com/sitemap.xml

Cas d'utilisation

Le robots.txt donne des instructions pour explorer ou non. Mais, concrètement, comment utiliser cette possibilité ? Que faut-il bloquer ? Que faut-il laisser accessible ?

Restreindre l’accès à l’administration

Pour des raisons de sécurité, il est conseillé de bloquer les zones d'administration de votre site (WordPress, Prestashop...) des robots d'exploration.
User-agent: *  

Disallow: /wp-admin/

Vous pouvez aller plus loin, et demander à ne pas explorer d’autres répertoires : 
User-agent: *

Disallow: /cgi-bin

Disallow: /wp-login.php

Disallow: /wp-admin

Disallow: /wp-includes

Disallow: /wp-content/plugins

Disallow: /wp-content/cache

Disallow: /wp-content/themes

Disallow: /trackback

Disallow: /feed

Disallow: */comments

Disallow: /?

Disallow: /.php$

Disallow: /.js$

Disallow: /.inc$

Disallow: /.css$

Disallow: /.gz$

Disallow: /.swf$

Disallow: /.wmv$

Disallow: /.cgi$

Disallow: /.xhtml$

Gérer les pages de recherche interne

La plupart des sites disposent d'une fonctionnalité de recherche interne qui va créer des pages de recherche générées dynamiquement. Elles peuvent poser des problèmes aux moteurs de recherche en termes d'exploration et donc d’indexation :

  • Les résultats de recherche affichent souvent des pages / produits déjà présents sur d'autres pages, ce qui crée une duplication de contenu.
  • Les URL incluent des paramètres de requête (query strings) qui créent une infinité d'URL différentes
  • Pour les moteurs, ces pages ont une faible valeur ajoutée contrairement aux pages statiques riches en contenu. Jamais bon pour le SEO.

C'est pourquoi il est recommandé d'exclure ces pages dans le fichier robots.txt pour éviter que les robots n'essaient de les explorer puis de les indexer.

User-agent: *

# Bloquer les pages de recherche avec paramètres query strings

Disallow: */*?s=

Disallow: */*&s=

Dans cet exemple, la directive Disallow: */?s= bloque toutes les URL contenant le paramètre ?s= qui correspond généralement au paramètre de la recherche sur un site WordPress. De même pour Disallow: */*&s= qui cible le même paramètre mais avec l'encodage &.

Vous pouvez adapter cette règle en fonction de la syntaxe des URL de recherche de votre site. Par exemple pour WordPress :

User-agent: *

Disallow: /search/

Disallow: /blog/search/

Il peut également être intéressant d'utiliser une balise noindex dans le code HTML de ces pages pour renforcer le signal aux moteurs de ne pas les indexer.

Le fichier robot.txt n'empêche pas l'indexation mais bien l’exploration des URL selon vos directives. Les directives de votre fichier robots.txt permettent également de réduire considérablement les risques de duplication et d'avoir un meilleur contrôle sur le crawl budget de votre site.

Limiter la charge serveur

Certaines sections d'un site web, en raison de leur nature dynamique ou de la quantité de contenu qu'elles génèrent, peuvent représenter une charge importante sur les ressources serveur. Cette charge peut ralentir les temps de réponse et dégrader l'expérience utilisateur.

Par exemple, pour un forum ou une section de FAQ avec des milliers de pages générées dynamiquement, on peut demander aux robots de ne pas indexer :

User-agent: *

Disallow: /faq/

Disallow: /forums/

En interdisant l'exploration de ces répertoires /faq/ et /forums/, vous allégerez considérablement la charge sur vos serveurs lors du crawl par les robots.

De même, pour un site e-commerce avec une arborescence de catégories et de filtres très profonde, vous pouvez restreindre l'accès aux niveaux trop profonds :

User-agent: *

Disallow: /*?categorie=*&filtre=*&page=*

Cette règle bloquera l'exploration des URL avec plus de 3 paramètres (catégorie, filtre et numéro de page), censées générer beaucoup trop d'URL différentes. Le fichier robots.txt peut être utilisé pour bloquer temporairement ou de façon permanente l'accès à ces sections gourmandes en ressources pour les robots des moteurs de recherche.

Est-ce que le fait de bloquer certaines sections de votre site les empêchera également d'être indexées par les moteurs ? Non, pas forcément. Vous devez également ajouter une directive noindex sur les pages concernées pour indiquer à Google de ne pas indexer ces pages (soit via une meta robot soit via un x-robot-tag noindex). 

Attention, si ces pages sont bloquées, Google ne sera pas en capacité de voir votre directive noindex. Regardez du côté de votre Search Console, dans l’onglet “Indexée malgré blocage dans robots.txt” : si vous avez des pages dans ce cas de figure, vous pouvez soit débloquer temporairement ces pages pour que Google puisse voir votre directive noindex et donc, désindexe votre page ; soit supprimer directement ces pages. 

Assurez-vous que le gain en performance vaut le sacrifice en référencement naturel. Pour ne pas nuire à votre SEO, vous pouvez également explorer d'autres pistes comme la mise en cache côté serveur, l'utilisation d'un CDN, l'optimisation de la base de données, etc.

Limites à connaître

Le fichier robots.txt est, comme nous venons de le voir, très utile pour le référencement et pour la discussion avec les robots des moteurs de recherche. Mais attention, il n’est pas infaillible.

Des directives « non obligatoires »

Bien que le fichier robots.txt soit un standard largement adopté, il n'en reste pas moins qu'il s'agit uniquement de directives recommandées aux robots d'exploration. Rien n'oblige légalement les moteurs de recherche à respecter ces règles à la lettre. C'est une forme de "contrat moral" que se doivent de suivre les crawlers.

Dans la pratique, la plupart des moteurs respectent généralement les instructions des fichiers robots.txt car aller à l'encontre pourrait nuire à leur propre qualité d'indexation. Mais rien n'empêche par exemple un moteur de décider d'ignorer certaines directives jugées obsolètes ou de crawler des URL bloquées s'il estime qu'elles ont un intérêt particulier.

Interprétations variables selon les moteurs

Chaque moteur de recherche a développé sa propre manière d'interpréter la syntaxe du robots.txt, notamment en ce qui concerne les normes les plus anciennes. Par exemple, Google peut considérer certaines directives comme obsolètes alors que d'autres moteurs continueront à les prendre en compte.

Il est donc important de bien se renseigner sur les conventions de chaque moteur pour écrire des règles compatibles. Vous pouvez utiliser le “robots.txt Validator and Testing Tool” gratuit, développé par Technical SEO.

Risque d'indexation par liens externes

Même si vous avez correctement bloqué certains répertoires ou pages dans votre fichier robots.txt, il existe un risque qu'ils soient quand même découverts et indexés par les moteurs s'ils disposent de liens entrants provenant d'autres sites.

En effet, les crawlers suivent également les liens qu'ils trouvent en explorant le web, y compris ceux qui pointent vers des URL en principe interdites dans votre fichier robots.txt. Une fois l'URL découverte, elle pourra alors être indexée. Exemple début 2024, des conversations privées de chat ont été visibles via Google Gemini, suite à un lien public permettant leur indexation. 

Attention à la mise en cache pouvant retarder la prise en compte

Lorsque vous modifiez votre fichier robots.txt, les changements ne seront pas forcément pris en compte immédiatement par les moteurs de recherche en raison des mécanismes de mise en cache.

Selon Google, le fichier robots.txt est généralement mis en cache pour une durée maximale de 24 heures. Cela signifie que les modifications que vous apporterez ne seront effectives qu'au prochain crawl, qui pourra avoir lieu jusqu'à 24 heures plus tard.

Pour toutes ces raisons que nous venons d’évoquer, il est conseillé de tester votre robots.txt et d’en suivre les changements dans un environnement de test avant de passer en production. Vérifiez régulièrement que les nouvelles directives sont bien prises en compte par les moteurs. Dans la GSC par exemple, des pages que vous avez involontairement bloquées peuvent vous être remontées dans les erreurs.

Les outils pour un fichier robots.txt optimisé

Pour faciliter la gestion et l'optimisation de votre fichier robots.txt, de nombreux outils sont disponibles, qu'il s'agisse de plugins pour les CMS populaires ou d'outils en ligne spécialisés.

Plugins et outils robots.txt selon le CMS

WordPress

De nombreux plugins SEO pour WordPress intègrent des fonctionnalités pour générer et éditer facilement le robots.txt, comme :

Yoast SEO : L'un des plugins SEO les plus populaires, il permet de configurer les règles du robots.txt directement depuis l'interface.

Rank Math : Concurrent de Yoast, Rank Math propose également un éditeur de robots.txt avec des réglages avancés.

All in One SEO : Intègre un module dédié pour le robots.txt avec des modèles prédéfinis.

SEOKEY : Ce plugin français permet également de générer un fichier robots.txt optimisé pour le SEO.

Shopify

Shopify génère un fichier robots.txt par défaut qui convient à la plupart des boutiques. Cependant, vous pouvez ajouter le modèle robots.txt.liquid pour le personnaliser.

Prestashop

Pour les utilisateurs de PrestaShop, un fichier robots.txt est créé automatiquement pendant l'installation. Il est configuré pour les besoins d'un site e-commerce classique. Si vous utilisez un accès FTP, vous trouverez le fichier robots à la racine de votre site. Il existe peu de modules dédiés.

Magento

Magento 2 possède son propre fichier robots.txt par défaut. Vous pouvez le modifier et ajouter vos propres règles dans Paramètres > Configurations > Conception.

Outils en ligne et extensions de navigateur

De nombreux sites web proposent des outils gratuits en ligne pour tester, valider et générer des fichiers robots.txt optimisés, comme :

  • Google Search Console : L'outil de test de robots.txt de Google - longtemps resté comme une référence pour s'assurer de la compatibilité - n'existe plus. Mais Google a lancé un rapport dédié aux fichiers robots.txt, permettant aux webmasters de mieux comprendre et gérer l'indexation de leurs sites
  • Robots.txt validator and testing tool : un très bon outil pour vérifier si des URL sont bloquées et pour quel user-agent, ainsi que si des ressources de la page ne sont pas explorables.
  • Robots.txt Checker (Webconfs) : Outil simple pour analyser rapidement n'importe quel robots.txt.
  • Le générateur de robots.txt avec des modèles prédéfinis SEOptimer.

Certaines extensions de navigateur facilitent aussi l'accès et l'analyse des fichiers robots.txt :

Vous pouvez également utiliser ChatGPT pour vérifier votre fichier ou générer des règles à partir d’URL.

Élément souvent sous-estimé du référencement naturel, le fichier robots.txt joue pourtant un rôle primordial dans l'exploration de votre site web par les crawlers. En suivant les bonnes pratiques pour son optimisation, en le maintenant à jour et en utilisant les bons outils, vous faciliterez grandement le travail des robots d'exploration. Un fichier robots.txt bien conçu et cohérent avec votre stratégie SEO globale vous aidera à mieux maîtriser la découverte de vos contenus par les moteurs de recherche…

 

L'avis de Daniel Roch, fondateur de Seomix et SEOKEY

Le principe

Il existe cependant une autre méthodologie que celle donnée précédemment : laisser le robots.txt sans aucune instruction, comme ici :

User-agent: *

L'idée est de permettre aux moteurs de recherche de parcourir tout lien ou ressource qu'ils pourraient trouver. Cela assure dans 100% des cas une parfaite visualisation de votre site par Google, Bing et les autres moteurs, et cela facilite grandement la transmission de popularité à travers votre maillage interne. D’ailleurs, c’est exactement ce que font depuis des années les extensions SEO pour WordPress, comme Yoast ou SEOKEY.

Mais quels sont les avantages et inconvénients de cette méthode et de celle précédente. Dans quel cas choisir l’une ou l’autre ? 

Atouts et faiblesses du blocage de certaines URL

La perte de popularité

Tout d’abord, la méthode précédente a un défaut majeur : en bloquant une URL, Google n'ira pas la parcourir, mais elle va vous faire perdre de la popularité (le fameux « PageRank »).

Par exemple, avec un lien vers "Mon Compte", j'envoie de la popularité vers cette URL. Mais si je la bloque avec le fichier robots, cette popularité est quand même transmise à une page qui sera bloquée, et qui ne pourra plus transmettre sa propre popularité vers le reste de votre site. Imaginons la page 0 comme l’accueil de votre site, et la page 1 comme votre compte. Si je ne la bloque pas, voici la répartition de popularité de base (0.5 pour chaque) :

Si je la bloque, elle ne renverra plus de popularité vers l’accueil de mon site, qui aura donc moins de « puissance ». Je perds donc du PageRank Interne.

En d'autres termes, on perd de la puissance pour les moteurs de recherche chaque fois que l’on bloque une URL HTML.

Un mauvais rendu de page

Second défaut, on risque de bloquer à tort certaines ressources, comme les polices d’écriture, les appel AJAX, les fichiers JavaScript, le CSS, etc. Tout cela peut donc potentiellement empêcher les moteurs de visualiser le rendu réel de vos contenus. 

Mais une maîtrise de l’indexation

L’intérêt par contre est évident : on garde une maîtrise totale sur les URL qui peuvent être crawlées, et donc indexées par les moteurs de recherche (à condition de bloquer chaque URL avant qu’elle ne soit crawlée par les moteurs). En laissant le fichier vierge, à la moindre erreur technique, Google risque d’indexer des éléments indésirables (surtout si vous n’avez pas de balises « Canonical »).

Quelle est la meilleure solution ?

Au sein de l’agence SeoMix, notre préconisation est généralement de laisser faire les robots, et donc de ne bloquer aucune URL.

Il y a une raison à cela très simple : si on bloque une URL mais qu’elle est présente ou accessible dans notre site dans le code source, cela ne résout pas la problématique réelle (Voyez cela comme un pansement sur une hémorragie). La vraie solution est plutôt de supprimer dans le code source l’URL que l’on ne veut pas indexer.

En réalité, la clé lorsque l’on souhaite maîtriser son indexation et le crawl des différents moteurs, c’est surtout de vérifier régulièrement toutes les URL ajoutées ou affichées sur son site, et ensuite de supprimer celles non pertinentes.