36

Les en-têtes HTTP ou comment maîtriser son indexation sur Google

googleBot HeaderVoici un petit article sur l'en-tête X-Robot-Tag et l'en-tête Link rel=canonical.
X-Robot-Tag pour simplifier, c'est l'équivalent de la meta <meta name="robots"> (que vous pouvez placer dans le code source de vos pages HTML) mais dans les en-têtes HTTP, de même pour la Canonical.
Cette méthode présente de nombreux avantages, c'est une solution rapide et efficace à mettre en oeuvre: quelques lignes dans votre configuration d'Apache ou .htaccess.

Il est parfois complexe d'intervenir sur les éléments ou d'un site: les équipes de développement ne voulant pas nécessairement modifier le code du site (ex: CMS obsolète qui deviendrait instable), passer par la configuration du serveur Apache peut être un réel gain de temps et peut vous éviter de modifier manuellement un ensemble de champs dans le back-office de votre CMS, ce qui serait long et fastidieux.

Utilisation des en-têtes X-Robot-Tag et canonical

Plutôt que de vous faire de longs discours, voici quelques exemples d'utilisations des en-têtes HTTP et des variables d'environnement d'Apache, du concret quoi 🙂

Désindexer des pages dupliquées en HTTPS

Un site accessible en HTTP et HTTPS peut générer du contenu dupliqué. Vous pouvez effectuer des redirections 301 mais la techniques qui suit permet de se débarrasser des junk pages, sans poids SEO qui risqueraient de fatiguer GoogleBot pour rien. Toutes les URL en HTTPS seront accompagnés de l'en-tête X-Robot-Tag.

# empêcher l’indexation d’un site en HTTPS
RewriteCond %{SERVER_PORT} 443
RewriteRule . - [E=headernoindex]
Header set X-Robots-Tag "noindex, nofollow" env=headernoindex

Ajouter une balise canonical pour les pages dupliquées en HTTPS

Si vous êtes frileux avec la désindexation et que vous souhaitez utiliser la balise canonical de Google pour lui indiquer la page principale, sans perdre le linkjuice potentiel qu'auraient ces pages, vous pouvez utiliser l'entête Link rel=canonical reconnue par Google (mais pas par Bing, ni Yahoo à priori...).

#ajouter une Canonical pour les URL en HTTPS
RewriteCond %{SERVER_PORT} 443
RewriteRule (.*) - [E=CANONICAL:$1]
Header set Link '<http://%{HTTP_HOST}e%{REQUEST_URI}e>; rel="canonical"' env=CANONICAL

Pagination: ne pas indexer mais laisser Googlebot crawler

Afin de limiter l'indexation de la pagination qui risque de générer du contenu dupliqué (avec la première page d'une catégorie) et de permettre le crawl et l'indexation de l'ensemble des produits/pages accessibles via la pagination, voilà comment renvoyer un "noindex,follow" dans les en-tête pour les URL qui auraient le paramètre "page=" dans la chaîne de paramètres de l'URL.

#Noindex et follow pour les pages 2,3,4...
RewriteCond %{QUERY_STRING} page=.*
RewriteRule (.*) - [E=NOINDEXFOLLOW]
Header set X-Robots-Tag "noindex, follow" env=NOINDEXFOLLOW

Désindexer certains types de fichiers

Vous avez des fichiers Word de type DOC, DOCX indexés par erreur que vous souhaitez voir disparaître de l'index Google? Google ne tient pas compte des directives de votre fichier robots.txt, comme d'hab? (vous êtes étonnés?) Alors notre en-tête magique X-Robot-Tag va vous sauver, ces fichiers se retrouverons désindexés au bout de quelques semaines.

#Bloquer l'indexation des fichiers Word
<Files ~ "\.(doc|docx)$">
Header set X-Robots-Tag "noindex, nofollow"
</Files>

Désindexer les pages contenant un paramètre d'URL spécifique

Des URL contenant des paramètres de tri/ordre du type http://www.monsite.com/catalogue/bougies?order=asc vous génèrent du contenu dupliqué à foison? Voilà de quoi les faire sortir des pages de résultats Google.

# empêcher l’indexation des URL contenant un paramètre de tri ?order=
RewriteCond %{QUERY_STRING} ^order=(.*)$ [NC]
RewriteRule . - [E=headernoindex]
Header set X-Robots-Tag "noindex, nofollow" env=headernoindex

Bloquer l'indexation d'un répertoire spécifique

Votre répertoire /perso/ a été indexé? Dommage... il fallait faire attention, tant pis pour vous.
Trève de plaisanterie, voilà de quoi faire désindexer vos relevés de comptes, mots de passe et bulletins de salaires ^^

#vous feriez mieux de ne pas héberger vos fichiers perso ici!!!
RewriteCond %{REQUEST_URI} ^/perso/.*$
RewriteRule . - [E=headernoindex]
Header set X-Robots-Tag "noindex" env=headernoindex

ça ne sont que des exemples, libre recours à votre imagination pour la suite. Non, je ne parlerais pas de cloaking 😉

