SeAudit
Tous les articles
SEO technique·8 min·2026-08-25

Meta robots et X-Robots-Tag en 2026 : noindex, nofollow sans erreur

Confondre robots.txt et balise noindex peut désindexer des pages entières sans prévenir. Guide complet des directives meta robots et X-Robots-Tag, du piège Disallow+noindex, et de l'impact GEO sur les crawlers IA.

Illustration flat-design sur fond beige clair avec jauges et interrupteurs abstraits en encre sombre et accent violet, représentation abstraite du contrôle d'indexation d'un site

Une page peut être parfaitement crawlée, bien maillée et rapide, et disparaître de Google parce qu'une balise mal posée lui dit de ne pas s'indexer. Confondre robots.txt, balise meta robots et header X-Robots-Tag est l'une des causes les plus fréquentes de désindexation accidentelle qu'on croise en auditant des sites SaaS et e-commerce. Ce guide clarifie les trois mécanismes, liste les directives qui comptent vraiment en 2026, détaille le piège n°1 qui fait disparaître des pages sans que personne ne comprenne pourquoi, et répond à la question GEO : est-ce que GPTBot et ClaudeBot obéissent aux mêmes règles que Googlebot ?

Meta robots, X-Robots-Tag, robots.txt : trois outils, une confusion permanente

Trois mécanismes, trois niveaux d'action :

MécanismeContrôle quoiFonctionne sur
robots.txtFichier à la racineLe crawl (accès du bot)Tout le site
Balise meta robots<head> HTMLL'indexation et l'affichage SERPPages HTML uniquement
X-Robots-TagHeader HTTPL'indexation et l'affichage SERPHTML + fichiers non-HTML (PDF, images, JSON)

Le point que la majorité des sites ratent : robots.txt bloque l'accès du bot, mais ne garantit pas qu'une URL reste hors de l'index. Si des liens externes pointent vers une page en Disallow, Google peut l'indexer quand même, sans extrait de contenu, juste l'URL nue. Pour retirer vraiment une page des résultats, il faut la directive noindex, et pour que Google la voie, il faut que le bot puisse d'abord crawler la page. Les deux logiques s'opposent si tu ne les séquences pas correctement.

Les directives qui comptent en 2026

La balise meta robots et le header X-Robots-Tag partagent le même vocabulaire de directives, combinables entre elles par des virgules :

DirectiveEffet
index / noindexAutorise / interdit l'indexation (défaut : index)
follow / nofollowAutorise / interdit de suivre tous les liens de la page (défaut : follow)
noarchiveInterdit la mise en cache visible dans les résultats
nosnippetMasque l'extrait texte et vidéo dans les résultats, bloque aussi la citation en AI Overviews
max-snippet:[n]Limite l'extrait à n caractères (-1 = illimité)
max-image-preview:none|standard|largeContrôle la taille de l'aperçu image
max-video-preview:[n]Limite la durée de l'aperçu vidéo en secondes
noimageindexEmpêche l'indexation des images présentes sur la page
notranslateEmpêche Google de proposer une traduction automatique
unavailable_after:[date]Désindexe automatiquement la page après une date donnée

La balise meta robots : syntaxe et implémentation

En HTML brut, la balise se place dans le <head> :

<meta name="robots" content="noindex, follow" />

Sur Next.js (App Router), ça se déclare directement dans les metadata de la page, versionné avec le reste du code :

export const metadata = {
  robots: { index: false, follow: true },
};

Sur WordPress, Yoast SEO ou Rank Math exposent un simple toggle "Autoriser les moteurs de recherche à afficher cette page dans les résultats" par article, catégorie ou type de contenu. Sur Shopify ou Webflow, le contrôle passe par les réglages SEO natifs de la page, la balise n'a pas besoin d'être éditée à la main.

X-Robots-Tag : quand la balise HTML ne suffit pas

Un PDF, une image ou un fichier JSON n'a pas de <head>. Impossible d'y glisser une balise meta robots. Pour ces ressources, la seule option est le header HTTP X-Robots-Tag, envoyé par le serveur avant même que le contenu soit chargé.

Nginx :

location ~* \.pdf$ {
  add_header X-Robots-Tag "noindex, nofollow";
}

Apache (.htaccess) :

<FilesMatch "\.pdf$">
  Header set X-Robots-Tag "noindex"
</FilesMatch>

Next.js (next.config) :

async headers() {
  return [{ source: "/(.*\.pdf)", headers: [{ key: "X-Robots-Tag", value: "noindex" }] }];
}

Cas concret croisé en audit : un site e-commerce qui exportait ses fiches produit en PDF pour le service client s'est retrouvé avec plus de 4 000 PDF indexés par Google, dupliquant le contenu des pages produit et diluant leur autorité thématique. Un simple X-Robots-Tag noindex sur /exports/*.pdf a suffi à nettoyer l'index en trois semaines, sans toucher une ligne de HTML ni perdre de trafic sur les pages produit elles-mêmes. Le budget de crawl libéré a même accéléré le passage de Googlebot sur les nouvelles fiches.

Le piège n°1 : Disallow + noindex, le combo qui casse tout

C'est l'erreur la plus fréquente et la plus contre-intuitive du sujet. La séquence catastrophe :

  1. Une page thin content ou obsolète existe encore sur le site
  2. Tu ajoutes noindex dans son <head> pour la sortir de l'index
  3. Tu ajoutes aussi la page au Disallow du robots.txt, "pour être sûr"
  4. Résultat : Googlebot ne peut plus crawler la page, donc ne voit jamais le noindex, donc la page reste indexée, parfois pendant des mois, avec un simple "Aucune information n'est disponible pour cette page" en SERP

La règle : jamais les deux directives en même temps sur la même URL. Séquence correcte :

  1. Vérifie que le robots.txt autorise le crawl de la page
  2. Ajoute noindex (balise ou header)
  3. Attends la désindexation, confirmée dans Search Console → Inspection d'URL → "Exclue par la balise 'noindex'"
  4. Seulement à ce moment-là, si tu veux aussi économiser du budget crawl sur cette URL, ajoute le Disallow

Sur les audits SeAudit, ce conflit apparaît sur une part significative des sites e-commerce et SaaS contrôlés, presque toujours sur des pages de filtres, de résultats de recherche interne, ou d'anciennes landing pages jamais nettoyées après une campagne.

L'angle GEO : les crawlers IA respectent-ils tes directives ?

GPTBot, ClaudeBot, PerplexityBot et Google-Extended déclarent tous respecter robots.txt pour le crawl. Mais la balise meta robots classique n'a pas été conçue à l'origine pour ces moteurs, elle cible Googlebot et les moteurs de recherche traditionnels. En pratique en 2026 :

  • Bloquer un crawler IA se fait via robots.txt (User-agent: GPTBot puis Disallow: /), pas via meta robots
  • nosnippet a un effet documenté par Google : une page qui porte cette directive ne peut pas apparaître comme source dans les AI Overviews, même si elle reste indexée normalement dans les résultats classiques
  • Il n'existe à ce jour aucune directive standardisée équivalente à noindex qui s'adresserait spécifiquement aux moteurs IA en dehors des AI Overviews, le vrai levier de contrôle GEO reste le robots.txt par user-agent

Si ta stratégie GEO vise à être cité par ChatGPT ou Perplexity, vérifie que tu n'as pas de nosnippet qui traîne sur tes pages piliers : c'est l'un des blocages les plus silencieux qu'on trouve en audit, souvent hérité d'un plugin SEO mal configuré, et qui n'a aucun rapport avec un problème de contenu.

Pages en JavaScript : attention au noindex ajouté trop tard

