Guide de robots.txt

Fonction réelle de robots.txt — contrôler l’exploration, pas l’indexation —, syntaxe exacte, traitement par Google et erreurs capables d’affecter un site entier.

Première publication : 23 juin 2026 · Dernière mise à jour : 21 août 2026 · Advanced
Langues
1 indice probant sur cette page

Robots.txt est un fichier texte placé à la racine de chaque hôte qui indique aux robots quelles URL ils peuvent demander. Il contrôle l’exploration, pas l’indexation : une URL interdite peut encore être indexée sans extrait. Pour retirer une page de l’index, utilisez noindex sans la bloquer dans robots.txt. Google ne prend en charge que user-agent, allow, disallow et sitemap ; la portée correspond à un hôte, un protocole et un port. La limite est de 500 KiB, le cache dure environ 24 h, les réponses 4xx signifient généralement aucune restriction et une 5xx peut interrompre l’exploration du site. Ne bloquez pas les CSS/JS nécessaires au rendu et n’utilisez jamais ce fichier public pour cacher des informations.

TL;DR — Robots.txt est un fichier texte à la racine de chaque hôte (/robots.txt, en minuscules) qui applique le protocole d’exclusion des robots, RFC 9309. Il contrôle l’exploration, pas l’indexation : une URL interdite peut rester indexée sans extrait. Pour la désindexer, utilisez noindex sans la bloquer. Google ne prend en charge que user-agent, allow, disallow et sitemap ; noindex, nofollow et crawl-delay ne sont pas pris en charge. La portée est un hôte, un protocole et un port. La règle au chemin le plus long gagne ; à égalité, la moins restrictive. * et $ sont des jokers et les chemins sont sensibles à la casse. Google limite le fichier à 500 KiB, le met en cache environ 24 h, traite les 4xx hors 429 comme aucune restriction et, après une 5xx, suspend l’exploration environ 12 h puis reprend la dernière bonne copie pendant environ 30 jours. Ne bloquez pas les CSS/JS nécessaires au rendu et n’utilisez pas ce fichier public comme contrôle d’accès.

Définition et emplacement

Robots.txt applique le Robots Exclusion Protocol, créé par Martijn Koster en 1994 et normalisé en 2022 dans la RFC 9309, coécrite avec Gary Illyes, Henner Zeller et Lizzi Sassman. Le texte précise : “This document specifies and extends the ‘Robots Exclusion Protocol’ method originally defined by Martijn Koster in 1994 for service owners to control how content served by their services may be accessed, if at all, by automatic clients known as crawlers.” (traduction) « Ce document définit et étend la méthode du protocole d’exclusion des robots créée par Martijn Koster en 1994 afin que les propriétaires de services contrôlent l’accès de clients automatiques appelés robots à leurs contenus. »

Quelques faits qui surprennent souvent :

  • Racine et minuscules obligatoires. La RFC 9309 dit : “The rules MUST be accessible in a file named ‘/robots.txt’ (all lowercase) in the top-level path of the service.” (traduction) « Les règles DOIVENT être accessibles dans un fichier nommé ‘/robots.txt’, entièrement en minuscules, au niveau supérieur du service. » Google rappelle que l’URL est sensible à la casse.
  • Portée : un hôte, un protocole et un port. Google précise : “The rules listed in the robots.txt file apply only to the host, protocol, and port number where the robots.txt file is hosted.” (traduction) « Les règles ne s’appliquent qu’à l’hôte, au protocole et au port où le fichier est hébergé. » https://example.com, https://www.example.com, https://blog.example.com et http://example.com ont donc chacun besoin de leur fichier.
  • Protocoles pris en charge par Google : HTTP, HTTPS et FTP.

L’erreur qui définit le sujet : exploration et indexation

Retenez ceci : robots.txt contrôle l’exploration, pas l’indexation. Interdire une URL ne la retire pas de Google. Evidence for this claim A robots.txt rule controls crawling rather than guaranteeing removal from Google Search; a URL can still appear when Google cannot crawl it. Scope: Google Search crawler behavior. Other crawlers can interpret robots.txt differently. Confidence: high · Verified: Google: Introduction to robots.txt

