Portrait Olivier Duffez

Olivier Duffez

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

Interdire l'indexation avec l'entête HTTP X-Robots-Tag

Pour bloquer l'indexation de certaines pages spécifiques d'un site, il suffit d'utiliser la balise meta robots noindex. Mais comment faire avec des documents qui ne sont pas au format HTML (documents PDF, audio, Word, Excel, Powerpoint, ... et pourquoi pas non plus des flux RSS/Atom) ? Google et Yahoo gèrent la directive X-Robots-Tag qui se déclare directement dans l'entête HTTP, ce qui le rend utilisable avec n'importe quel format de document. Voici quelques précisions sur cette fonctionnalité...

Article mis à jour le 21/08/2015 (ajout des exemples pour Apache), publié initialement le 13/12/2007

X-Robots-Tag
L'entête HTTP X-Robots-Tag peut servir au 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 2007 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 désormais la valeur du tag intitulé X-Robots-Tag

Valeurs possibles du tag X-Robots-Tag

Un peu comme la balise meta robots qui peut contenir plusieurs valeurs, sa version HTTP peut contenir les valeurs suivantes :

  • noindex : indique 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
  • nofollow : indique 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).
  • none : c'est identique à la combinaison noindex + nofollow
  • nosnippet : indique 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).
  • noarchive : indique 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).
  • notranslate : pour interdire qu'une version traduite de cette page soit proposée dans les résultats
  • noimageindex : pour interdire l'indexation des images situées dans la page
  • unavailable_after:date : indique au robot que la page ne doit pas ressortir dans les résultats après la date indiquée (au format RFC 850)

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. Depuis décembre 2007, Yahoo la supporte également.

Exemples

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

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 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 2010 21:42:43 GMT
(…)
X-Robots-Tag: noarchive
X-Robots-Tag: unavailable_after: 12 Jun 2015 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 2010 21:42:43 GMT
(…)
X-Robots-Tag: noarchive, unavailable_after: 12 Jun 2015 20:00:00 PST
(…)

X-Robots-Tag sur un serveur Apache

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).

Par exemple, pour ajouter une instruction X-Robots-Tag noindex, nofollow à la réponse HTTP de tous les fichiers .PDF d'un site, ajoutez l'extrait suivant dans le fichier .htaccess ou httpd.conf à la racine du site :

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

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) d'un site entier :

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

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

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 :

Egalement : 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"

Discussion dans le forum : X-Robots-Tag

Cet article vous a-t-il plu ?

Note : 4.3 (11 votes)
Cliquez pour voter !

Laisser un commentaire

Remarques :

  • Si vous souhaitez poser une question ou détailler un problème technique, il ne faut pas utiliser le formulaire ci-dessous qui est réservé aux avis. Posez votre question directement dans le forum Gmail de WebRankInfo. L'inscription est gratuite et immédiate.

  • En postant un avis, vous acceptez les CGU du site WebRankInfo. Si votre avis ne respecte pas ces règles, il pourra être refusé. Si vous indiquez votre adresse email, vous serez informé dès que votre avis aura été validé (ou refusé...) ; votre adresse ne sera pas utilisée pour vous envoyer des mailings et ne sera pas revendue ou cédée à des tiers.

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 ?

Répondre
Olivier Duffez

donne-moi un ou des exemples d'URI

Répondre
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

Répondre
Danny

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

Merci d'avance pour une réponse

Danny

Répondre
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.

Répondre