Référencement & SEO

Robots.txt : guide complet pour contrôler les crawlers

Robots-Txt Crawlers Seo Indexation Google Googlebot Bingbot Disallow Allow User-Agent Referencement Seo-Technique Sitemap Crawl-Budget
Robots.txt : guide complet pour contrôler les crawlers

Configurez le fichier robots.txt pour guider Googlebot et Bingbot : syntaxe, directives Disallow/Allow, sitemap, exemples concrets et bonnes pratiques.

Introduction et concepts

Le fichier robots.txt est un fichier texte placé à la racine de votre site qui indique aux crawlers (Googlebot, Bingbot) quelles pages ils peuvent explorer et indexer, et lesquelles bloquer.

À retenir : robots.txt = règles de visite pour les crawlers. Contrôle l'accès sans l'interdire vraiment (utilisez .htaccess pour interdire vraiment).

Localisation : https://example.com/robots.txt

Avantages :

  • Contrôler l'indexation du site
  • Bloquer les contenus sensibles
  • Économiser le budget de crawl de Google
  • Guider les crawlers vers les pages importantes
  • Déclarer le sitemap

Structure et syntaxe

Règles de base :

  • User-agent — Quel crawler ? (* = tous)
  • Disallow — Chemins à bloquer
  • Allow — Chemins à autoriser (override Disallow)
  • Crawl-delay — Délai entre les requêtes (ms)
  • Sitemap — Déclarer le sitemap

Patterns de chemin :