La documentation Google le dit clairement : robots.txt “is not a mechanism for keeping a web page out of Google. To keep a web page out of Google, block indexing with noindex or password-protect the page.” (traduction) « n’est pas un moyen de retirer une page de Google ; utilisez noindex ou protégez-la par mot de passe ». Et pour une URL bloquée : “While Google won’t crawl or index the content blocked by a robots.txt file, we might still find and index a disallowed URL if it is linked from other places on the web.” (traduction) « Google peut encore trouver et indexer une URL interdite si d’autres pages y renvoient ». Elle peut alors apparaître sans description.

Evidence for this claim Robots.txt controls crawler access, not index eligibility; Google may still index a disallowed URL discovered through links, typically without a content snippet. Scope: web crawling Confidence: high · Verified: Robots.txt Introduction and Guide

La règle disallow reprend cette nuance : “Google can’t index the content of pages which are disallowed for crawling, but it may still index the URL and show it in search results without a snippet.” (traduction) « Google ne peut pas indexer le contenu interdit à l’exploration, mais peut indexer l’URL et l’afficher sans extrait. »

Pourquoi ne jamais bloquer une page à laquelle vous appliquez noindex

Un noindex n’agit que si Google peut explorer la page. Google précise : “For the noindex rule to be effective, the page or resource must not be blocked by a robots.txt file, and it has to be otherwise accessible to the crawler. If the page is blocked by a robots.txt file or the crawler can’t access the page, the crawler will never see the noindex rule, and the page can still appear in search results, for example if other pages link to it.” (traduction) « Pour être efficace, la page ne doit pas être bloquée par robots.txt et doit rester accessible ; sinon le robot ne voit jamais noindex et l’URL peut encore apparaître dans les résultats. » Evidence for this claim Google must be able to crawl a URL to see a noindex rule; blocking the URL in robots.txt can prevent the rule from being observed. Scope: Google Search indexing controls for HTML meta robots and X-Robots-Tag rules. Confidence: high · Verified: Google: Block indexing with noindex

Pour retirer une page de l’index, la règle mémorable de John Mueller est donc simple : ne bloquez pas Google dans robots.txt ; utilisez noindex.

La preuve en conditions réelles : j’ai bloqué deux de nos pages bien classées

Dans mon expérience sur deux pages Ahrefs bien classées, je les ai volontairement bloquées et j’ai suivi les résultats. Elles sont restées indexées et classées, mais ont perdu la fraîcheur apportée par les nouvelles explorations : “We lost a position here or there and all of the featured snippets for the pages.” (traduction) « Nous avons perdu une position ici ou là et tous les extraits optimisés de ces pages. » Le trafic a moins baissé que prévu : “Both pages lost some traffic. But it didn’t result in much change to our traffic estimate like I was expecting.” (traduction) « Les deux pages ont perdu un peu de trafic, sans modifier autant que prévu notre estimation. »

Ma conclusion : “Accidentally blocking pages (that Google already ranks) from being crawled using robots.txt probably isn’t going to have much impact on your rankings, and they will likely still show in the search results.” (traduction) « Bloquer accidentellement l’exploration de pages déjà classées aura probablement peu d’effet sur leur classement et elles resteront sans doute visibles. » En bref : “Don’t block pages you want indexed. It hurts. Not as bad as you might think it does—but it still hurts.” (traduction) « Ne bloquez pas les pages que vous voulez indexer. Cela nuit, moins qu’on ne le pense, mais cela nuit tout de même. »

Google Search Console peut afficher « Indexed, though blocked by robots.txt » pour des URL utilitaires. C’est souvent sans conséquence : elles ne seront guère montrées sans requête très spécifique. Ce signal n’est problématique que pour une page que vous vouliez réellement faire explorer et indexer.

La syntaxe de référence

Un robots.txt contient des groupes. Chaque groupe commence par une ou plusieurs lignes User-agent qui nomment les robots concernés, puis leurs règles.

