Configurer le fichier robots.txt pour guider les crawlers (Google, Bing) sur votre site et améliorer l'indexation SEO.
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.
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 à bloquerAllow— 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 :
- Créer un fichier texte nommé
robots.txt - Le placer à la racine :
/robots.txt - Ajouter les directives
- 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 :
- Google Search Console → Settings
- Visit
Search Console → Crawl → Robots.txt Tester - Entrer un chemin pour tester
- Voir si c'est
AllowouDisallow
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