Nous avons déjà eu l’occasion d’expliquer comment piloter le crawl, l’indexation et la canonicalisation de vos documents en utilisant autre choses que des balises en HTML.
C’est particulièrement utiles quand vous voulez gérer cela pour des ressources qui ne sont pas des pages html. Dans ce cas, la solution est d’utiliser d’autres moyens comment notamment les headers http.
Mais il y’a quand même quelques précautions à prendre pour que cela fonctionne parfaitement
Un X-robots-Tag ou des pour des pages HTML ? Cela marche, mais évitez si vous pouvez…
Déjà, si vous utilisez des balises comme le X-Robots-Tag à la place d’une balise meta robots dans le HTML, ce n’est pas forcément une bonne idée.
Techniquement, cela fonctionne parfaitement.
Mais à l’usage, c’est souvent une mauvaise idée car :
- cette directive devient « cachée ». Elle n’est pas identifiée par tous les outils s’ils n’analysent que le code HTML, vous même ne la verrez pas dans le code source. Il faut explicitement vérifier le header http, ce que l’on ne fait pas systématiquement. C’est donc créer des chances d’oublier la présence de ces balises
- maintenir des header http est souvent techniquement plus compliqué que du code HTML… Donc s’il faut mettre à jour ces instructions, on perd en flexibilité
Même chose pour des directives comme les link: canonical. Pourquoi faire compliqué quand on peut faire simple ? De nombreux CMS/plateformes gèrent les canonicals côté HTML, c’est donc plus aisé de les gérer.
A éviter absolument : créer des directives contradictoires entre header http: et balises SEO dans le <head>
La façon idiote de se tirer une balle dans le pied, c’est aussi de créer des instructions contradictoires entre les balises html et les directives dans le header.
Cela arrive souvent lorsqu’on a oublié que l’on avait des directives dans le header http.
Par exemple ce x-robots-tag et cette balise meta-robots :
HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
(…)
X-Robots-Tag: googlebot: nofollow
(…)
Côté header, la ressource peut être indexée
<meta name="robots" content="noindex, nofollow">
Mais côté HTML, la page HTML est bloquée à l’indexation.
Il devient impossible de prévoir quelle balise sera prise en compte par Google, et donc si la page sera indexée ou non … Il n’y a pas de règle de priorité entre les deux façons de déclarer la page en « noindex ».
Et si j’utilise un sitemap ?
Pour la plupart des balises seo qui ont leur version html et leur version header http, il existe également une syntaxe qui peut s’utiliser dans un sitemap XML.
N’utilisez cette solution que si ajouter une balise HTML ou une directive dans le header est impossible. C’est la solution de la dernière chance car elle marche moins bien en pratique (il y’a un décalage entre la découverte de l’url, et des directives dans le sitemap).
Mais là aussi : c’est une très mauvaise idée de créer des injonctions contradictoires.
Il est fréquent par exemple que l’url canonique utilisée par Google soit celle stockée dans le sitemap, et non celle de la balise canonical si elle est différente.
Répartir les directives entre header http et balises dans le head : c’est également une mauvaise idée
Même si vous ne créez pas de contradiction franche entre une balise SEO en HTML et sa contrepartie dans le header, l’usage des deux zones à la fois peut provoquer des résultats inattendus.
C’est le cas avec les instructions qui aident Google à trouver les urls canoniques. Ou avec les hreflangs.
Google peut utiliser comme source d’url canonique plusieurs sources (dont le sitemap.xml, ne l’oubliez pas). En l’absence d’une balise canonical, il prendra l’url de la balise Open Graph … url quand elle est présente dans le code. Ce n’est pas très connu, mais c’est facile à vérifier.
Donc si vous placez une directive link: <url>;rel=canonical dans le header http:, et que vous avez une balise og:url dans le HTML, vous avez créé un joli mic mac que Google aura du mal à interpréter. En pratique, il va utiliser soit les informations sur la canonique dans le header http:, soit celles disponibles dans le HTML, mais pas forcément fusionner les deux et le résultat risque d’être différent de celui que vous attendez.
Conclusion : utilisez les directives dans le header http vec discernement, et si vous placez des directives dans le header, placez les toutes à cet endroit ! Evitez le panachage.
Référence des balises SEO HTML ayant un équivalent header http :
Meta robots et X-Robots-Tag
https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag
Link rel canonical
https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
hreflang
https://developers.google.com/search/docs/specialty/international/localized-versions