Le WordPress d'aujourd'hui, décodé pour les développeurs

Multilingue

Content-Language contre hreflang, ce que Google lit réellement de chacun

Un en-tête HTTP ancien et une balise HTML récente coexistent souvent sur un même site multilingue, sans jouer le même rôle pour l'indexation.

Par WordPress Développement • 6 mai 2023 • 4 min de lecture • Aucun commentaire
Content-Language contre hreflang, ce que Google lit réellement de chacun

Deux façons d’indiquer la langue d’une page coexistent souvent sur un même site multilingue : l’en-tête HTTP Content-Language, hérité des débuts du web, et la balise link rel="alternate" hreflang, apparue avec la structuration moderne des sites internationaux. Beaucoup de configurations empilent les deux en pensant qu’elles se renforcent. Ce n’est pas tout à fait le cas : elles ne répondent pas à la même question, et l’une des deux a perdu, avec le temps, une bonne partie de son utilité pour le référencement.

Cette notion clarifie ce que chacun de ces deux signaux communique réellement à un moteur de recherche, et pourquoi il ne faut pas se fier à l’un pour compenser l’absence de l’autre.

Content-Language : un signal de métadonnée, pas de relation entre pages

L’en-tête Content-Language, qu’il soit envoyé en en-tête HTTP ou reproduit dans une balise meta http-equiv="content-language" dans le head du document, indique la langue du contenu de la page qui le porte. C’est une information ponctuelle sur une seule page, isolée : elle ne dit rien des autres versions linguistiques du même contenu, ni de leur existence, ni de leur URL. Un moteur de recherche qui lit cet en-tête sait dans quelle langue est rédigée cette page précise, un point c’est tout.

hreflang : un signal relationnel entre plusieurs URLs

La balise hreflang fonctionne à l’inverse comme un signal relationnel : chaque page d’un même contenu porte un jeu de balises listant l’intégralité de ses variantes linguistiques ou régionales, URL par URL. C’est cette structure en réseau, où chaque page référence toutes ses variantes et où chaque variante devrait référencer les autres en retour, qui permet à Google de comprendre qu’il s’agit d’un même contenu décliné, et d’éviter de faire concurrencer les versions entre elles dans les résultats de recherche.

L'essentiel à retenir : Content-Language ne sert plus de signal d'indexation fiable pour Google ; hreflang reste le seul signal officiellement documenté pour les variantes de langue ; Confondre les deux mène à des configurations redondantes ou incomplètes
<link rel="alternate" hreflang="fr" href="https://exemple.fr/produit/" />
<link rel="alternate" hreflang="en" href="https://exemple.fr/en/product/" />
<link rel="alternate" hreflang="x-default" href="https://exemple.fr/produit/" />

Pourquoi Content-Language ne suffit plus comme signal SEO

La documentation de Google pour le référencement international recommande explicitement hreflang comme mécanisme de signalement des variantes linguistiques, sans faire de Content-Language un prérequis ni même un signal complémentaire pris en compte de la même façon. L’en-tête Content-Language garde une utilité réelle, mais ailleurs : pour l’accessibilité, pour certains lecteurs d’écran, et pour des usages de négociation de contenu côté serveur indépendants du référencement.

SignalPortéeRôle pour l’indexation multilingue
Content-LanguageUne seule pageMarginal, non documenté comme signal principal par Google
hreflangRéseau de pages liées entre ellesSignal principal documenté pour les variantes de langue et de région
lang de la balise htmlUne seule pageUtile pour l’accessibilité, pas pour la relation entre variantes

L’erreur fréquente : croire que l’un remplace l’autre

Un site qui ne configure que Content-Language, en pensant avoir couvert le sujet du multilingue pour le SEO, laisse Google sans aucune information sur l’existence de ses variantes linguistiques : chaque page se retrouve indexée isolément, potentiellement perçue comme un doublon partiel des autres si le contenu structurel se ressemble. À l’inverse, un site qui configure hreflang correctement n’a nul besoin de dupliquer cette information via Content-Language pour que le signal fonctionne : les deux ne se substituent pas l’un à l’autre, mais seul hreflang porte la charge du signalement relationnel.

Ce que WordPress gère nativement

WordPress définit l’attribut lang de la balise html à partir de la locale du site via la fonction get_language_attributes(), utilisée par la plupart des thèmes dans leur fichier header.php. Cet attribut renseigne la langue de la page pour les technologies d’assistance, mais ne joue aucun rôle relationnel de type hreflang : c’est aux extensions de traduction, ou à du code maison comme décrit dans d’autres articles de cette catégorie, d’assumer la génération des balises hreflang proprement dites.

En résumé

Content-Language décrit une page seule ; hreflang décrit une relation entre plusieurs pages. Le premier a gardé une utilité pour l’accessibilité et la négociation de contenu, mais a perdu son rôle de signal principal pour l’indexation multilingue au profit du second. Un site bien configuré n’a pas besoin de choisir entre les deux : il doit simplement cesser de compter sur Content-Language pour faire le travail que seul hreflang accomplit réellement aux yeux des moteurs de recherche.

Laisser un commentaire

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

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi