Comment configurer un fichier robots.txt ? Définition et explications

S’il est un fichier qui est nécessairement observé lorsque vous faites réaliser un audit SEO, c’est bien le robots.txt. Dans cet article, voyons à quoi il sert et surtout quelques conseils pour bien le configurer dans une approche de référencement naturel. Commençons par une petite définition de cet outil très pratique pour exclure les parfois invasifs crawlers du Web.

  1. Définition
  2. Pré-requis avant Configuration
  3. Exemple de structure
  4. Explication de la syntaxe
  5. Les wildcards, c’est quoi ?
  6. Différents robots de Google
  7. Sitemap dans le robots.txt
  8. Alternative Http x-robots-tag
  9. Valeurs des x-robots tags
  10. Conclusion

Définition du fichier robots.txt

Le robots.txt est un protocole d’exclusion des robots. Ressource de format texte (.txt), c’est une convention du web qui prend l’aspect d’un fichier à placer le plus généralement à la racine du serveur d’un site Internet. On y place ainsi l’ensemble des ressources qui ne doivent pas être explorées par les moteurs de recherche mais également par les bots très nombreux du web. Par convention, les moteurs de recherche et plus généralement les bots lisent en premier le robots.txt avant de tenter d’accéder à une page Web quelconque d’un site.

Si sa fonction première est de permettre la non indexation de tout ou partie d’un site, il s’avère aussi très utile pour se protéger de l’extraction de contenus par certains concurrents, nous y revenons plus tard. C’est un fichier à paramétrer idéalement avant le lancement d’un site Web car, par défaut, toute page est susceptible d’être visitée et indexée dans la SERP des moteurs. De même, dans certains cas, on y place également le fichier sitemap.xml configuré pour les soumissions régulières.

Pré-requis pour la configuration

Pour que le fichier soit efficace, il faut le placer à la racine de votre serveur. Inutile de le placer dans un sous répertoire par exemple. S’il se trouve ailleurs, il ne sera pas pris en compte par les moteurs de recherche. Il doit être léger (en théorie la taille du fichier n’a pas de limite mais Google a déclaré qu’il ne doit pas faire plus de 500 kilobytes). On se limitera donc à quelques lignes, à l’instar également d’un fichier .htaccess, lui-même premier élément d’accessibilité d’un site. Il ne peut exister qu’un seul fichier robots.txt placé sur le serveur, toujours en minuscules pour respecter la convention et au pluriel (pas robot.txt mais robots.txt).

Exemple de structure du robots txt

Vous pourrez facilement trouver l’aspect du fichier concerné sur chaque site que vous visitez. Il suffit pour cela de taper le nom de domaine + /robots.txt. Par exemple :

[pastacode lang=”markup” manual=”https%3A%2F%2Ffacemweb.com%2Frobots.txt” message=”Chemin menant au robots.txt du site de l’agence” highlight=”” provider=”manual”/]

Attention, l’exemple ci-dessus ne sera pas valable pour un sous-domaine, il vous faudra en créer un autre.

La structure d’un fichier est la suivante (ici un exemple classique pour WordPress) :

[pastacode lang=”markup” manual=”User-agent%3A%20*%0ADisallow%3A%20%2Fwp-admin%2F%0AAllow%3A%20%2Fwp-admin%2Fadmin-ajax.php” message=”Exemple de structure de robots.txt” highlight=”” provider=”manual”/]

En reprenant l’exemple précédent, nous souhaitons ici limiter l’accès à tous les robots au contenu du back-office, permettre de visiter /admin-ajax.php mais empêcher dans le même temps le crawl (et l’aspiration) de l’outil Screaming Frog :

[pastacode lang=”markup” manual=”User-agent%3A%20Screaming%20Frog%20SEO%20Spider%0ADisallow%3A%20%2F%0A%0AUser-agent%3A%20*%0ADisallow%3A%20%2Fwp-admin%2F%0AAllow%3A%20%2Fwp-admin%2Fadmin-ajax.php” message=”Exemple d’instructions” highlight=”” provider=”manual”/]

Passons à présent aux explications de ces exemples, sur la syntaxique :

Explication sur la syntaxe

