Apprendre .htaccess : Désindexation Web
Le fichier .htaccess permet de déclarer des règles d'indexation au niveau du site web ou d'un répertoire spécifique.
Pourquoi désindexer des pages web ?
Il y a plusieurs raisons justifiant le souhait d’empêcher l’indexation des pages d’un site web :
- On accède au site par lien direct (type intranet)
- Le site possède des pages d’administration privées
- Certaines pages du site ne présentent pas de grand intérêt
- Certaines pages sont pauvres en contenu et pourraient nuire au SEO (Cf. algorithme Panda de Google)
- Certaines pages contiennent des contenus dupliqués (Cf. algorithme Panda de Google)
- Ne pas indexer un certain type de fichier (PDF…)
- Etc.
Désindexer un fichier via HTML
Pour désindexer une page web, on utilise la balise HTML <meta>
:
<meta name="robots" content="noindex">
Si cette balise s’avère très efficace, elle présente 2 inconvénients majeurs :
- Pour désindexer un répertoire complet, il faudrait l’ajouter sur l’ensemble des pages HTML du dossier.
- Elle ne rend pas possible la désindexation de certains types de fichiers :
.pdf
,.jpg
, etc.
Désindexation multiple via .htaccess
Module headers
Il est possible de désindexer plusieurs fichiers d’un site web en contrôlant et modifiant les en-têtes de requêtes et de réponses HTTP.
Le module mod_headers
d’Apache contient 2 directives :
RequestHeader
: configure les en-têtes d’une requête HTTPHeader
: configure les en-têtes d’une réponse HTTP
Pour désindexer des pages, c’est donc logiquement vers cette seconde directive Header
que nous nous orienterons.
La directive Header set X-Robots-Tag
permet de définir un en-tête HTTP avec des valeurs identiques à celles de la balise HTML meta
.
Désindexation totale
L’extrait du fichier 📄 .htaccess
à placer directement dans le répertoire concerné, permet de désindexer tous les fichiers qu’il contient.
# Empêcher l'indexation par les robots
Header set X-Robots-Tag "noindex"
Désindexation ciblée avec <Files>
et <FilesMatch>
L’usage des balises <Files>
et <FilesMatch>
permet de désindexer des fichiers ciblés :
<Files>
: pour désindexer un fichier unique nommé<FilesMatch>
: pour désindexer un ensemble de fichier ciblé par une expression régulière
Voici un extrait du fichier 📄 .htaccess
pour désindexer le fichier 📄 demo.html
d’un site :
<Files demo.html>
Header set X-Robots-Tag "noindex, nofollow"
</Files>
Voici un extrait du fichier 📄 .htaccess
pour désindexer les fichiers PDF d’un site :
<FilesMatch ~ "\.pdf$">
Header set X-Robots-Tag "noindex, nofollow"
</FilesMatch>
Voici un extrait du fichier 📄 .htaccess
pour désindexer les images (.png
, .jpeg
, .jpg
, .gif
) d’un site :
<FilesMatch ~ "\.(png|jpe?g|gif)$">
Header set X-Robots-Tag "noindex"
</FilesMatch>