Robots.txt : guide complet de configuration pour le SEO
Comment robots.txt influe sur le crawl, où il ne peut pas contrôler l’indexation, et comment tester les directives sans bloquer les pages que vous voulez faire découvrir.
Robots.txt est un fichier texte brut placé à la racine de votre site. Il indique aux robots des moteurs de recherche les sections qu’ils peuvent visiter et celles qu’ils doivent ignorer. C’est le premier fichier qu’un crawler lit à son arrivée sur un site. Il existe depuis 1994 et reste le standard de fait pour piloter le crawl.
La limite essentielle : une page bloquée par Disallow ne sort pas automatiquement de l’index. Si d’autres sites pointent vers elle, Google peut indexer l’URL sans la visiter, et afficher un snippet vide dans les résultats de recherche. Pour retirer complètement une page de l’index, il faut d’autres outils.
Qu’est-ce que robots.txt et ses limites
Le fichier robots.txt doit être placé à la racine du domaine : https://example.com/robots.txt. Les sous-domaines ont leurs propres fichiers : robots.txt pour blog.example.com se trouve à l’adresse https://blog.example.com/robots.txt. Le Robots Exclusion Standard (REP) définit les directives de base ; Google et Yandex l’ont enrichi de fonctionnalités supplémentaires.
Contrôle du crawl
Empêche les robots de visiter certaines sections : cela réduit les charges serveur inutiles et préserve le budget de crawl pour les pages à forte valeur.
Pointe vers le sitemap
La directive Sitemap aide les moteurs à trouver immédiatement votre sitemap XML, sans configuration supplémentaire.
Ne protège pas le contenu
Robots.txt est publiquement visible. Il ne chiffre ni ne masque le contenu des pages : il demande seulement aux robots de ne pas les visiter.
Format et syntaxe
Le fichier se compose de blocs appelés enregistrements (records). Chaque enregistrement commence par une ou plusieurs directives User-agent et peut contenir un nombre quelconque de lignes Disallow, Allow, Crawl-delay et Sitemap. Les enregistrements sont séparés par une ligne vide. Les commentaires commencent par #.
| Directive | Prise en charge | Description |
|---|---|---|
| User-agent | Tous | Identifiant du robot. * désigne « tous les robots ». Un même bloc peut contenir plusieurs lignes User-agent. |
| Disallow | Tous | Chemin interdit au crawl. Une valeur vide signifie « rien n’est bloqué » (tout est autorisé). |
| Allow | Google, Yandex | Autorise explicitement un chemin à l’intérieur d’une section bloquée. Il est prioritaire sur Disallow. |
| Crawl-delay | Yandex, Bing | Délai minimal, en secondes, entre deux requêtes du robot. Ignorée par Google. |
| Sitemap | Google, Yandex, Bing | URL absolue du sitemap XML. Plusieurs lignes Sitemap sont autorisées. |
Jokers : * et $
Google et Yandex prennent en charge deux caractères génériques dans les chemins Disallow et Allow. L’astérisque * correspond à n’importe quelle suite de caractères (y compris une chaîne vide). Le signe dollar $ marque la fin de l’URL : il impose une correspondance exacte jusqu’au dernier caractère.
# Block all URLs with the ?sort= parameter
Disallow: /*?sort=
# Block only /page (exact match, not /page/child)
Disallow: /page$
# Block all PDFs across the entire site
Disallow: /*.pdf$La directive Sitemap peut se placer n’importe où dans le fichier : elle n’a pas besoin d’être rattachée à un bloc User-agent précis. Indiquez toujours une URL absolue complète :
Sitemap: https://example.com/sitemap.xmlExemples prêts à l’emploi pour différents scénarios
Scénario 1 : site public simple
Pour un petit site sans section privée, un fichier minimal suffit : tout autoriser, bloquer le panneau d’administration et les chemins techniques, et déclarer le sitemap.
# robots.txt for example.com — simple public site
User-agent: *
Disallow: /admin/
Disallow: /login
Disallow: /dashboard/
Sitemap: https://example.com/sitemap.xmlScénario 2 : grand e-commerce avec pages de catalogue et de paramètres
Une boutique en ligne génère des centaines de milliers d’URL via les filtres, le tri et la pagination. La plupart sont des doublons ou des pages sans valeur propre. Bloquez les URL paramétrées avec Disallow et des jokers, tout en laissant accessibles les pages de catégories et de produits propres.
# robots.txt for e-commerce example.com
User-agent: *
# Technical and admin sections
Disallow: /admin/
Disallow: /checkout/
Disallow: /cart
Disallow: /account/
Disallow: /api/
# Parametric catalogue duplicates
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?page=
Disallow: /*?ref=
Disallow: /search
# Explicitly allow a useful parameter in one section
Allow: /catalog/shoes?size=
Crawl-delay: 1
Sitemap: https://example.com/sitemap.xmlScénario 3 : site avec pages de préproduction et pages temporaires
Les pages de landing de webinaires, les brouillons, les pages de modèles et les sections de préproduction (staging) doivent être bloqués au crawl. Utilisez Disallow avec un préfixe de chemin et, si besoin, un bloc séparé pour des robots spécifiques.
# robots.txt for example.com — main site with staging sections
User-agent: *
Disallow: /webinar-drafts/
Disallow: /templates/
Disallow: /staging/
Disallow: /_preview/
Disallow: /thank-you-test
# Block the entire site for a specific bot (e.g. an aggressive crawler)
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
Sitemap: https://example.com/sitemap.xmlDisallow, balise meta robots noindex et X-Robots-Tag
Ce sont trois outils distincts, aux rôles différents. Les confondre conduit à une erreur classique : une page est bloquée dans robots.txt et porte aussi une balise meta noindex. Google ne peut pas lire cette balise, car la page est fermée au crawl : la directive noindex n’est donc jamais exécutée.
| Outil | Où il se trouve | Ce qu’il fait | Quand l’utiliser |
|---|---|---|---|
| Disallow dans robots.txt | robots.txt | Empêche le robot de visiter l’URL. Ne retire pas l’URL de l’index si elle y est déjà. | Bloquer les sections techniques et réduire la consommation inutile du budget de crawl. |
| meta robots noindex | <head> HTML | Autorise le robot à visiter la page, mais interdit de l’ajouter à l’index. Le robot lit la balise et applique la directive. | Retirer une page précise de l’index (pages de remerciement, pagination, pages de filtres). |
| X-Robots-Tag | En-tête de réponse HTTP | Équivalent de meta robots, mais fonctionne pour tous les types de fichiers : PDF, images, documents. | Contrôler l’indexation des ressources non HTML (PDF, DOCX, images). |
Exemple d’X-Robots-Tag dans un en-tête de réponse HTTP (configuré dans Nginx ou dans le code de l’application) :
# Nginx: prevent indexation of all PDFs
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, nofollow";
}Comment tester robots.txt
Validez toujours les modifications avant de les déployer. Une seule faute de frappe peut bloquer tout votre site pour les crawlers.
- Google Search Console → outil de test robots.txt : intégré directement à GSC. Saisissez une URL pour vérifier si Googlebot et les autres robots de Google sont autorisés ou bloqués.
- Yandex Webmaster → analyse robots.txt : l’équivalent pour Yandex. Il montre comment Yandex Bot interprète votre fichier.
- Screaming Frog SEO Spider → Configuration → Robots.txt : analyse le site en respectant robots.txt et liste les URL bloquées dans le rapport.
- curl : vérification rapide en ligne de commande pour lire le fichier et contrôler le statut HTTP.
# Fetch robots.txt and inspect its contents
curl -s https://example.com/robots.txt
# Check HTTP status (must be 200)
curl -I https://example.com/robots.txtErreurs courantes et comment les corriger
| Erreur | Symptôme | Correction |
|---|---|---|
| Disallow: / pour tout le site | Googlebot cesse de crawler l’ensemble du site. GSC affiche les pages comme « bloquées par robots.txt ». | Supprimez la ligne ou remplacez-la par un chemin précis. Cette erreur s’introduit souvent lors des déploiements. |
| Espace accidentel dans le chemin | Disallow: /admin / (avec un espace) : le robot lit le chemin tel quel, et rien n’est bloqué. | Supprimez les espaces. Les chemins sont sensibles à la casse et aux espaces. |
| noindex + Disallow sur une même page | La page reste dans l’index ; la directive noindex n’est jamais appliquée. | Supprimez Disallow et ne gardez que noindex. Le robot doit pouvoir visiter la page pour lire la balise. |
| User-agent absent avant les règles | Erreur de syntaxe : les règles ne s’appliquent à aucun robot. | Ajoutez User-agent: * avant le bloc Disallow/Allow. |
| robots.txt renvoie 404 ou 500 | Un 404 est traité comme « aucune restriction » ; un 500 interrompt le crawl temporairement. | Vérifiez que le fichier répond en HTTP 200 ; un fichier vide équivaut à « tout autoriser ». |
Recommandations de sécurité
Robots.txt est public et indexé par les moteurs de recherche : n’importe qui peut le lire. Publier dans robots.txt des chemins vers le panneau d’administration, les sauvegardes, les API internes ou les fichiers de configuration revient à remettre aux attaquants une carte de votre site.
- Ne publiez pas les chemins sensibles : sauvegardes (.zip, .sql), fichiers de configuration (.env, config.php), API internes.
- Protégez les sections confidentielles au niveau du serveur : authentification HTTP Basic, liste blanche d’IP, OAuth, et non via robots.txt.
- Limitez la liste Disallow aux seuls chemins qu’il faut réellement exclure du crawl pour des raisons SEO.
- Contrôlez régulièrement robots.txt dans GSC : assurez-vous qu’un déploiement n’a pas introduit par erreur un Disallow: /.
Liste de contrôle et exemple final
- Le fichier est accessible à https://example.com/robots.txt et renvoie HTTP 200
- Encodage UTF-8, sans BOM (Byte Order Mark)
- Chaque bloc commence par User-agent
- Une ligne vide sépare les blocs de différents User-agent
- Aucune combinaison Disallow + noindex sur une même page
- Aucun chemin sensible exposé publiquement
- Crawl-delay défini pour Yandex si la charge serveur est élevée
- La directive Sitemap pointe vers le fichier d’index racine
- Fichier validé dans GSC et dans Yandex Webmaster
- Screaming Frog affiche le nombre attendu d’URL bloquées
Exemple final de robots.txt pour example.com, avec commentaires : un modèle universel qui couvre la plupart des scénarios :
# robots.txt for example.com
# Updated: 2026-05-15
# Rules for all crawlers
User-agent: *
# Admin and auth sections
Disallow: /admin/
Disallow: /login
Disallow: /dashboard/
Disallow: /account/
# Technical paths
Disallow: /api/
Disallow: /_next/
Disallow: /cdn-cgi/
# Parametric duplicates (e-commerce)
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?ref=
Disallow: /search
# Staging and temporary pages
Disallow: /staging/
Disallow: /webinar-drafts/
Disallow: /templates/
# Explicit allow for a useful API path
Allow: /api/og-image/
# Crawl rate for Yandex
User-agent: Yandex
Crawl-delay: 1
# Aggressive SEO bots (optional)
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Disallow: /
# Sitemap
Sitemap: https://example.com/sitemap.xmlFAQ
Robots.txt influence-t-il le classement ?
Que se passe-t-il si robots.txt renvoie un 404 ?
Peut-on définir des règles différentes pour Googlebot et Yandex dans un même fichier ?
Disallow: / bloque tout le site : comment corriger vite ?
Comment bloquer un seul fichier sans bloquer tout son répertoire ?
Check it with SpiderHead
Free and local: run the audit on your own machine.