User-agent: *
Disallow: /cart/
Disallow: /search
Allow: /search/help

User-agent: Googlebot
Disallow: /no-google/

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

User-agent et groupes. Un robot obéit à exactement un groupe : celui dont le user-agent correspondant est le plus spécifique. Google explique : “Google’s crawlers determine the correct group of rules by finding in the robots.txt file the group with the most specific user agent that matches the crawler’s user agent. Other groups are ignored.” (traduction) « Les robots Google choisissent le groupe dont le user-agent est le plus spécifique ; les autres sont ignorés. » Et : “Only one group is valid for a particular crawler.” (traduction) « Un seul groupe est valide pour un robot donné. »

Un groupe spécifique n’hérite donc pas du groupe global User-agent: *. La spécification indique : “user agent specific groups and global groups (*) are not combined.” (traduction) « Les groupes propres à un user-agent et les groupes globaux ne sont pas combinés. » Un groupe User-agent: googlebot-news doit répéter chaque règle globale dont il a encore besoin depuis le groupe *.

Evidence for this claim For Google's crawlers, the most specific matching user-agent group applies; rules from that specific group are not combined with the global asterisk group, although multiple matching specific groups are merged internally. Scope: robots.txt parsing and fetching Confidence: high · Verified: How Google Interprets the robots.txt Specification

Disallow et Allow. Disallow énumère les chemins à ne pas demander ; Allow crée des exceptions. La règle disallow “specifies paths that must not be accessed by the crawlers identified by the user-agent line the disallow rule is grouped with.” (traduction) « indique les chemins interdits aux robots du groupe ». La règle allow “specifies paths that may be accessed by the designated crawlers. When no path is specified, the rule is ignored.” (traduction) « indique les chemins autorisés ; sans chemin, elle est ignorée ».

Règle de correspondance. La règle au chemin le plus long, donc la plus spécifique, gagne. Google précise : “When matching robots.txt rules to URLs, crawlers use the most specific rule based on the length of the rule path. In case of conflicting rules, including those with wildcards, Google uses the least restrictive rule.” (traduction) « Les robots choisissent la règle au chemin le plus long et, en cas de conflit, la moins restrictive. » À égalité, Allow l’emporte sur Disallow. La RFC appelle cela “Longest Match” et indique : “The following example shows that in the case of two rules, the longest one is used for matching.” (traduction) « Avec deux règles, la plus longue sert à établir la correspondance. » Evidence for this claim Google resolves matching robots.txt rules by path specificity and uses the least restrictive rule when equally specific rules conflict. Scope: Google crawler interpretation of robots.txt rules; other crawlers may implement different extensions. Confidence: high · Verified: Google: Robots.txt interpretation

Exemple :

User-agent: *
Allow: /folder/page
Disallow: /folder/

L’URL /folder/page correspond aux deux règles. Allow: /folder/page, plus longue, l’emporte sur Disallow: /folder/ : la page reste explorable.