36 commentaires

  1. Je dois avouer que pendant un bon moment, je ne me suis pas occupé de ces paramètres… Voilà qui pourra servir à tous ceux qui sont comme moi 😀

  2. Merci pour ces astuces Aymeric.
    As-tu pu tester l’efficacité de ces tags vs un robots.txt ou une “vraie” meta robots ?

  3. Y’a pas de quoi,… mais merci quand même pour cet article^^.

    Il y a t-il des contre-indications à l’emploi du X-Robot-Tag et peut-on les cumuler avec la ?

    • Il peut être cumuler avec la meta robots si c’était la question. Le Noindex prend le dessus normalement.

  4. Bon article, je me demande si il n’y a pas également un gain de perf (temps de chargement) qui permettrait de booster le crawl. En effet, avec la méthode “X-Robots-Tag”, Googlebot doit certainement s’arrêter au téléchargement de l’entête HTTP (et ne télécharge pas le code source).

  5. Excellentes astuces, du pro tout ça. Je garde en fav et je RT, merci !
    ps : tu viens au WordCamp toi ? 😉

  6. J’ai découvert hier que l’on pouvait gérer tout çà via .htaccess et header HTTP, d’ailleurs j’en avais écrit un article dans la foulé sur mon blog.
    Et pouvoir bloquer des pages suivant l’extension est vraiment utile.

  7. Faudrait que je check où en est la situation, mais Bing (donc Yahoo) reconnait le rel canonical.
    Le problème est que la plupart des gens utilisent un hack sur la préco d’origine. Cela marche pour GG, mais Bing n’apprécie pas.
    Pour être en phase avec la préco d’origine, il faudrait que les pages enfants pointent vers la page parent, au lieu d’avoir la page parent qui pointe vers elle-même.

  8. Good point ! Je n’avais pas fait gaffe.
    Remarque, qui prête attention à Bing chez nous ? 😀

    100% d’accord avec toi sur cet attribut, qui n’est rien d’autre qu’une rustine. Heureusement qu’on n’avait pas attendu cette préco pour régler le problème en amont.

  9. Au TOP mister.

    X-Robot-Tag : noindex à mettre obligatoirement dans les réponses Ajax pour éviter que ce petit malin de Google affiche les get ajax dans les SERPs.

    Testé et approuvé 😉

  10. Merci pour les paramètres d’url. C’est effectivement une plaie pour les sites marchands.
    Sous Prestashop, j’ai plein d’URL avec des order et compagnie :marque, matière, etc…
    Après l’URL, ça donne ça : orderby=price&orderway=desc&f=20&&m=6).

    Du coup une rubrique peut sortir avec 4 paramètres et être indexée un nombre incalculable de fois !

  11. Merci beaucoup pour cette article. En effet, il y a des solutions concrètes et exposées clairement, que je vais pouvoir appliquer pour désindexer des pages qui engendrent du “duplicate content” sur les quelques sites que je gère.

  12. Merci beaucoup (oui je sais, yapadequoi !), c’est une excellent référence en l’occurrence pour prestashop

  13. Une astuce tres pratique à placer en favoris. J’ai bien galéré à une époque avec les ?=order

    • Une bonne solution est aussi de configurer ce type de paramètres d’URL dans Google Webmasters Tools

  14. Ta méthode pour ne pas indexer certaines pages qui contiennent des paramètres n’est pas bête du tout.
    Les prestashop posent pas mal de problèmes avec les urls des catégories (paramètres de tri, navigation à facette) et les urls des produits (personnalisation du produit). Je pense que je vais me faire un petit bout de code avec tous les paramètres indésirables et tester ça.
    Le point noir, il faut avoir un accès ftp car si tu plantes le sites en modifiant le htaccess par l’admin sans avoir un accès ftp, c’est mort -> téléphoner au client.
    Et après pour voir si le code passe bien, il faut utiliser un tool genre http://www.webconfs.com/http-header-check.php pour voir le noindex, c’est ça ?

  15. Hum, ton article couplé à la réponse de cdillat me laisse entrevoir de jolies choses. 😉
    Concernant le blocage sur GWT, c’est pour moi l’aveu de faiblesse quand on a tout essayer, donc à éviter comme la canonical…

  16. Très pratique, je fais tourner à l’agence et je vais l’utiliser très certainement.

    merci Aymeric !

  17. Décidément, j’ai l’impression que 2012 aura été l’année du .htaccess, avec tout ce qu’on peut lire au sujet de son optimisation dans les blogs ! Et j’ajoute même : c’est tant mieux !

    J’espère lire un jour un article sur l’incidence de traitement d’un fichier .htaccess “moyen” d’une 50aine de lignes sur le temps d’affichage des pages, car parfois on aurait tendance à vouloir y mettre toutes les bonnes astuces qu’on peut lire à droite et gauche, mais je ne suis pas sûr que ce soit une bonne idée…

    Merci et bon Réveillon !

  18. Merci pour cet article, excellente initiative ! mais, je crains fort que cet outil ne remplira pas sa fonction, Google il n’a pas finit de nous faire des misères.

  19. je viens tout juste de mettre à jour mon fichier robots.txt pour exclure les URLs contenant des paramètres. Pour le htaccess j’avais juste passé mes https en noindex, follow mais la solution du canonical semble plus appropriée. Thx

  20. L’astuce est parfaitement astucieuse!
    Une manière d’être plus efficace en gagnant beaucoup de temps sur son CMS.
    A tester c’est clair.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *