← Retour au blog Indexation et exploration

X-Robots-Tag : syntaxe, cas d'usage et vérification de l'en-tête

X-Robots-Tag : syntaxe, cas d'usage et vérification de l'en-tête

Le X-Robots-Tag est un en-tête de réponse HTTP qui transmet aux moteurs les mêmes règles que la balise meta robots, comme noindex ou nofollow, sans toucher au HTML. C'est la seule solution pour les fichiers sans <head>, comme les PDF ou les images, et il n'apparaît jamais dans le code source : on le vérifie avec curl -I ou les DevTools.

À quoi ressemble l'en-tête

Une réponse qui le contient se présente ainsi :

HTTP/2 200
content-type: application/pdf
x-robots-tag: noindex, nofollow

Vous pouvez placer plusieurs directives dans un même en-tête, séparées par des virgules, ou envoyer l'en-tête plusieurs fois. Les plus utiles :

Une directive peut aussi viser un seul robot, nommé en premier : X-Robots-Tag: googlebot: noindex. Sans nom, elle s'applique à tous. En cas de conflit, Google retient la règle la plus restrictive.

Quand le préférer à la meta robots

La balise meta exige une page HTML modifiable. L'en-tête fonctionne sur tout ce que le serveur renvoie, ce qui en fait l'outil adapté aux PDF, fichiers Word, images, flux et endpoints JSON. Cas classique : une grille tarifaire en PDF qui se classe devant la fiche produit dont elle dépend.

Il sert aussi quand vous avez la main sur la configuration serveur mais pas sur les templates, ou quand une règle doit couvrir tout un répertoire.

Il ne bloque pas l'exploration. Google doit récupérer l'URL pour lire l'en-tête : si le robots.txt l'interdit, le noindex n'est jamais vu. Notre guide pour vérifier le robots.txt traite ce point.

Le configurer sur Apache, nginx et un CDN

Sur Apache avec mod_headers, dans le .htaccess ou le vhost :

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

Sur nginx :

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

Un piège nginx : un add_header dans un bloc location remplace les add_header hérités du bloc server. Sur un CDN ou une plateforme d'hébergement, le même en-tête passe par les règles d'en-têtes de réponse, par exemple les Transform Rules de Cloudflare, le fichier _headers de Netlify ou la clé headers de vercel.json.

Comment le vérifier

En ligne de commande :

curl -sI https://exemple.fr/fichier.pdf | grep -i x-robots-tag
curl -sI -A "Googlebot" https://exemple.fr/ | grep -i x-robots-tag

La deuxième ligne se présente comme Googlebot et révèle les règles qui ne visent que les robots. Dans les DevTools de Chrome, ouvrez l'onglet Network, rechargez, cliquez sur le document et lisez les Response Headers. Dans la Search Console, l'inspection d'URL cite l'en-tête comme motif quand il bloque l'indexation, à la ligne "Indexation autorisée ?".

Les erreurs qui désindexent tout un site

Le grand classique : l'en-tête resté de la préproduction. Quelqu'un ajoute Header set X-Robots-Tag "noindex" pour garder le site de test hors de Google, et la configuration part en production avec la mise en ligne. Rien dans le HTML ne le trahit. Le guide pour repérer un noindex en production passe en revue les cas habituels.

Vient ensuite la règle trop large : un motif FilesMatch prévu pour les PDF qui capture toutes les URL, un en-tête posé au niveau du serveur au lieu d'une seule location, ou une règle CDN appliquée à toute la zone plutôt qu'à un chemin.

Restent les signaux contradictoires. Une page avec <meta name="robots" content="index"> et un en-tête X-Robots-Tag: noindex reçoit le noindex, car la règle la plus restrictive l'emporte. Le guide de la balise noindex explique comment Google combine les deux.

Une alerte quand un noindex apparaît dans l'en-tête

Le scanner SEO de Deltio lit les en-têtes de réponse en plus du HTML sur chaque URL scannée. Il cherche le noindex dans les balises meta robots et googlebot et dans l'en-tête X-Robots-Tag, puis compare chaque scan au précédent. Quand une page indexable se met à renvoyer noindex, vous recevez une alerte par e-mail ou sur Slack. Les scans tournent automatiquement, avec des scans manuels en plus (3 par jour sur Starter).

L'alerte porte sur le noindex. Pour les autres directives, curl reste la référence. Starter coûte £24 par mois, £20 en facturation annuelle, et vous pouvez l'essayer gratuitement 14 jours.

Questions fréquentes

Faut-il préférer le X-Robots-Tag ou la meta robots ?
Pour Google, l'effet est le même. La balise meta est plus simple pour les pages HTML gérées dans un CMS, tandis que l'en-tête est la seule option pour les PDF, images et autres fichiers non HTML, et convient aux règles appliquées à des répertoires entiers depuis le serveur.
Peut-on mettre un noindex dans le robots.txt ?
Non. Google ne prend plus en charge les règles noindex dans le robots.txt depuis 2019. Pour exclure une URL de l'index, utilisez la meta robots ou l'en-tête X-Robots-Tag, et laissez le robots.txt autoriser l'exploration de l'URL pour que Google lise la directive.
Bing prend-il en charge l'en-tête X-Robots-Tag ?
Oui. Bing lit le X-Robots-Tag et applique les directives courantes comme noindex et nofollow. Les directives adressées à un user agent précis, comme googlebot, ne concernent que ce robot.
Comment retirer rapidement un PDF de Google ?
Servez le PDF avec un en-tête X-Robots-Tag: noindex et attendez que Google l'explore à nouveau. S'il doit disparaître plus vite, l'outil Suppressions de la Search Console le masque pendant environ six mois, le temps que le noindex agisse.
Deltio me prévient-il si un noindex apparaît dans le X-Robots-Tag ?
Oui. Le scanner SEO de Deltio contrôle l'en-tête X-Robots-Tag et les balises meta robots sur chaque URL scannée et compare les scans successifs. Si une page se met à renvoyer noindex, il envoie une alerte par e-mail ou sur Slack.