Hreflang
Glossaire – Définition
L’attribut hreflang est une balise HTML qui indique aux moteurs de recherche la langue et la région cible d’une page web, afin qu’ils servent la version correcte aux utilisateurs selon leur localisation et leurs préférences linguistiques dans les SERPS.
Un site international avec des versions en français, anglais et espagnol pose un problème concret à Google : comment savoir quelle URL montrer à un utilisateur qui cherche en France, au Québec ou en Belgique ? Sans signal explicite, Google fait une estimation à partir de la langue du contenu, du domaine ou du serveur. Ce n’est pas toujours juste.
L’attribut hreflang résout ce problème en déclarant explicitement les relations entre les pages : « cette URL en fr-FR est l’équivalent de cette URL en fr-CA, et de cette URL en en-US ». Google Search Console appelle ce rapport « Ciblage international ». Bing supporte aussi hreflang depuis 2011, bien que son implémentation soit moins stricte que celle de Google.
L’implémentation correcte de hreflang est l’une des parties du SEO technique où les erreurs sont les plus fréquentes et les plus difficiles à détecter sans outil dédié. Des études de Sistrix et Ahrefs placent régulièrement les erreurs hreflang dans les cinq problèmes d’indexation les plus courants sur les sites multilingues.
Pour bien comprendre :
- Comment fonctionne hreflang et ce que Google en fait
- Les trois façons d’implémenter hreflang
- Les erreurs hreflang qui annulent l’effet de la balise
- Les 5 règles d’un hreflang sans erreur
- L’avis de l’expert B-Strong
- Questions fréquentes
Comment fonctionne hreflang et ce que Google en fait
Hreflang dit à Google : « ces pages traitent du même sujet, mais pour des audiences différentes ». Google l’utilise pour choisir quelle URL afficher dans les SERP selon la langue et la région de l’utilisateur. Ce n’est pas un facteur de classement à proprement parler, mais un signal de ciblage qui détermine quelle version d’une page concourt pour quelles requêtes.
La syntaxe de base se place dans le <head> de chaque page :
<link rel="alternate" hreflang="fr-FR" href="https://exemple.com/fr-fr/page/" />
<link rel="alternate" hreflang="fr-CA" href="https://exemple.com/fr-ca/page/" />
<link rel="alternate" hreflang="en-US" href="https://exemple.com/en-us/page/" />
<link rel="alternate" hreflang="x-default" href="https://exemple.com/page/" />
Trois éléments composent le code de langue :
- Code langue (ISO 639-1) : deux lettres minuscules, obligatoires. Exemples :
fr,en,de,es. Ce code seul suffit si vous ciblez une langue sans distinction de région. - Code pays (ISO 3166-1 alpha-2) : deux lettres majuscules, facultatif. Exemples :
FR,CA,BE. À utiliser quand le contenu diffère selon la région (orthographe, offre commerciale, devise). - x-default : valeur spéciale qui désigne la version par défaut pour les utilisateurs dont la langue ou la région ne correspond à aucune autre variante déclarée. Souvent la version anglaise ou une page de sélection de langue.
John Mueller a précisé à plusieurs reprises que Google peut ignorer hreflang si les balises sont mal formées, si les pages ne se désignent pas mutuellement, ou si le contenu des versions déclarées est trop similaire pour justifier plusieurs versions distinctes.
Les trois façons d’implémenter hreflang
Hreflang peut être déclaré de trois façons : dans le HTML, dans les en-têtes HTTP ou dans le sitemap XML. Les trois sont valides pour Google. Le choix dépend du type de site, du CMS et des contraintes techniques.
1. Balises HTML dans le <head> : la méthode la plus courante. Chaque page déclare toutes ses variantes linguistiques via des balises <link>. Fonctionne pour les pages HTML statiques et les CMS comme WordPress (avec Polylang ou WPML). Contrainte : chaque page doit lister toutes ses versions alternatives, y compris elle-même. Sur un site avec 20 langues et 10 000 pages, cela représente 200 000 balises à générer et maintenir.
2. En-têtes HTTP : les balises hreflang sont envoyées dans les en-têtes de la réponse HTTP, pas dans le HTML. Adapté aux PDF, aux fichiers non-HTML ou aux situations où modifier le HTML est difficile. Requiert un accès à la configuration serveur (Apache, Nginx) ou à une solution CDN.
3. Sitemap XML : les relations hreflang sont déclarées dans le sitemap plutôt que dans chaque page. Méthode préférable pour les très grands sites car elle centralise toutes les déclarations dans un seul fichier. La structure utilise les balises <xhtml:link> au sein de chaque <url> du sitemap.
- Avantage du sitemap : une modification dans le fichier XML suffit. Pas besoin de redeployer chaque template de page.
- Limite du HTML : si une page manque dans la liste de ses variantes, Google peut douter de la cohérence du signal.
- Limite de l’en-tête HTTP : moins visible pour les développeurs front-end, donc plus risquée à maintenir dans le temps.
Les erreurs hreflang qui annulent l’effet de la balise
La plupart des implémentations hreflang contiennent au moins une erreur. Les plus fréquentes ne provoquent pas d’erreur visible dans Search Console, mais rendent le signal inefficace. Google traite alors la page comme si hreflang n’existait pas.
L’erreur la plus courante est l’absence de réciprocité. Si la page fr-FR déclare la page en-US comme variante, la page en-US doit à son tour déclarer la page fr-FR. Sans cette réciprocité, Google invalide l’ensemble du groupe de pages liées. John Mueller l’a confirmé dans plusieurs fils Twitter et Google Search Central : « hreflang must be bidirectional ».
- Pages non canoniques dans hreflang : déclarer une URL en redirection 301 ou avec une balise canonical pointant ailleurs invalide l’entrée hreflang. L’URL dans hreflang doit être l’URL canonique.
- Codes de langue mal formés :
fr_FRavec un underscore au lieu defr-FRavec un tiret est invalide.frenchau lieu defrest invalide. La casse compte aussi : le code pays doit être en majuscules. - Absence de x-default : techniquement facultatif, mais son absence peut laisser Google sans instruction pour les utilisateurs hors des régions déclarées. Mieux vaut toujours l’inclure.
- Pages orphelines : une version linguistique ajoutée au groupe sans mettre à jour toutes les autres pages. Si fr-FR déclare fr-BE mais que fr-BE ne déclare pas fr-FR, le groupe est incohérent.
- Contenu identique entre variantes : deux pages déclarées comme des versions distinctes mais avec un contenu à 95% identique. Google peut ignorer le signal et choisir la version qu’il préfère.
Les 5 règles d’un hreflang sans erreur
Ces règles couvrent les vérifications que j’effectue systématiquement lors d’un audit de site multilingue. Un hreflang correct ne fait pas que déclarer des variantes ; il maintient la cohérence du groupe à chaque modification de contenu ou de structure.
| Règle | Pourquoi | Erreur courante | Outil de vérification |
|---|---|---|---|
| Réciprocité obligatoire entre toutes les pages du groupe | Sans réciprocité, Google invalide le signal pour tout le groupe | Page A déclare B, mais B ne déclare pas A | Screaming Frog, hreflang Validator (Aleyda Solis) |
| N’inclure que des URLs canoniques | Une URL en 301 ou avec canonical ailleurs est ignorée | Déclarer l’URL avec paramètres au lieu de la version propre | Screaming Frog > colonne Canonical |
| Respecter la syntaxe ISO (langue-PAYS) | Un tiret mal placé ou la casse incorrecte invalide le code | fr_FR au lieu de fr-FR, FRENCH au lieu de fr | Liste officielle des codes sur sitemaps.org |
| Toujours inclure x-default | Désigne la version de secours pour les utilisateurs sans correspondance | Oublier x-default sur une page de sélection de langue | Revue manuelle du <head> |
| Mettre à jour toutes les pages lors d’un ajout de variante | Chaque nouveau pays/langue doit être déclaré dans toutes les pages existantes | Ajouter fr-CH sans mettre à jour fr-FR, fr-BE, fr-CA | Search Console > Rapport Ciblage international |
L’avis de l’expert B-Strong
Hreflang est sans doute la configuration SEO où je vois le plus de travail mal fait, même sur des sites gérés par des agences sérieuses. Le problème n’est pas la compréhension du principe, c’est la maintenance dans le temps.
Je travaille avec un client e-commerce présent dans 8 pays. À chaque fois qu’une nouvelle catégorie de produits est créée, il faut mettre à jour les groupes hreflang pour toutes les langues. Si un seul pays est oublié, le groupe perd sa réciprocité et Google reprend ses propres décisions de ciblage. J’ai observé des pertes de trafic sur des marchés entiers après une migration de site qui avait oublié de reporter les balises hreflang.
Mon conseil opérationnel : gérer hreflang via le sitemap XML plutôt que via les balises HTML quand le site dépasse 1 000 pages. C’est plus facile à générer automatiquement et à auditer. J’utilise Screaming Frog pour valider la réciprocité, et je demande toujours une revue dans Search Console sous l’onglet « Ciblage international » deux semaines après chaque déploiement.
Ce qu’on nous demande souvent
Hreflang est-il un facteur de classement Google ?
Non, hreflang n’améliore pas directement le classement d’une page. Son rôle est de signaler à Google quelle version d’une page afficher à quel utilisateur. L’effet attendu est d’éviter que la version anglaise d’une page soit montrée à des utilisateurs francophones, ou qu’une version canadienne concurrence une version française dans les SERP de France. Un hreflang correct peut réduire le taux de rebond et améliorer indirectement les signaux comportementaux, mais ce n’est pas son objectif premier.
Faut-il hreflang si le site n’a qu’une seule langue mais plusieurs régions ?
Oui, si le contenu varie selon la région. Un site en anglais avec des versions pour le Royaume-Uni (en-GB) et les États-Unis (en-US) utilise hreflang pour s’assurer que Google montre la version avec les bonnes devises, les bonnes orthographes et les bonnes offres commerciales aux bons utilisateurs. Si le contenu est strictement identique entre les deux régions, l’intérêt est moindre. Google recommande dans ce cas de consolider sur une seule URL plutôt que de dupliquer le contenu avec hreflang.
Comment auditer les erreurs hreflang d’un site existant ?
Screaming Frog est l’outil le plus complet pour un audit hreflang : il crawle le site, extrait toutes les balises hreflang et vérifie la réciprocité automatiquement. Aleyda Solis a aussi développé un validateur hreflang en ligne (hreflang.aleydasolis.com) pour vérifier page par page. Google Search Console complète l’audit via l’onglet « Ciblage international » qui signale les erreurs de configuration détectées lors du crawl. L’idéal est de combiner les trois : Screaming Frog pour l’inventaire complet, le validateur pour les cas complexes, et Search Console pour les erreurs confirmées par Google.
