ITSkillsCenter
SEO & Référencement

Guide pratique : Le fichier robots.txt expliqué simplement

3 min de lecture

Pourquoi maîtriser robots.txt ?

Un robots.txt mal configuré peut désindexer tout votre site en quelques heures. Inversement, bien utilisé, il bloque les bots inutiles (scrapers, IA d’entraînement) et économise votre budget de crawl Google. C’est le premier fichier que regarde tout bot qui visite votre domaine.

Emplacement et syntaxe

Le fichier robots.txt se place à la racine du domaine : https://example.sn/robots.txt. Il n’est pas case-sensitive pour le nom mais l’est pour les chemins.

User-agent: *
Disallow: /wp-admin/
Disallow: /cart/
Disallow: /checkout/
Allow: /wp-admin/admin-ajax.php

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

Directives par bot

User-agent: Googlebot
Disallow: /admin/
Allow: /

User-agent: GPTBot
Disallow: /

User-agent: Claude-Web
Disallow: /

User-agent: bingbot
Crawl-delay: 10
Disallow: /search

User-agent: *
Disallow: /api/private/

Les User-agents à connaître

Moteurs:        Googlebot, Googlebot-Image, bingbot, DuckDuckBot, YandexBot, Baiduspider
IA scrapers:    GPTBot, ClaudeBot, Claude-Web, anthropic-ai, CCBot, Google-Extended, PerplexityBot
Réseaux:        facebookexternalhit, Twitterbot, LinkedInBot
SEO tools:      AhrefsBot, SemrushBot, MJ12bot, DotBot

Bloquer les IA de l’entraînement (tout en gardant Googlebot)

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: *
Allow: /

Wildcards et ancrage

User-agent: *
Disallow: /*.pdf$        # bloque tous les PDF
Disallow: /*?sessionid=  # bloque les URLs avec param sessionid
Disallow: /tmp/          # répertoire entier
Allow: /tmp/public/      # exception dans tmp

Servir robots.txt en Next.js

// app/robots.ts
import type { MetadataRoute } from "next";

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      { userAgent: "*", allow: "/", disallow: ["/api/", "/admin/"] },
      { userAgent: "GPTBot", disallow: "/" },
      { userAgent: "ClaudeBot", disallow: "/" },
    ],
    sitemap: "https://example.sn/sitemap.xml",
    host: "https://example.sn",
  };
}

Nginx qui réécrit dynamiquement

location = /robots.txt {
  default_type text/plain;
  return 200 "User-agent: *\nDisallow: /api/\nSitemap: https://$host/sitemap.xml\n";
}

Erreurs classiques

❌ Disallow: /                  # bloque tout le site (à faire en prod par erreur)
❌ Disallow: *                  # syntaxe invalide, ignorée
❌ Allow: / + Disallow: /       # ambiguïté
❌ Robots.txt invalide UTF-8    # encoder en UTF-8 sans BOM
❌ robots.txt > 500 KB           # Google ignore au-delà
❌ Redirection 301 de robots.txt # risque d'être ignoré

Tester avec Google

# Outil Testeur robots.txt (ex-Search Console, déprécié 2023)
# Actuellement: URL Inspection dans Search Console pour vérifier
# chaque URL individuellement

# Validation programmatique
curl -A "Mozilla/5.0 (compatible; Googlebot/2.1)" https://example.sn/robots.txt

# Test par Python (robotparser)
python - <<'EOF'
from urllib.robotparser import RobotFileParser
rp = RobotFileParser()
rp.set_url("https://example.sn/robots.txt")
rp.read()
print(rp.can_fetch("Googlebot", "https://example.sn/admin"))  # False
print(rp.can_fetch("*", "https://example.sn/produit/42"))     # True
EOF

Différence avec noindex

robots.txt Disallow: empêche le CRAWL (Google ne télécharge pas)
                     → l'URL peut quand même apparaître dans les résultats sans description

<meta name="robots" content="noindex">: interdit l'INDEXATION
                     → requiert que le bot puisse crawler la page pour voir le noindex !
                     → donc si on veut noindex, il faut PAS bloquer via robots.txt
                     → noindex est plus efficace pour masquer complètement

Règle: pour cacher une page des résultats, utiliser noindex et LAISSER le crawl.

Pour aller plus loin

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité