Entête HTTP X-Robots-Tag
Portrait Olivier Duffez

Olivier Duffez

Créateur de WebRankInfo,
consultant en référencement

Guide SEO de l'entête HTTP X-Robots-Tag

Ce dossier SEO vous explique à quoi sert et comment utiliser l'entête HTTP X-Robots-Tag (noindex, nofollow, etc.).

Article mis à jour le 29/07/2024, publié initialement le 13/12/2007

L'entête X-Robots-Tag en SEO

Définition du X-Robots-Tag

X-Robots-Tag permet de fournir des indications aux robots des moteurs de recherche qui le supportent, en utilisant l'entête HTTP. Il s'agit d'instructions pour gérer le crawl, l'indexation, le suivi des liens, l'apparence dans les SERP (snippet), etc. Cela ne permet pas de définir des redirections.

En fait ça ressemble aux balises meta, avec quelques différences, notamment :

  • X-Robots-Tag n'est pas situé dans une page HTML, il est envoyé par votre serveur
  • X-Robots-Tag est donc utile pour gérer des documents qui ne sont pas des pages HTML
  • X-Robots-Tag permet de définir des règles pour plein d'URL d'un seul coup

Si vous ne voyez pas de quoi il s'agit, lisez plus bas mes explications sur l'entête HTTP.

Comment mettre un X Robots Tag ?

Vous pouvez ajouter un X-Robots-Tag de plusieurs manières :

  • en utilisant un plugin sur votre CMS, par exemple Rank Math sur WordPress
  • en ajoutant des lignes dans un fichier de configuration serveur (Apache ou autre)
  • en ajoutant du code PHP

Je fournis plein d'exemples concrets plus loin dans ce dossier.

Valeurs possibles du tag X-Robots-Tag

Un peu comme la balise meta robots, sa version HTTP peut contenir plusieurs valeurs. Voici mon tableau récapitulatif :