/admin              # Bloque /admin et tout son contenu
/search?            # ? = un caractère
/profile*.php       # * = plusieurs caractères
/*.php$             # $ = fin de string

Exemple simple :

User-agent: *
Disallow: /admin/
Disallow: /private/
Allow: /private/public.html

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

Directives principales

User-agent : spécifier le crawler

# S'applique à Google
User-agent: Googlebot
Disallow: /admin/

# S'applique à Bing
User-agent: Bingbot
Disallow: /

# S'applique à tous
User-agent: *
Disallow: /test/

Disallow : bloquer des chemins

User-agent: *
Disallow: /admin/           # Bloquer dossier admin
Disallow: /private/         # Bloquer dossier private
Disallow: /*.php            # Bloquer tous les .php
Disallow: /cgi-bin/         # Bloquer cgi scripts

Allow : autoriser dans une zone bloquée

User-agent: *
Disallow: /admin/
Allow: /admin/public/       # Exception : autoriser ce chemin

Crawl-delay et Request-rate

User-agent: *
Crawl-delay: 1              # Attendre 1 sec entre requêtes
Request-rate: 1/1s          # 1 requête par secondes

Sitemap : déclarer le plan du site

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

Exemples pratiques

Bloquer tout sauf homepage :

User-agent: *
Disallow: /

User-agent: Googlebot
Disallow:

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

Blog avec admin protégé :

User-agent: *
Allow: /blog/          # Autoriser blog
Allow: /public/        # Autoriser public
Disallow: /admin/      # Bloquer admin
Disallow: /private/    # Bloquer private
Disallow: /temp/       # Bloquer temporaire
Disallow: /*.pdf$      # Bloquer PDFs

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

E-commerce (site de vente) :

User-agent: *
Allow: /
Disallow: /admin/
Disallow: /cart/
Disallow: /user/orders/
Disallow: /search?
Disallow: /tag/
Disallow: /filter/

# Paramètres de session
Disallow: /*?*sid=

Crawl-delay: 1
Sitemap: https://example.com/sitemap.xml

Pour bloquer un crawler spécifique :

User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: *
Allow: /

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

Implémentation

Créer le fichier robots.txt :

  1. Créer un fichier texte nommé robots.txt
  2. Le placer à la racine : /robots.txt
  3. Ajouter les directives
  4. Sauvegarder (sans BOM UTF-8)

Vérifier depuis le navigateur :

https://example.com/robots.txt

# Devrait afficher le contenu textuel

Pour un site statique (HTML) :

# robots.txt
User-agent: *
Allow: /

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

Pour un WordPress :

User-agent: *
Allow: /
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-login.php

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

Pour un site sous .htaccess :

<Files robots.txt>
    Header set Cache-Control "public, max-age=604800"
</Files>

Tester avec les crawlers

Vérifier dans Google Search Console :

  1. Google Search Console → Settings
  2. Visit Search Console → Crawl → Robots.txt Tester
  3. Entrer un chemin pour tester
  4. Voir si c'est Allow ou Disallow

Commande curl pour tester :

$ curl https://example.com/robots.txt

$ # Vérifier le status HTTP
$ curl -I https://example.com/robots.txt

Erreurs courantes :

  • Retour 404 → robots.txt n'existe pas
  • Retour 500 → Erreur sur le serveur
  • Retour 200 → OK, fichier accessible

Bonnes pratiques

Ordonnage des règles :

  • Plus spécifique en premier
  • Appliquer Allow avant Disallow
  • Ne pas mélanger User-agents

Pour chaque User-agent :

User-agent: Googlebot
Disallow: /test/

User-agent: Bingbot
Disallow: /other/

User-agent: *
Disallow: /admin/

Production checklist :

  • Tester dans Search Console
  • Inclure le sitemap
  • Ne pas bloquer les ressources utiles (CSS, JS, images)
  • Revoir tous les 6 mois
  • Monitorer dans Analytics

Erreurs courantes

Bloquer accidentellement les ressources :

❌ Mauvais :
Disallow: /

✅ Bon :
User-agent: *
Allow: /

Mauvaise syntaxe :

❌ Mauvais :
disallow: /admin/               # Minuscule
User_agent: *                    # Underscore
Disallows: /admin/               # Pluriel

✅ Bon :
Disallow: /admin/               # Capital D
User-agent: *                    # Tiret -
Disallow: /admin/                # Singulier

Oublier que robots.txt n'est PAS de la sécurité :

  • robots.txt peut être ignoré par les crawlers malveillants
  • Pour vraiment bloquer : utiliser .htaccess ou htpasswd
  • robots.txt = guide, pas interdit

Bloquer Google intentionnellement

❌ Mauvais :
User-agent: Googlebot
Disallow: /

# Cela retire votre site de Google !

Outils de test

Testing robots.txt online :

  • Google Search Console — Robots.txt Tester
  • Bing Webmaster — Robots.txt Tester
  • Screaming Frog — Crawl analysis

Validation :

  • Accéder via navigateur : https://example.com/robots.txt
  • Status HTTP doit être 200
  • Pas d'erreur de syntaxe
Conclusion : robots.txt est un élément clé du SEO. Il guide les crawlers, économise votre budget de crawl et protège les zones sensibles. Testez régulièrement et maintenez-le à jour avec vos changements de structure.

Questions fréquentes

Le fichier robots.txt est un fichier texte placé à la racine du domaine (ex: https://example.com/robots.txt) qui implémente le Robots Exclusion Protocol. Il indique aux crawlers (Googlebot, Bingbot, etc.) quelles sections du site ils sont autorisés ou non à explorer. Il est important de comprendre que robots.txt contrôle l'accès au crawl, PAS à l'indexation : une page bloquée par Disallow peut quand même être indexée si Google en découvre l'URL via des backlinks. Pour empêcher l'indexation d'une page crawlable, utiliser la meta noindex dans le HTML. Le fichier est consulté à chaque session de crawl et sa modification prend effet dès que Googlebot le re-lit (généralement sous 24h).

Les directives essentielles sont : User-agent (spécifie le robot ciblé, * pour tous), Disallow (chemins interdits au crawl), Allow (exceptions dans une règle Disallow), Sitemap (URL du sitemap XML — très recommandé) et Crawl-delay (pause en secondes entre requêtes — respecté par Bingbot mais ignoré par Googlebot). Exemple concret pour protéger les pages d'admin et de test : User-agent: * / Disallow: /admin/ / Disallow: /staging/ / Disallow: /api/private/ / Allow: /api/public/ / Sitemap: https://example.com/sitemap.xml. Note : Googlebot ignore le Crawl-delay mais offre Google Search Console pour paramétrer la fréquence de crawl.

Les erreurs les plus fréquentes et dommageables incluent : Disallow: / (bloquer tout le site — fréquent lors de migrations ou déploiements de staging), oublier de vérifier robots.txt après migration d'hébergement (souvent écrasé), bloquer les fichiers CSS et JS nécessaires au rendu (Googlebot doit pouvoir les charger pour évaluer l'expérience utilisateur), et utiliser des chemins sensibles à la casse sans tenir compte que les URL Linux sont case-sensitive. Un audit via Google Search Console (onglet Exploration > Robots.txt) affiche les erreurs de syntaxe. L'outil "Test robots.txt" de la Google Search Console permet de simuler le comportement de Googlebot sur n'importe quelle URL avant de modifier le fichier.

Depuis 2023, les grands modèles de langage ont leurs propres user-agents : GPTBot (OpenAI), ClaudeBot (Anthropic), Google-Extended (données d'entraînement Google), CCBot (Common Crawl). On peut les bloquer sélectivement : User-agent: GPTBot / Disallow: / bloque OpenAI d'utiliser le contenu pour l'entraînement, tout en laissant Googlebot indexer le site. La stratégie dépend des objectifs : bloquer les crawlers d'entraînement protège le contenu propriétaire, mais autoriser GPTBot peut améliorer la visibilité dans ChatGPT Search. Certains sites choisissent de bloquer l'entraînement (Disallow: /) mais d'autoriser la recherche via des directives spécifiques quand les crawlers les supportent. Vérifier la liste officielle des user-agents sur les pages de documentation de chaque fournisseur.

Partager