Si vous gérez un site WordPress multilingue, vous avez probablement déjà rencontré hreflang à un moment donné (ou du moins vous auriez dû). Hreflang est un attribut HTML qui indique aux moteurs de recherche : "Cette page existe en plusieurs versions linguistiques, et voici où trouver chacune d'elles." Sans cela, Google traite vos pages allemandes et anglaises comme des contenus distincts et sans rapport, ou pire, comme des doublons en concurrence dans les résultats de recherche.
Pourquoi les sites multilingues ont besoin de balises hreflang
Imaginez que vous ayez une page "À propos" en anglais à /en/about/ et sa traduction allemande à /de/ueber-uns/. Les deux pages traitent du même sujet avec une structure très similaire. Du point de vue de Google, cela peut ressembler à du contenu dupliqué. Le moteur de recherche pourrait choisir une version et supprimer l'autre, ou répartir les signaux de classement entre les deux. Aucun de ces résultats n'est ce que vous souhaitez.
Hreflang corrige ce problème en déclarant explicitement : ces deux pages sont des traductions l'une de l'autre. Google sait alors qu'il doit afficher la version anglaise aux utilisateurs anglophones et la version allemande aux utilisateurs germanophones, sans pénalité de classement.
Comment ajouter des balises hreflang à votre site
Vous ajoutez des éléments link dans la section <head> de chaque page qui possède des traductions. Chaque balise pointe vers une version linguistique, et vous devez inclure toutes les versions sur chaque page, y compris une balise auto-référente :
<link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/ueber-uns/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/about/" />La balise x-default est la solution de repli. Elle indique aux moteurs de recherche quelle version afficher lorsque la langue de l'utilisateur ne correspond à aucune des options listées. Habituellement, vous la pointez vers votre langue principale ou une page de sélection de langue.
Codes de langue et de région hreflang expliqués
Hreflang utilise les codes de langue ISO 639-1, éventuellement combinés à des codes de région ISO 3166-1. Quelques exemples courants :
en: anglais, toutes régionsde: allemand, toutes régionsen-US: anglais spécifiquement pour les États-Unisde-AT: allemand spécifiquement pour l'Autrichept-BR: portugais pour le Brésil (par opposition au Portugal)
Une erreur fréquente : utiliser uk pour l'anglais britannique (le code correct est en-GB) ou jp pour le japonais (c'est ja). Ces codes semblent plausibles mais sont tout simplement faux, et Google ignore silencieusement les codes incorrects, sans message d'erreur, juste un hreflang cassé.
Hreflang bidirectionnel : pourquoi les liens de retour sont obligatoires
C'est ici que la plupart des implémentations échouent : les balises hreflang doivent être bidirectionnelles. Si votre page anglaise déclare une alternative allemande, la page allemande doit également déclarer l'alternative anglaise. Si un côté manque, Google peut écarter toute la relation hreflang pour cette paire de pages. Cela devient particulièrement délicat sur les sites plus volumineux où des pages sont ajoutées ou supprimées et où les balises hreflang se désynchronisent.
HTML, en-têtes HTTP ou sitemap : trois méthodes hreflang
Outre les balises link HTML, il existe deux méthodes supplémentaires :
- En-têtes HTTP : utiles pour les fichiers non HTML comme les PDF. Vous définissez des en-têtes
Linkdans la réponse HTTP avec les valeurs hreflang. - Sitemap XML : vous pouvez déclarer toutes les versions linguistiques dans votre sitemap en utilisant l'élément
xhtml:link. C'est souvent l'approche la plus fiable pour les grands sites, car elle conserve les données hreflang centralisées et plus faciles à maintenir.
Choisissez une méthode et tenez-vous-y. Mélanger les méthodes est techniquement autorisé, mais augmente les risques d'incohérences.
Hreflang pour WordPress : extensions et bonnes pratiques
WordPress ne génère pas de balises hreflang par lui-même. Si vous utilisez une extension multilingue comme WPML, Polylang ou TranslatePress, ces extensions gèrent généralement la sortie hreflang automatiquement. Mais "automatiquement" ne signifie pas "correctement", vous devriez donc tout de même vérifier la sortie, surtout après avoir modifié les structures d'URL, ajouté de nouvelles langues ou migré du contenu.
Sans extension multilingue, vous devriez ajouter manuellement les balises hreflang via votre thème ou via une extension personnalisée. Pour la plupart des sites, c'est inutilement source d'erreurs. Utilisez une extension qui gère la complexité à votre place.
Validez votre configuration hreflang avec InspectWP
InspectWP analyse vos pages WordPress à la recherche de balises hreflang et liste chaque variante linguistique trouvée. Cela vous permet de vérifier d'un coup d'œil si toutes les versions linguistiques attendues sont déclarées et si des liens de retour manquent, sans avoir à fouiller vous-même dans le code source de la page.