Valeur possibleExplications
noindexindique au robot qu'il ne faut pas indexer la page. Cela ne signifie pas que le robot ne va pas la crawler : pour cela il faut utiliser le fichier robots.txt.
nofollowindique au robot qu'il ne faut pas suivre les liens dans la page. Cela signifie que Google n'ira pas crawler les pages liées par la page contenant cette balise meta robots. Même si Google ne le précise pas dans son article, les moteurs ne tiendront pas non plus compte des liens présents sur la page dans leur algo (par exemple l'algorithme du PageRank)
noneidentique à la combinaison noindex + nofollow
nosnippetindique au robot qu'il ne faut pas afficher de descriptif (snippet) dans la page de résultats. J'ai du mal à voir l'intérêt pour un webmaster d'utiliser cette possibilité puisque ce descriptif permet d'inciter l'internaute à cliquer sur le résultat (peut-être qu'il existe des cas où le descriptif créé par le moteur n'est pas assez pertinent aux yeux du webmaster)
noarchiveindique au robot qu'il ne faut pas laisser l'accès à la version en cache. Le lien "En cache" dans la page de résultats ne sera donc pas affiché. Ceci peut servir à ceux qui passent leurs contenu d'une version publique accessible à une version archivée payante (sites de journaux par exemple)
notranslateinterdit qu'une version traduite de cette page soit proposée dans les résultats
noimageindexinterdit l'indexation des images situées dans la page
unavailable_after:dateindique au robot que la page ne doit pas ressortir dans les résultats après la date indiquée (au format RFC 850). Exemple : <meta name="robots" content="unavailable_after: 2025-05-28">
nositelinkssearchboxinterdit l'affichage du champ de recherche sitelinks dans les résultats de recherche de cette page. Si vous ne spécifiez pas cette règle, Google peut générer un champ de recherche spécifique à votre site dans les résultats de recherche, ainsi que d'autres liens directs vers votre site.
indexifembeddedGoogle est autorisé à indexer le contenu d'une page si celle-ci est incorporée dans une autre page par le biais d'iframes ou de balises HTML similaires, en dépit d'une règle de noindex.
indexifembedded n'a d'effet que s'il est accompagné de noindex.
max-snippet: [nombre]Définit la taille maximale ([nombre] de caractères) dans l'extrait de cette page dans les résultats de recherche
max-image-preview: [valeur]Définit la taille maximale de l'aperçu de l'image de cette page dans les résultats de recherche
max-video-preview: [nombre]Définit la durée maximale ([nombre] secondes) pour l'extrait vidéo de cette page dans les résultats de recherche
Valeur possibles pour X-Robots-Tag

Tout comme la balise meta, il est possible de combiner plusieurs valeurs en les séparant par des virgules, par exemple : X-Robots-Tag: noarchive, nosnippet.

Cette directive HTTP a été introduite par Google en juillet 2007. Elle est également supportée par Bing.

À quoi ça ressemble le X-Robots-Tag ?

Voici un exemple d'entête HTTP avec 1 ligne X Robots Tag :

HTTP/1.1 200 OK
Date: Tue, 25 May 2024 21:42:43 GMT
(…)
X-Robots-Tag: noindex
(…)

Vous pouvez fournir plusieurs lignes X-Robots-Tag :

HTTP/1.1 200 OK
Date: Tue, 25 May 2024 21:42:43 GMT
(…)
X-Robots-Tag: noarchive
X-Robots-Tag: unavailable_after: 12 Jun 2025 20:00:00 PST

(…)

Vous pouvez aussi regrouper les valeurs dans une seule ligne, séparées par une(des) virgule(s) :

HTTP/1.1 200 OK
Date: Tue, 25 May 2024 21:42:43 GMT
(…)
X-Robots-Tag: noarchive, unavailable_after: 12 Jun 2025 20:00:00 PST
(…)

X-Robots-Tag sur un serveur Apache : exemples pratiques

Il existe des bouts de code très pratiques, à mettre dans le fichier .htaccess concerné (souvent à la racine du site, mais éventuellement directement dans un répertoire précis). La seule difficulté est d'éditer ce fichier.

Interdire l'indexation des PDF avec X-Robots-Tag

Pour interdire l'indexation de tous vos PDF, ou pour les désindexer, il suffit d'ajouter une instruction X-Robots-Tag noindex à la réponse HTTP de tous les fichiers .PDF. Ajoutez l'extrait suivant dans le fichier .htaccess ou httpd.conf à la racine du site :

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

A savoir : la commande filetype:pdf dans Google limite la recherche aux fichiers PDF.

Interdire l'indexation des images avec X-Robots-Tag

Vous pouvez utiliser l'en-tête X-Robots-Tag pour les fichiers qui ne sont pas des HTML, comme les fichiers image, qui ne permettent pas d'utiliser des balises Meta pour les robots. L'exemple ci-dessous explique comment ajouter une instruction X-Robots-Tag noindex pour les fichiers image (.png, .jpeg, .jpg, .gif, .webp) d'un site entier :

<Files ~ "\.(png|jpe?g|gif|webp)$">
Header set X-Robots-Tag "noindex"
</Files>

Désindexer des pages après un piratage, grâce à X-Robots-Tag

Si votre site a été piraté et que de nombreuses URL ont été créées et certaines indexées, alors le header X-Robots-Tag est une solution efficace pour les désindexer. Suivez ces étapes :

  1. identifiez quelque chose qui permet de repérer ces URL. On appelle ça un motif (pattern en anglais)
  2. créez une regex (expression régulière) pour cibler ces URL en fonction de ce motif
  3. ajoutez une instruction X-Robots-Tag "noindex" dans le fichier .htaccess (ou autre, selon votre serveur)
  4. testez une des URL concernées pour vérifier que ce noindex est présent ET qu'elle est autorisée au crawl (il ne faut pas les interdire dans le robots.txt)

Supposons que plein d'URL contenant "buy" ou "cheap" aient été créées, et que vous vouliez les désindexer. Voici le code à utiliser :

<Files ~ "\b(buy|cheap)\b">
Header set X-Robots-Tag "noindex"
</Files>

Attention à bien tester votre code ! N'oubliez pas que des URL valides peuvent aussi correspondre, ce qui serait grave. Demandez de l'aide dans le forum .htaccess de WebRankInfo.

X-Robots-Tag sur un serveur Nginx

Tout ce qui a été indiqué pour Apache peut être fait sur un serveur Nginx, en adaptant le code.

Pour définir l'en-tête HTTP X-Robots-Tag sur un serveur Nginx, voici les étapes que je vous conseille :

  1. Ouvrez le fichier de configuration Nginx approprié (généralement situé dans /etc/nginx/sites-available/).
  2. Dans le bloc server ou location pertinent, ajoutez la directive add_header pour définir l'en-tête X-Robots-Tag. Voici quelques exemples :

Pour appliquer le X-Robots-Tag à l'ensemble du site :

server {
    ...
    add_header X-Robots-Tag "noindex, nofollow ;
    ...
}

Pour appliquer le X-Robots-Tag à un répertoire spécifique :

location /dossier-prive/ {
    add_header X-Robots-Tag "noindex, nofollow ;
}

Pour appliquer le X-Robots-Tag à certains types de fichiers :

location ~* \.(pdf|doc|docx)$ {
    add_header X-Robots-Tag "noindex ;
}
  1. Après avoir effectué les modifications, sauvegardez le fichier et testez la configuration Nginx :
nginx -t
  1. Si le test est réussi, redémarrez le service Nginx pour appliquer les changements :
sudo systemctl restart nginx

N'oubliez pas de vérifier que l'en-tête est correctement défini en utilisant des outils d'analyse d'en-têtes HTTP après avoir effectué ces modifications.

Vos questions

Comment vérifier si un site utilise X-Robots-Tag noindex ?

Pour savoir si X-Robots-Tag noindex est présent sur une page (URL), il faut utiliser un outil qui analyse les entêtes HTTP. Essayez celui de WebRankInfo ou bien une extension Chrome ou Firefox comme Web Developer, Detailed SEO, etc.

Que faire en cas de noindex détecté dans l'en-tête http x-robots-tag ?

Si vous voyez du noindex dans X-Robots-Tag, alors l'URL concernée n'est pas indexable. Si elle était indexée, elle sera désindexée. Vous devez réfléchir si vous souhaitez vraiment que cette URL ne soit pas indexée.

Comment supprimer l'en-tête HTTP X-robots-tag ?

Pour supprimer cet entête, il faut identifier ce qui le génère. Regardez dans la configuration de votre serveur, dans vos fichiers PHP, dans votre CMS, dans les plugins de votre CMS (Yoast, Rank Math, etc.). Retirez ensuite l'instruction et vérifiez que tout est OK en utilisant un outil.

Détails sur l'entête HTTP en SEO

L'entête HTTP, qu'est-ce que c'est ?

Il s'agit d'informations envoyées par le serveur web à celui qui cherche à accéder à un document (que ce soit le navigateur d'un internaute, le robot d'un moteur de recherche ou n'importe quoi d'autre). Une de ces informations est le code de statut HTTP, dont les valeurs les plus connues sont les suivantes :

  • 200 : le document a été trouvé, il est bien disponible
  • 301 : le document n'est plus disponible à l'adresse demandée, il a définitivement changé d'adresse (c'est-à-dire d'URL). On appelle ça une redirection permanente.
  • 302 : le document n'est plus disponible à l'adresse demandée, il a temporairement changé d'adresse (c'est-à-dire d'URL). On appelle ça une redirection temporaire.
  • 404 : le document est introuvable à l'adresse indiquée

Il y a bien d'autres codes (consultez la liste des codes HTTP si vous voulez plus de détails) mais l'entête HTTP peut contenir plein d'autres informations :

  • le nom et la version du serveur web (exemple : Server: Apache/2.0.59 (Unix))
  • la date de dernière modification du document (exemple : Last-Modified: Wed, 26 Sep 2023 21:19:04 GMT)
  • la taille du documents, en octets (exemple : Content-Length: 7854)
  • le type de document (exemples : Content-Type: text/html ou Content-Type: image/gif)
  • et la valeur du tag intitulé X-Robots-Tag

Comment vérifier le contenu de l'entête HTTP ?

Si vous souhaitez voir le contenu de l'entête HTTP, par exemple pour vérifier que votre implémentation de X-Robots-Tag est correcte, il suffit d'utiliser un des nombreux outils à votre disposition :

Balise canonique dans l'entête HTTP

Sachez que de façon similaire, il est également possible de définir une URL canonique par le biais d'un entête HTTP. En résumé, il faut utiliser le format  suivant :

Link: <URL>; rel="canonical"

Par exemple :

Link: <https://www.webrankinfo.com/dossiers/techniques/url-canonique>; rel="canonical"

Ressources

Discussion dans le forum : X-Robots-Tag

Sources : doc de Google

Cet article vous a-t-il plu ?

Note : 4.1 (14 votes)
Cliquez pour voter !

Si vous avez des questions, posez-les dans le forum WebRankInfo.

Si vous préférez du consulting, j'en propose sur mon site WebRankExpert.

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO

6 commentaires

TheNext

Olivier, merci pour l'article. As-tu des exemples de x-tobots tag via Htaccess (Apache 2.4) pour désindexer des URL avec du query string par exemple ?

Olivier Duffez

donne-moi un ou des exemples d'URI

Fred

Bonjour,
Est ce que l'entete x-robots-tag NOINDEX est il pris en compte par les moteurs de recherche si dans le même temps il y a un code HTTP différent de 200 (par exemple 404 ou 410) ?
Merci

Olivier Duffez

Non, il est ignoré (source Google)

Danny

Peut-on directement mettre cela dans apache au lieu de passer par un fichier php ?

Merci d'avance pour une réponse

Danny

Victor BRITO

Évidemment, il serait bon d'indiquer comment ajouter cette directive dans les fichiers. ;)

En PHP, il doit en être comme suit :
<?php header ('X-Robots-Tag: noindex,nofollow,noarchive'); ?>
En veillant à ce que rien ne soit généré avant header (), bien entendu.

Les commentaires sont fermés