Sur un site en rendu client (React sans SSR, certains setups SPA), si le noindex est injecté après le montage du composant, Googlebot lit le HTML brut au premier passage, puis attend un second passage de rendu pour voir les changements du DOM, un délai qui peut aller de plusieurs jours à plusieurs semaines. Résultat : une page censée disparaître de l'index continue d'apparaître dans les résultats pendant des semaines. La seule option fiable reste le rendu côté serveur (SSR/SSG), qui inclut la balise directement dans le HTML de la première réponse.

Comment vérifier tes directives en 5 minutes

  1. Balise meta robots : curl -s https://tonsite.com/page | grep -i 'name="robots"'
  2. Header X-Robots-Tag : curl -sI https://tonsite.com/fichier.pdf | grep -i x-robots-tag
  3. Statut d'indexation réel : Search Console → Inspection d'URL → onglet "Couverture"
  4. Vue d'ensemble automatisée : l'audit SeAudit scanne noindex, nofollow, X-Robots-Tag et les conflits robots.txt sur l'intégralité du site en une passe, avec le détail par page dans le rapport complet

À retenir

  • robots.txt contrôle le crawl, meta robots et X-Robots-Tag contrôlent l'indexation : ce ne sont pas des synonymes
  • Jamais Disallow + noindex sur la même page en même temps : Google doit crawler la page pour voir le noindex
  • X-Robots-Tag est la seule option pour désindexer des fichiers non-HTML (PDF, images, JSON)
  • nosnippet bloque la citation en AI Overviews, même si la page reste indexée classiquement
  • Sur du JS côté client, seul le SSR/SSG garantit que le noindex soit vu dès le premier passage de Googlebot

FAQ

Quelle est la différence entre robots.txt et la balise noindex ?

robots.txt empêche le crawl, le bot n'accède pas à la page. La balise noindex empêche l'indexation, mais suppose que le bot puisse d'abord crawler la page pour la lire. Utiliser les deux ensemble sur la même URL empêche Google de voir le noindex, ce qui peut laisser la page indexée indéfiniment.

Comment bloquer l'indexation d'un PDF ?

Un PDF n'a pas de <head> HTML, donc pas de balise meta robots possible. La seule solution est le header HTTP X-Robots-Tag, configuré au niveau du serveur (Nginx, Apache, ou middleware Next.js) pour renvoyer X-Robots-Tag: noindex sur ce type de fichier.

Est-ce que noindex agit immédiatement ?

Non. Google doit re-crawler la page pour lire la nouvelle directive, puis la désindexer. Ce délai varie généralement de quelques jours à plusieurs semaines selon la fréquence de crawl de la page. Pour accélérer le processus, demande une nouvelle indexation via Search Console après avoir ajouté le noindex.

Le nofollow sur une page bloque-t-il tous les liens qu'elle contient ?

Oui, le nofollow au niveau de la balise meta robots s'applique à tous les liens de la page, contrairement au rel="nofollow" posé sur un lien individuel qui ne concerne que ce lien précis.

Les crawlers IA comme GPTBot respectent-ils la balise noindex ?

Leur comportement documenté porte surtout sur robots.txt, qu'ils déclarent tous respecter pour le crawl. La balise noindex classique reste avant tout pensée pour les moteurs de recherche traditionnels. Pour contrôler spécifiquement l'accès des crawlers IA, robots.txt avec des règles par user-agent (GPTBot, ClaudeBot, PerplexityBot) reste le levier le plus fiable.


Un conflit robots.txt/noindex peut faire disparaître des dizaines de pages sans que tu comprennes pourquoi. Lance ton audit gratuit SeAudit pour détecter ces conflits sur l'ensemble de ton site, ou passe au rapport complet pour un plan de correction priorisé page par page.

Reste visible dans l'IA et sur Google — 1 quick-win par semaine.

Chaque semaine, 1 article SEO + GEO tactique + 1 quick-win à appliquer cette semaine sur ton site. Pas de blabla, pas de cross-sell agressif.

Aucun spam. Désinscription en 1 clic. RGPD ✓