L’instruction “User-agent:” permet de préciser le ou les robots concernés. C’est l’étoile “*” qui dans le cas ci-dessus permet de spécifier “tous”. L’instruction concerne donc ici tous les bots. L’instruction “Disallow:” permet d’exclure un répertoire, en l’occurrence ici “/wp-admin/” qui fait référence au back-office de WordPress.  L’instruction “Allow”, quant à elle, fait référence à la permission. Dans le répertoire /wp-admin, Google peut accéder ainsi à /admin-ajax.php. La permission est acceptée par Google, ce n’est pas le cas de tous les bots. Reprenons sous forme de tableau ces syntaxes utiles pour la configuration de votre fichier :

Syntaxe utilisée Explications
User-agent:
Champ de base introductif pour désigner les bots concernés
User-agent: *
Précise que l’accès est donné à tous les agents (bots, spiders), quels qu’ils soient.
User-agent: googlebot Pour identifier Googlebot, le crawler de Google
User-agent: Screaming Frog SEO Spider Pour identifier le bot de Screaming Frog, afin de lui restreindre ensuite l’accès (Encore faut-il connaître son nom).
Disallow: /
Exclue toutes les pages et répertoires d’un site (pour un noindex par exemple ou code réponse 0 pour un bot particulier). Peut s’associer avec l’instruction User-Agent précédente.
Disallow: /images/
Ici, l’exclusion concerne par exemple un répertoire “images” (?)
Disallow: /images*
L’ajout de l’étoile (*) permet également de bloquer l’accès des fichiers commençant par “images”.
Disallow:
Ici le champ est vide ; Pas d’interdiction pour le ou les bots.
Allow: /
Permission à l’ensemble des répertoires spécifique à Google.

Que sont les Wildcards ?

Non, les Wildcards ne sont pas ici une anthologie de nouvelles mettant en scène des super-héros. Ce sont ici des petits marqueurs que l’on va utiliser pour donner des instructions récurrentes. Cela permet notamment de restreindre l’accès à certaines URLs. (Prenez-le comme un joker 🙂 )  Par exemple :

