La balise Hreflang (multilingue)
Comment indiquer la bonne version linguistique d'une page aux moteurs, avec la syntaxe correcte et les erreurs de réciprocité les plus fréquentes.
La balise hreflang indique aux moteurs de recherche quelle version linguistique ou géographique d'une page proposer à un utilisateur donné, lorsqu'un même contenu existe décliné en plusieurs langues ou pour plusieurs pays.
Cas d'usage : quand hreflang devient nécessaire
Dès qu'un site propose la même page (ou une page équivalente) en plusieurs langues, ou une même langue adaptée à plusieurs pays (français de France vs français de Belgique, par exemple), le moteur doit savoir laquelle proposer à quel utilisateur. Sans hreflang, il risque de présenter la version anglaise à un utilisateur francophone, ou d'indexer les différentes versions comme des contenus dupliqués concurrents entre eux plutôt que complémentaires.
Ce risque de duplication perçue est le point le plus mal compris de la balise : sans hreflang, deux pages très proches en anglais et en français peuvent être interprétées comme deux traductions redondantes d'un même contenu plutôt que comme deux versions destinées à des audiences distinctes, ce qui peut nuire au classement des deux plutôt que de les renforcer mutuellement.
À l'inverse, un site qui ne propose qu'une seule langue n'a aucun besoin de hreflang : ajouter cette balise sans contenu multilingue réel n'apporte rien et complexifie inutilement la maintenance du site.
Syntaxe correcte
La déclaration se fait généralement dans le <head> de chaque page, avec un lien vers chaque version linguistique disponible, y compris vers elle-même :
<head>
<link rel="alternate" hreflang="fr" href="https://exemple.com/fr/guide" />
<link rel="alternate" hreflang="en" href="https://exemple.com/en/guide" />
<link rel="alternate" hreflang="es" href="https://exemple.com/es/guide" />
<link rel="alternate" hreflang="x-default" href="https://exemple.com/en/guide" />
</head>
Le code de langue suit la norme ISO 639-1 (fr, en, es), et peut être combiné à un code pays ISO 3166-1 pour cibler une variante régionale précise (fr-BE pour le français de Belgique, en-US pour l'anglais américain). Le hreflang peut également être déclaré via le plan de site XML (sitemap) plutôt que dans le <head> de chaque page, une approche souvent préférée sur les sites comportant un grand nombre de pages multilingues, car elle centralise toutes les déclarations dans un seul fichier plus facile à générer et à maintenir automatiquement.
La réciprocité : la règle la plus souvent cassée
Chaque page qui déclare une version alternative doit être elle-même déclarée en retour par cette version alternative. Si la page française pointe vers la page anglaise en hreflang, la page anglaise doit pointer vers la page française. Un lien hreflang non réciproque est généralement ignoré par les moteurs, ce qui annule l'effet du balisage sans qu'aucune erreur ne s'affiche clairement.
Cette règle devient difficile à maintenir manuellement dès qu'un site dépasse trois ou quatre langues : ajouter une nouvelle langue implique de mettre à jour la déclaration hreflang sur toutes les pages existantes des autres langues, pas seulement sur les nouvelles pages créées. C'est l'une des raisons pour lesquelles la génération automatique via un système de gestion de contenu ou un sitemap dédié réduit fortement le risque d'erreur par rapport à une déclaration manuelle page par page.
Le x-default trop souvent oublié
La valeur x-default indique quelle version afficher aux utilisateurs dont la langue ou la localisation ne correspond à aucune des versions explicitement déclarées. Sans elle, ces utilisateurs reçoivent un choix arbitraire du moteur, parfois incohérent avec l'intention du site. Le x-default correspond en général à la version internationale ou anglaise du site, mais peut aussi pointer vers une page de sélection de langue explicite si le site n'a pas de version par défaut évidente.
Erreurs fréquentes
- Liens hreflang non réciproques entre les versions linguistiques.
- Codes de langue ou de pays incorrects (confondre le code langue et le code pays, par exemple
fr-FRécritFR-fr). - hreflang pointant vers une URL qui redirige ou renvoie une erreur 404, plutôt que vers l'URL finale.
- Combiner hreflang avec une balise canonical qui pointe vers une seule version « maîtresse », ce qui contredit l'intention même du hreflang — chaque version linguistique doit avoir sa propre canonical, vers elle-même.
- Oublier x-default sur un site à forte audience internationale.
- Déclarer une langue dans hreflang sans que le contenu de la page cible soit réellement traduit dans cette langue (une page dupliquée mais non traduite, laissée en place temporairement).
Vérifier son implémentation
Un déploiement hreflang incorrect passe souvent inaperçu visuellement (le site fonctionne normalement pour un visiteur direct) mais peut fausser durablement le référencement international. Une vérification systématique de la réciprocité des liens, en particulier après l'ajout d'une nouvelle langue, évite ce type d'erreur silencieuse.
Un test simple consiste à ouvrir le code source de chaque version linguistique et à vérifier, pour chaque lien hreflang déclaré, que la page cible déclare bien un lien retour équivalent. Sur un site de grande taille, ce contrôle est plus réaliste avec un outil d'exploration automatisé qui liste les incohérences que manuellement, page par page.
Pour l'ensemble des points à vérifier avant mise en ligne, voir la checklist technique complète, et pour la gestion des anciennes URL lors d'une réorganisation multilingue, la leçon sur les redirections et erreurs HTTP.