Comment rediger un fichier robots.txt qui fonctionne vraiment

robots.txt est l'un des fichiers les plus mal compris du web. Apprenez la syntaxe correcte, les erreurs courantes, ce que les moteurs de recherche respectent vraiment et ce qu'ils ignorent.

Ce que fait robots.txt (et ce qu'il ne fait pas)

robots.txt est un fichier texte place a la racine de votre site (https://example.com/robots.txt) qui indique aux robots d'exploration les pages ou repertoires qu'ils doivent ou ne doivent pas visiter.

C'est un protocole de courtoisie, pas une mesure de securite. Limitations importantes :

  • robots.txt s'applique uniquement aux robots qui choisissent de le respecter (tous les grands moteurs le font ; les scrapers malveillants non)
  • Bloquer une URL dans robots.txt ne l'empeche pas d'etre indexee si d'autres sites la referent
  • Il ne protege pas le contenu prive, utilisez l'authentification pour cela
  • Les erreurs de syntaxe cassent silencieusement les regles ; un seul caractere mal place peut bloquer tout votre site

La syntaxe de base

Un fichier robots.txt se compose d'enregistrements, chacun specifiant un agent utilisateur et des directives :

User-agent: *
Disallow: /prive/
Allow: /public/

User-agent: Googlebot
Disallow: /staging/

Sitemap: https://example.com/sitemap.xml

User-agent:, quel robot les directives suivantes concernent. * signifie tous les robots.

Disallow:, chemins que le robot ne doit pas visiter. Un Disallow: vide signifie "ne rien interdire" (tout autoriser).

Allow:, autorise explicitement un chemin qui serait sinon bloque par une regle Disallow: plus large.

Sitemap:, optionnel, indique aux robots ou trouver votre sitemap XML.

Regles importantes

La correspondance des chemins est basee sur le prefixe

Disallow: /prive/ bloque toute URL commencant par /prive/, y compris /prive/page.html, /prive/images/, etc.

Disallow: /page.html bloque uniquement ce chemin exact.

Disallow: / bloque l'ensemble du site. C'est la syntaxe correcte pour bloquer tous les robots, mais elle s'applique a tout.

Wildcards

* dans un chemin Disallow: correspond a n'importe quelle sequence de caracteres :

  • Disallow: /*.pdf$, bloque tous les PDF
  • Disallow: /recherche?, bloque toutes les URLs de resultats de recherche

Plusieurs user-agents pour un meme bloc

User-agent: Googlebot
User-agent: Bingbot
Disallow: /staging/

Erreurs courantes

Bloquer CSS et JavaScript

Si vos fichiers CSS et JavaScript sont dans un repertoire bloque (ex. /assets/), Googlebot ne peut pas rendre votre page correctement. Google rend les pages comme un navigateur et a besoin de vos assets pour voir la page telle que les utilisateurs la voient.

Confondre Disallow: et noindex

Disallow: arrete l'exploration. noindex (dans un en-tete HTTP ou une balise meta) arrete l'indexation. Ce sont des choses differentes :

  • Une page bloquee par robots.txt peut quand meme etre indexee via des signaux d'autres pages
  • Pour empecher a la fois l'exploration et l'indexation : utilisez noindex (ne bloquez pas l'exploration, sinon Google ne peut pas voir la directive noindex)

Disallow: vide = tout autoriser

User-agent: *
Disallow:

Cela signifie "ne rien interdire", autorise tous les robots. C'est valide et souvent utilise comme indication que les robots sont les bienvenus.

Un robots.txt minimal et correct

Pour un site standard sans pages a cacher :

User-agent: *
Disallow:

Sitemap: https://example.com/sitemap.xml

Cela autorise explicitement tous les robots et les pointe vers votre sitemap.

Valider votre robots.txt

Utilisez le testeur robots.txt de la Google Search Console (dans Parametres) pour valider votre fichier. Le Generateur robots.txt de ce site construit un fichier valide a partir d'un formulaire, en gerant la syntaxe correcte automatiquement.

En resume

robots.txt utilise les directives User-agent:, Disallow: et Allow: pour guider (sans forcer) le comportement des robots. Les erreurs courantes incluent le blocage des assets, la confusion entre interdire et desindexer, et l'utilisation incorrecte des wildcards. Validez toujours avant de deployer.