Glossaire

Qu'est-ce que robots.txt ?

robots.txt est un fichier texte brut situé à la racine d'un site web (par exemple example.com/robots.txt) qui indique aux robots d'exploration quelles URL le propriétaire du site souhaite ou ne souhaite pas qu'ils accèdent, conformément au Robots Exclusion Protocol.

Comprenez le Robots Exclusion Protocol, ce que robots.txt applique réellement (et ce qu'il n'applique pas), et comment les scrapers devraient le traiter pour des raisons à la fois juridiques et opérationnelles.

Expliqué

robots.txt est une convention qui remonte à 1994 : un fichier texte brut à la racine d'un domaine qui liste les agents utilisateurs (crawlers) autorisés ou interdits d'accès à certains chemins d'URL. Les moteurs de recherche (Google, Bing) et les crawlers bien configurés le respectent. Le fichier est lisible publiquement — vous pouvez récupérer le robots.txt de n'importe quel site directement (`curl https://example.com/robots.txt`) et lire ce que le propriétaire du site souhaite que les crawlers fassent.

Le protocole d'exclusion des robots est purement indicatif. Le serveur web n'applique pas les directives de robots.txt — il se contente de les publier. Un crawler mal configuré peut ignorer robots.txt et le site servira quand même les URL demandées. L'application provient de la politique des moteurs de recherche (Googlebot n'indexera pas les pages interdites dans robots.txt) et des conséquences juridiques ou de réputation lorsque des scrapers commerciaux ignorent l'intention explicite du propriétaire.

Pour le scraping commercial, robots.txt est important de deux façons. Sur le plan juridique, ignorer une directive `Disallow` explicite peut être cité comme preuve d'un accès de mauvaise foi dans les affaires relevant du CFAA ou des lois sur la cybercriminalité (notamment aux États-Unis après la décision hiQ v LinkedIn). Sur le plan opérationnel, les sites qui interdisent des chemins spécifiques disposent souvent d'une protection anti-bot plus robuste sur ces chemins — `Disallow: /search` signifie généralement que le scraping de `/search` déclenchera des défenses plus importantes que le scraping du reste du site.

Comment ça fonctionne

Lorsqu'un crawler démarre sur un domaine, il récupère d'abord `/robots.txt` et analyse les directives. Le fichier utilise une grammaire simple : les blocs `User-agent: ` spécifient à quel crawler les règles suivantes s'appliquent (`*` pour tous), `Disallow: ` bloque des préfixes d'URL spécifiques, `Allow: ` réautorise des chemins dans un préfixe interdit, et les directives optionnelles `Crawl-delay: ` et `Sitemap: ` fournissent des métadonnées.

Le crawler vérifie ensuite chaque URL qu'il envisage de récupérer par rapport aux règles et ignore les chemins interdits. Certains crawlers mettent en cache robots.txt pendant 24 heures ; les crawlers de production matures l'actualisent plus fréquemment pour détecter les modifications.

Types

Disallow

Indique aux robots de ne pas accéder aux URL correspondant au préfixe. `Disallow: /admin/` exclut tout ce qui se trouve sous /admin/. La directive la plus courante.

Allow

Réautorise des chemins spécifiques au sein d'un préfixe interdit. `Disallow: /private/` + `Allow: /private/public-data/` exclut /private/ mais autorise /private/public-data/.

User-agent

Cible des robots spécifiques. `User-agent: Googlebot` applique les règles suivantes uniquement au robot de Google. `User-agent: *` s'applique à tous les robots en tant que solution de repli.

Crawl-delay

Suggère un délai minimum (en secondes) entre les requêtes. Respecté par Bing et Yandex ; Google l'ignore (utilisez plutôt le paramètre de fréquence d'exploration dans Search Console).

Sitemap

Pointe vers le(s) sitemap(s) XML du site. `Sitemap: https://example.com/sitemap.xml`. Aide les robots d'exploration à découvrir toutes les URL que le site souhaite indexer.

Cas d'utilisation courants

Indiquer aux moteurs de recherche quelles pages ne pas indexer
Empêcher les robots d'explorer des points de terminaison coûteux
Orienter les robots vers le sitemap canonique
Exclure les chemins d'administration et privés de l'indexation publique
Spécifier le Crawl-delay pour les robots coopératifs
Documenter la politique d'exploration à l'échelle du site
FAQ

Foire aux questions

Questions fréquentes sur robots.txt.

Pas en soi. robots.txt est consultatif : le serveur ne l'applique pas, et un robot non coopératif peut l'ignorer. Cependant, des tribunaux (notamment aux États-Unis dans le cadre du CFAA) ont cité des directives Disallow explicites comme preuve de l'intention du propriétaire du site, ce qui affaiblit les arguments des scrapers dans les affaires d'utilisation abusive d'ordinateurs. Considérez-le comme le plancher juridique d'un scraping conforme.

Oui, dans la plupart des cas. Respecter robots.txt est le moyen le moins coûteux de démontrer un accès de bonne foi en cas de litige, et les chemins interdits disposent souvent d'une protection anti-bot plus robuste de toute façon. Certains scrapings commerciaux ignorent robots.txt pour des usages légitimes de données publiques (analyse du classement dans les moteurs de recherche, veille concurrentielle) : c'est un choix juridique que vous devriez faire avec un conseiller.

Toujours à la racine : `https://example.com/robots.txt`. Il existe exactement un robots.txt par hôte. Il doit être servi avec une réponse 200 OK et `Content-Type: text/plain` pour être valide.

Vous pouvez demander à tous les robots coopératifs de s'arrêter avec `User-agent: *` + `Disallow: /`. Les robots malveillants ignoreront cela. Pour bloquer réellement les robots, vous avez besoin d'une application côté serveur (limitation du débit, outils anti-bot comme Cloudflare, listes d'autorisation d'IP). robots.txt est une demande courtoise, pas un mécanisme de sécurité.

Pour l'exploration, oui : Googlebot ne récupérera pas les pages interdites. Pour l'indexation, généralement oui, mais pas toujours. Si une page interdite est fortement liée depuis d'autres sources, Google peut l'inclure dans les résultats de recherche sur la seule base du signal de lien, avec une mention indiquant que la page ne peut pas être explorée. Pour empêcher totalement l'indexation, utilisez une balise meta `noindex`, et non robots.txt.

robots.txt fonctionne au niveau des modèles d'URL et est récupéré une fois par session d'exploration. La balise meta robots (`<meta name='robots' content='noindex'>`) est par page, intégrée dans l'en-tête HTML. robots.txt empêche l'exploration ; la balise meta robots empêche l'indexation des pages explorées. Elles servent des objectifs différents et sont souvent utilisées ensemble.