Jokers * et $. Google : * designates 0 or more instances of any valid character. $ designates the end of the URL.” (traduction) « * représente zéro caractère valide ou davantage ; $ marque la fin de l’URL. » Ainsi, Disallow: /*.pdf$ bloque les URL finissant par .pdf, et Disallow: /*? bloque celles qui contiennent une requête. La correspondance se fait par préfixe : Disallow: /fish vise /fish, /fish.html et /fish/salmon.html, mais pas /Fish ni /catfish.

Sensibilité à la casse. Les noms de champs et de user-agents sont insensibles à la casse, mais les chemins y sont sensibles. Google dit : “Both the user-agent field name and its value are case-insensitive,” (traduction) « le nom et la valeur de user-agent sont insensibles à la casse », tandis que “The field name (disallow) is case-insensitive, but its value is case-sensitive,” (traduction) « le nom disallow ne l’est pas, mais sa valeur l’est » et “The path value must start with / to designate the root and the value is case-sensitive.” (traduction) « le chemin doit commencer par / et respecte la casse ». Disallow: /Folder/ ne bloque donc pas /folder/.

Sitemap. La directive Sitemap: reçoit une URL absolue et ne dépend d’aucun groupe ; elle peut apparaître n’importe où.

Commentaires. Tout ce qui suit # est ignoré : “To include comments, precede your comment with the # character.” (traduction) « Pour ajouter un commentaire, faites-le précéder du caractère #. »

noindex, nofollow et crawl-delay ne sont PAS des directives robots.txt

Depuis le 1er septembre 2019, Google ne prend plus en charge les règles non documentées noindex, nofollow et crawl-delay. Les champs admis sont user-agent, allow, disallow et sitemap ; la spécification ajoute : “other fields such as crawl-delay aren’t supported.” (traduction) « les autres champs, tels que crawl-delay, ne sont pas pris en charge. »

Si vous utilisiez noindex dans robots.txt, choisissez plutôt une balise meta noindex ou un en-tête X-Robots-Tag, un statut 404/410, une protection par mot de passe, une règle Disallow ou l’outil de suppression de Search Console. N’utilisez pas 401/403 pour réguler l’exploration.

Traitement de robots.txt par Google

  • Limite : 500 KiB. “Google enforces a robots.txt file size limit of 500 kibibytes (KiB). Content which is after the maximum file size is ignored.” (traduction) « Google limite robots.txt à 500 kibioctets et ignore le contenu au-delà. » La RFC concorde : “The parsing limit MUST be at least 500 kibibytes [KiB].” (traduction) « La limite d’analyse DOIT être d’au moins 500 kibioctets. »
  • Cache : environ 24 heures. “Google generally caches the contents of robots.txt file for up to 24 hours, but may cache it longer in situations where refreshing the cached version isn’t possible.” (traduction) « Google met généralement le fichier en cache jusqu’à 24 heures, parfois davantage si son actualisation est impossible. » Evidence for this claim Google generally caches robots.txt for up to 24 hours and changes crawling behavior according to the HTTP status returned for the file. Scope: Google crawler handling of robots.txt fetches, including documented 4xx, 5xx, and redirect behavior. Confidence: high · Verified: Google: Robots.txt file handling
  • Les statuts ont un effet sur tout l’hôte.
    • 4xx (hors 429) → aucune restriction. “Google’s crawlers treat all 4xx errors, except 429, as if a valid robots.txt file didn’t exist. This means that Google assumes that there are no crawl restrictions.” (traduction) « Google traite ces erreurs comme l’absence de fichier valide et suppose qu’il n’existe aucune restriction. » Une 404 sur /robots.txt autorise donc tout ; n’utilisez pas 401/403 pour ralentir l’exploration.
    • 5xx ou indisponibilité → danger. “For the first 12 hours, Google stops crawling the site but keeps trying to fetch the robots.txt file. If Google can’t fetch a new version, for the next 30 days Google will use the last good version, while still trying to fetch a new version.” (traduction) « Pendant 12 heures, Google arrête l’exploration puis utilise la dernière bonne version jusqu’à 30 jours. » Une erreur sur /robots.txt peut donc bloquer tout l’hôte ; après 30 jours, si le site reste accessible, Google agit comme s’il n’existait aucun fichier.
    • 3xx → Google suit au moins cinq sauts, puis traite la réponse comme une 404.

robots.txt dans Bing, Yandex et les autres moteurs

La syntaxe est largement commune, mais deux différences comptent :

  • crawl-delay. Google l’ignore, Bing le respecte encore et Yandex l’a abandonné en 2018. Yandex indique : “From February 22, 2018, Yandex doesn’t take into account the Crawl-delay directive,” (traduction) « Depuis le 22 février 2018, Yandex ne prend plus en compte crawl-delay », et renvoie au réglage de fréquence de Yandex Webmaster. Bing précise que le fichier est le seul emplacement valide pour MSNBot et accepte des nombres entiers positifs comme frein relatif.
  • Piège du groupe bingbot. Comme pour la règle Google “only one group per crawler” (traduction) « un seul groupe par robot », un groupe User-agent: bingbot remplace les règles de User-agent: * ; répétez-y toutes les directives nécessaires.
  • Cache et échecs chez Amazon. Amazon peut utiliser une copie vieille de 30 jours. Si le fichier est inaccessible, ses robots agissent comme s’il n’existait pas. Un outil ne peut prouver quelle copie Amazon a réellement utilisée. Evidence for this claim Amazon says its crawlers may use a robots.txt copy cached within the previous 30 days and behave as though the file does not exist when they cannot fetch it. Scope: Amazon crawler behavior only; a checker result cannot establish which cached copy Amazon used or whether Amazon observed the same fetch failure. Confidence: high · Verified: Amazon: Amazonbot

Gérer les robots d’IA avec robots.txt

Robots.txt est aujourd’hui le principal levier pour ces robots, avec la même syntaxe de groupes. Chaque agent est toutefois indépendant : en bloquer un ne bloque pas les autres.

  • OpenAI utilise plusieurs robots distincts. GPTBot sert à l’entraînement ; OAI-SearchBot alimente les fonctions de recherche de ChatGPT ; OAI-AdsBot vérifie la sécurité des pages publicitaires sans entraîner les modèles. Pour bloquer l’entraînement, utilisez User-agent: GPTBot avec Disallow: / ; cette règle ne bloque pas les autres agents. ChatGPT-User correspond aux actions déclenchées par une personne et OpenAI avertit qu’un Disallow peut rester sans effet : “robots.txt rules may not apply” (traduction) « les règles robots.txt peuvent ne pas s’appliquer ». Une modification concernant OAI-SearchBot peut demander environ 24 heures.
  • Google-Extended contrôle l’entraînement Gemini/Vertex indépendamment de Googlebot.
  • Autres agents : CCBot, ClaudeBot, PerplexityBot et Bytespider.

La conformité reste volontaire. Robots.txt formule une demande, sans l’imposer. Pour réellement tenir un robot à l’écart, utilisez l’authentification ou un blocage technique.

Erreurs fréquentes et correctifs

Le fichier répond en 200 mais n’est pas exploitable. Le statut ne suffit pas : vérifiez Content-Type et les premiers octets. Une page d’erreur HTML à /robots.txt peut répondre en 200. Google attend du texte UTF-8 et peut ignorer les caractères invalides. Un BOM UTF-8 initial est toléré, mais un second BOM, un BOM interne, des octets UTF-16, des NUL ou des caractères invisibles peuvent casser une ligne. Signalez l’octet et la ligne concernés sans normaliser silencieusement. Appliquez la limite d’analyse de 500 KiB avant d’évaluer les règles, tout en signalant la partie ignorée.

  • Bloquer une page à désindexer. Blocage plus noindex empêche Google de voir noindex ; laissez-la explorable.
  • Utiliser robots.txt pour désindexer. Employez noindex.
  • Bloquer les CSS/JS nécessaires au rendu. Google doit explorer les fichiers .css et .js.
  • Tenter de cacher des données sensibles. La RFC avertit : “The Robots Exclusion Protocol is not a substitute for valid content security measures. Listing paths in the robots.txt file exposes them publicly and thus makes the paths discoverable.” (traduction) « Le protocole ne remplace pas des mesures de sécurité ; les chemins énumérés deviennent publics et découvrables. » N’annoncez pas /secret-admin/ ; utilisez l’authentification.
  • Laisser un Disallow: / accidentel. Il bloque tout le site pour le robot concerné.
  • Ignorer le statut de /robots.txt. Une 5xx peut suspendre l’exploration de tout l’hôte.

Pour replacer ce fichier dans l’ensemble du parcours — découverte, planification de l’exploration, rendu et indexation — consultez le guide de l’exploration et les articles voisins sur le budget d’exploration et les sitemaps.

Who's been ignoring my robots.txt?

This is live data from this site, not an illustration. My robots.txt disallows /api/trap/, and the only link to it is invisible to humans — so a compliant crawler will never request it. Every user-agent below fetched it anyway. (Humans poking at it with curl show up too; the user-agent usually gives them away.)

Loading trap log…

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.