Syntaxe utilisée pour l’instruction aux bots Explications sur la Wildcard
User-agent: *
Disallow: /*?
Pour tous les spiders, instruction est donnée de ne pas récupérer les urls contenant le signe “?”.
User-agent: Googlebot
Disallow: /*.php$
Pour le cas de Google, ne pas récupérer toutes (*) les urls se terminant par “.php”. C’est ici le “$” qui permet de préciser “se terminant par”.
User-agent: *
Disallow: /comments/feed/
Une instruction à destination de tous les moteurs pour bloquer le flux des commentaires sur WordPress par exemple.

Les Wildcards Sont valables sur l’ensemble des grands moteurs de recherche que sont Google, Bing, Yahoo, Yandex et Baidu. Elle sont customisables comme vous le souhaitez mais vont changer en fonction de la nature du site, de son hébergement et de ses fonctionnalités ; Par exemple : Bloquer l’accès aux résultats de recherche d’un moteur interne, Bloquer l’accès aux commentaires, à des fichiers commençant ou se terminant par un format (.pdf, .php, etc.) Soyez précis !

Les différents robots de Google

L’user-agent Googlebot est le plus connu. Savez-vous toutefois que la firme de Mountain View en dispose d’autres ? Voici les plus connus et exploitables dans votre fichier robots.txt, voire dans les meta tags :

Robot d’exploration de Google A quoi il sert
Googlebot
Jusqu’à présent et avant que Google ne se décide à multiplier les moteurs de recherche, Googlebot est le spider de crawl et d’indexation pour desktop et mobiles.
Googlebot-Image
Lié au précédent, il permet de référencer les images dans Google Images. Vous pouvez ainsi paramétrer la demande d’indexation ou de non indexation de celles-ci en spécifient cet User-agent.
Googlebot-News Pour les sites d’actualités, c’est très pratique.
Googlebot-Video Besoin de configurer l’affichage des vidéos dans la SERP ?
Mediapartners-Google
Il intervient dans le cadre des publicités Adsense.
AdsBot-Google
Un crawler pour vérifier la qualité des pages de destination.

Une liste assez complète mais non exhaustive (on s’en doute) se trouve ici.

Le sitemap dans le robots.txt

Oui, on peut placer l’information du sitemap dans le robots.txt. C’est toutefois beaucoup plus profitable d’utiliser à bon escient la Google Search Console qui est faite pour faciliter le dialogue avec le moteur. Si vous souhaitez placer le sitemap, voici ce qu’il faut faire :

[pastacode lang=”markup” manual=”Sitemap%3A%20https%3A%2F%2Fmonomdedomaine.com%2Fsitemap.xml” message=”Ligne à ajouter dans le fichier robots.txt” highlight=”” provider=”manual”/]

Mais allez avec plus de profit dans la Search console avec votre sitemap configuré : Exploration -> Sitemap -> Ajouter/tester un sitemap

L’alternative du HTTP X-Robots-Tag

Si vous n’avez pas envie d’utiliser le robots.txt, Vous pouvez également utiliser les http x-Robots-tag un peu de la même manière. Sachez toutefois que le mieux est de configurer votre fichier robots.txt. Vous les adapterez en fonction de la techno de votre site, en fonction du code de réponse HTTP.

Par exemple, bloquer la mise en cache visible dans la SERP d’un document en PHP reviendrait à ceci :

[pastacode lang=”markup” manual=”header(%22X-Robots-Tag%3A%20%20noarchive%22%2C%20true)%3B” message=”Emêcher la mise en cache du document” highlight=”” provider=”manual”/]

D’autres valeurs sont possibles, listons-les.

Différentes instructions et valeurs pour le HTTP-X-Robots-Tag

On en dénombre plusieurs que l’on traite régulièrement au travers du présente site et en fonction de la page, de son contenu :

Valeur utilisée Signification en pratique
noindex
Puisque votre robots.txt n’a pas empêché de venir sur cette page, vous lui demnadez toutefois de ne pas l’indexer.
nofollow
Demander aux robots de ne pas suivre les liens de la page. Voir notre article sur la meta nofollow.
noarchive Pour empêcher la mise en cache des pages dans la SERP. Cela peut être utile si vous souhaitez empêcher l’accès aux contenus crawlés et indexés accessibles via le bouton “En Cache”. (Une petite flèche verte dans la SERP de Google).
noimageindex Empêcher l’indexation des images dans les résultats de recherche.
none
Reprend le noindex nofollow (simplification du meta name=”robots” content=”noindex, nofollow”>)
notranslate
Pour ne pas permettre la traduction de la page dans le moteur.
noodp Par nostalgie car n’existe plus : Empêcher la reprise des metadonnées issues de dmoz.org
nosnippet
Pour empêcher l’affichage des meta descriptions (Faut être joueur !)
unavailable_after: [RFC-850 date/time] Pour demander à ne plus afficher la page dans la SERP après une date. Par exemple : <meta name=”Googlebot” content=”unavailable_after: 25-Aug-2017 15:00:00 EST”> Après cela, oublie-la 🙂

Tout cela est bien beau mais, qu’est-ce que j’en fait ?

Conclusion sur le robots.txt

Nous avons ici essayé de dresser un panorama assez complet du fonctionnement du fichier robots.txt. Dans la réalité, les configurations sont multiples et même évolutives avec le temps pour les besoins du SEO. Il n’existe pas en soi de configuration unique pour la bonne est simple raison que les sites sont tous différents. Que l’on soit sur une technologie WordPress, Joomla ou Drupal influera bien entendu la manière de le concevoir mais nous attirons votre attention sur le fait qu’il existe toujours des spécificités propres aux objectifs du site. Dois-je masquer mon moteur de recherche interne ? Dois-je limiter l’indexation de tel type de page mais pas les images qui en sont dépendantes ? Suis-je sur un intranet ? Bref, un ensemble de questions préalables qu’il est bon de se poser avant de se lancer dans la duplication de tel ou tel code trouvé sur le Web.

De la même manière, observez avec attention les robots.txt de vos concurrents. Parfois, comme dans l’exemple de Screaming Frog, vous trouverez des astuces pour limiter l’accès à des ressources vous permettant d’auditer la concurrence. Il est possible par exemple d’empêcher le crawl d’un Majestic SEO ou d’un SEMRush (sur le site Webrankinfo, vous trouverez notamment une liste de ces robots) Bien vu Olivier Duffez ! A vous de voir la configuration que vous souhaitez sachant que vous avez intérêt aujourd’hui à mettre en place ce fichier dès le lancement de votre site (au moins pour le crawler de Google)

A propos de l'auteur(e)

Pas de commentaire