En-tête HTTP X-Robots-Tag

Note : l'en-tête HTTP X-Robots-Tag n'a pas les mêmes objectifs, les mêmes effets et ne s'implémente pas de la même manière que le fichier robots.txt. Néanmoins, ces deux méthodes étant très liées, nous les expliquons toutes les deux sur ce site.

Pour bloquer l'exploration et l'indexation de certaines pages ou répertoires spécifiques d'un site, il existe deux méthodes : le fichier robots.txt pour contrôler l'exploration et la balise meta robots pour l'indexation.

Au delà de ces deux méthodes, les moteurs de recherche Google et Yahoo! supportent l'en-tête HTTP X-Robots-Tag depuis 2007. Cet en-tête HTTP permet de mettre en place les mêmes directives qu'avec la balise meta robots mais directement dans l'en-tête HTTP renvoyée par le serveur.

Cet en-tête est particulièrement utile pour controler l'indexation des documents qui ne sont pas en HTML (PDF, JPG, Word, Excel, etc).

Exemples d'utilisation de l'en-tête HTTP X-Robots-Tag

Les différentes valeurs possibles sont identiques à celles disponibles avec la balise meta robots.

Si vous voulez bloquer l'indexation d'un document que vous avez généré en PHP, il suffit d'utiliser l'en-tête X-Robots-Tag de cette manière :

header("X-Robots-Tag: noindex", true);

Si vous voulez également empêcher les moteurs de recherche de parcourir les liens de la page ou du document :

header("X-Robots-Tag: noindex, nofollow", true);

En revanche, gérer cet en-tête HTTP directement en PHP n'est probablement pas la solution la plus pratique. Il est également possible d'implémenter le X-Robots-Tag via le fichier .htaccess d'Apache.

Si vous souhaitez bloquer l'indexation et l'archivage de tous les fichiers .doc par les moteurs de recherche, il suffit de compléter le fichier .htaccess de cette façon :

<FilesMatch "\.doc$">
Header set X-Robots-Tag "noindex, noarchive"
</Files>

Si vous souhaitez faire la même chose mais pour les PDF également :

<FilesMatch "\.(doc|pdf)$">
Header set X-Robots-Tag "noindex, noarchive"
</Files>

Contrôler le contenu de l'en-tête HTTP

Si vous souhaitez contrôler le contenu de l'en-tête HTTP et vérifier que le X-Robots-Tag est bien présent, vous pouvez utiliser des outils en ligne comme httpstatus.io.