Googlebot a fait 57 requêtes sur ce site entre le 23 septembre et le 7 octobre 2026. Sur ce total, 37 demandaient robots.txt, et seulement 3 pages distinctes ont été lues. Notre site est jeune : prenez ce ratio comme une illustration et non comme une norme. Il montre pourtant ce qu’est ce fichier, la première chose qu’un robot lit et celle à laquelle il revient le plus souvent. Une ligne fausse y est appliquée vite, et à tout le site.
La page d’aide AdSense consacrée aux sites qui ne sont pas prêts à afficher des annonces cite ce fichier en toutes lettres : le robots.txt ne doit pas bloquer le crawler AdSense. Un robot bloqué ne peut pas examiner les pages que vous voulez faire approuver, et Google ne détaille pas la cause d’un refus donné. Cette erreur-là, c’est à vous de la repérer.
Les règles qui causent l’essentiel des dégâts
Google lit un fichier par hôte, par protocole et par port. https://example.com/robots.txt ne dit rien de https://blog.example.com/ ni de http://example.com/, et tout ce qui dépasse les 500 premiers Kio du fichier est ignoré.
Dans le fichier, un robot n’obéit qu’au groupe le plus spécifique qui le nomme, et il ne se rabat sur le groupe * que si aucun groupe ne le désigne. Les groupes qui nomment le même robot sont fusionnés. Chaque valeur Allow ou Disallow est un préfixe de chemin, * remplace n’importe quelle suite de caractères, $ ancre la fin de l’URL, et la règle la plus longue l’emporte. Quand un Allow et un Disallow ont la même longueur, Google applique la règle la moins restrictive, donc Allow.
La réponse de votre serveur pour le fichier lui-même compte tout autant :
| Réponse pour /robots.txt | Ce que fait Google |
|---|---|
| 200 avec des règles valides | Il les applique |
| 404 | Il considère que le site n’a aucune restriction |
| 5xx | Il suspend l’exploration pendant 12 h, puis travaille sur une copie en cache du fichier pendant 30 jours au plus |
La règle du préfixe produit les étourderies que nous voyons le plus souvent. Chacune de ces règles fait autre chose que ce que son auteur avait en tête :
| Vous avez écrit | Ce qu’elle désigne | Vous vouliez probablement |
|---|---|---|
Disallow: /blog | Toute URL qui commence par /blog : /blog/, /blogging-tips, /blog.html | Disallow: /blog/drafts/ |
Disallow: /*.pdf | Toute URL qui contient .pdf, y compris /a.pdf?download=1 | Disallow: /*.pdf$ |
Disallow: /Private/ | Seulement le dossier écrit avec une majuscule, car les chemins respectent la casse | La casse exacte de vos URL |
Disallow: | Rien : une valeur vide autorise tout | Souvent correct, mais souvent pris pour un blocage |
4 erreurs, avant et après
1. Le reliquat de la préproduction. On demande à un site de préproduction de rester hors des moteurs avec Disallow: /, le site est lancé, et le fichier part en ligne avec lui. C’est la ligne la plus courte du fichier et la plus coûteuse, parce qu’un site que Google ne peut pas explorer ne peut pas être approuvé. Notre vérificateur AdSense donne à son contrôle « Les robots ne sont pas bloqués » le poids le plus élevé qu’il utilise, 5 sur 5.
# Avant : copié depuis le site de préproduction
User-agent: *
Disallow: /
# Après
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
2. Un groupe spécifique qui remplace en silence le groupe *. Les règles placées sous User-agent: * s’appliquent à tous les robots qui n’ont pas de groupe à eux. Ajoutez un groupe pour Googlebot, même pour une seule ligne, et Googlebot cesse complètement de lire le groupe *. Ici, il peut désormais charger /admin/ :
# Avant
User-agent: *
Disallow: /admin/
Disallow: /cart/
User-agent: Googlebot
Disallow: /cart/
# Après : répétez chaque règle que le robot doit encore respecter
User-agent: *
Disallow: /admin/
Disallow: /cart/
User-agent: Googlebot
Disallow: /admin/
Disallow: /cart/
3. Bloquer les fichiers qui dessinent la page. Google effectue le rendu des pages. S’il ne peut pas charger une feuille de style ou un script, il voit une page qui a l’air différente de celle de vos visiteurs, et qui peut dire autre chose. La cause habituelle, ce sont les règles larges posées sur des dossiers de ressources. Le réglage par défaut de WordPress montre le meilleur schéma : ne bloquer que ce qui n’a aucune valeur pour la recherche, et laisser la règle la plus longue ouvrir l’unique exception.
# Avant
User-agent: *
Disallow: /wp-includes/
Disallow: /wp-content/
Disallow: /assets/
# Après
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
4. Utiliser le fichier pour retirer une page des résultats. Disallow arrête l’exploration, pas l’indexation : Google documente qu’une URL bloquée peut quand même être indexée et affichée sans extrait. Une ligne Noindex: dans le robots.txt ne sert à rien non plus, puisque Google ne la prend plus en charge depuis 2019. Pire, une page bloquée est une page dont Google ne pourra jamais lire la balise noindex.
# Avant
User-agent: *
Disallow: /thank-you/
Noindex: /thank-you/
# Après : aucune règle. La page reste explorable et le dit elle-même :
# <meta name="robots" content="noindex"> (ou l'en-tête HTTP X-Robots-Tag: noindex)
User-agent: *
Allow: /
Le crawler qu’utilise AdSense
Le crawler AdSense se présente sous le nom Mediapartners-Google. L’erreur 5 consiste à le bloquer, et cela arrive de deux façons. La première : un groupe collé depuis une liste de blocage, qui le nomme avec Disallow: /. La seconde est plus discrète : toute règle posée pour * vaut aussi pour ce crawler tant que vous ne lui donnez pas de groupe à lui, si bien qu’un blocage large, prévu pour les robots qui copient votre contenu, l’attrape au passage.
# Avant
User-agent: *
Allow: /
User-agent: Mediapartners-Google
Disallow: /
# Après
User-agent: *
Allow: /
Si * bloque volontairement des dossiers et que vous voulez que le crawler AdSense respecte les mêmes limites, nommez-le quand même et répétez ces règles dans son groupe, pour la raison vue à l’erreur 2. Nous recommandons de garder ce groupe explicite : une ligne visible s’audite plus facilement qu’une hypothèse sur les replis. La checklist des critères AdSense situe ce contrôle dans un examen.
Les robots d’IA sont une décision éditoriale
Laisser ou non les robots d’IA lire votre site est un choix d’éditeur, pas une faute technique, et c’est dans le robots.txt qu’on le consigne. La syntaxe est la même que pour n’importe quel robot, et plusieurs lignes User-agent peuvent partager un groupe :
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: PerplexityBot
Disallow: /
Deux précautions. D’abord, ce fichier est une demande que respectent les robots bien élevés. La RFC 9309 dit elle-même qu’il ne constitue pas une mesure de sécurité : il n’arrêtera pas un robot qui l’ignore. Ensuite, les fournisseurs publient des jetons distincts pour des usages distincts, et les noms changent. Prenez-les dans la documentation de chaque fournisseur, pas dans une liste qui circule sur les forums. Google documente par exemple Google-Extended comme le jeton qui décide si le contenu qu’il explore sert à ses modèles d’IA, et précise que le bloquer n’affecte pas la présence dans la recherche.
Le nôtre autorise tout, ce qui est une décision et non un oubli. Sur les mêmes 14,8 jours, les robots d’OpenAI ont lu 7 pages, et ceux d’Anthropic ont lu notre robots.txt 28 fois et notre sitemap 29 fois, sans lire aucune page. Le détail complet se trouve dans qui crawle un petit site.
Testez le fichier avant et après chaque changement
Récupérez-le comme le fait un robot, et regardez le statut et le type avant le contenu :
curl -sI https://example.com/robots.txt | head -n 5
curl -s https://example.com/robots.txt | grep -nEi '^disallow:[[:space:]]*/[[:space:]]*$'
La première commande doit afficher un 200 et un type de contenu en texte brut. Une jolie page d’erreur HTML servie avec un 200 à cette adresse est un autre piège : le fichier a l’air présent et ne dit rien. La seconde commande affiche chaque ligne qui bloque tout le site. Elle attrapera aussi un Disallow: / légitime placé sous un robot que vous avez choisi de bloquer, donc lisez à quel groupe appartient chaque ligne.
Passez ensuite le testeur robots.txt. Il indique, pour Googlebot, le crawler AdSense, Bing et les robots d’IA en même temps, si une URL est autorisée et quelle règle a tranché. Le rapport robots.txt de la Search Console montre la dernière copie que Google a récupérée.
Faites-le à chaque déploiement, pas une seule fois. Un fichier généré par votre build ou votre CMS peut changer sans que personne n’y touche, et Google garde une copie en cache : une correction n’est donc pas instantanée. Quand tout est en ordre, déclarez le sitemap avec une ligne Sitemap: absolue, qui fonctionne n’importe où dans le fichier. Les sitemaps XML pour petit site détaillent ce qu’il faut y mettre.
Réponses rapides
Le fichier robots.txt peut-il indiquer à Google la bonne version d'une page dupliquée ?
Non. Les consignes de Google sur les URL dupliquées précisent que le fichier robots.txt n'est pas un outil de canonicalisation. Utilisez une redirection 301 ou un lien rel=canonical, et laissez les deux URL explorables pour que Google voie le signal.
Un site doit-il absolument avoir un fichier robots.txt ?
Pas pour être exploré : une réponse 404 à cette adresse est lue comme une absence de restriction. Nous en recommandons un quand même, parce que c'est l'endroit habituel de la ligne Sitemap et qu'un fichier que l'on maîtrise est un fichier que l'on peut tester.