Balises hreflang : le guide complet pour un site multilingue
Ce que sont les balises hreflang, pourquoi Google en a besoin, la syntaxe exacte, les codes de langue valides, x-default, la canonical et les erreurs à éviter.
Mis à jour le 24 septembre 2026 · 5 min de lecture
Votre site est traduit en anglais et en allemand, mais Google montre toujours la version française aux internautes berlinois, ou n'indexe pas vos traductions. Dans la plupart des cas, le problème tient en un mot : hreflang.
Voici ce que fait cette balise, comment l'écrire correctement et comment vérifier la vôtre en quelques secondes.
Qu'est-ce qu'une balise hreflang ?
hreflang est un attribut que l'on place dans le <head> d'une page pour dire à Google : « cette page existe aussi dans d'autres langues, à ces adresses ». Chaque ligne associe une URL à un code de langue.
<link rel="alternate" hreflang="fr" href="https://exemple.com/" />
<link rel="alternate" hreflang="en" href="https://exemple.com/en/" />
<link rel="alternate" hreflang="de" href="https://exemple.com/de/" />
<link rel="alternate" hreflang="x-default" href="https://exemple.com/" />
Quand quelqu'un cherche en allemand, Google sait qu'il doit lui proposer /de/. C'est un signal fort, pas une obligation : bien configuré, Google le suit presque toujours ; mal configuré, il l'ignore.
Pourquoi c'est important
Sans hreflang, Google peut afficher la mauvaise langue (l'internaute repart aussitôt) ou regrouper vos versions et n'en montrer qu'une seule. Vos concurrents bien configurés prennent alors les positions dans les autres pays.
C'est hreflang qui permet à chaque langue d'exister dans son marché.
Les règles à respecter
Réciprocité
Si la page française déclare la page anglaise comme sa version en, la page anglaise doit déclarer la page française comme sa version fr. Le plus simple : le même bloc hreflang, identique, sur toutes les versions. Si le lien retour manque, Google ignore la relation.
URL absolues
Toujours l'adresse complète avec le protocole : https://exemple.com/en/, jamais /en/. Le domaine et le protocole doivent aussi correspondre à vos vraies URL (avec ou sans www).
Auto-référence
Chaque page doit se citer elle-même dans son bloc hreflang, en plus des autres langues.
Des codes ISO valides
La langue suit la norme ISO 639-1 (deux lettres), éventuellement suivie d'un tiret et d'un code pays ISO 3166-1 : fr, fr-FR, fr-BE, fr-CA, fr-CH. Un code invalide est simplement ignoré. Les erreurs les plus fréquentes :
| Code erroné | Code correct | Pourquoi |
|---|---|---|
en-UK | en-GB | Le code pays du Royaume-Uni est GB |
jp | ja | jp est le pays, ja la langue |
cn | zh | Idem pour le chinois |
kr | ko | Idem pour le coréen |
dk | da | Danois |
gr | el | Grec |
cz | cs | Tchèque |
ua | uk | Ukrainien (uk est bien la langue) |
en_US | en-US | Tiret, jamais de tiret bas |
x-default : la version de secours
x-default indique la page à montrer quand aucune de vos langues ne correspond à l'internaute. Si vous proposez le français, l'anglais et l'allemand, un visiteur japonais recevra la version x-default, en général votre langue principale ou une page de choix de langue. Ajoutez-la systématiquement.
Trois façons de l'implémenter
- Dans le
<head>de chaque page. La méthode la plus courante, lisible par tous les moteurs. - Dans le sitemap XML. Pratique pour les gros sites : les relations sont centralisées dans un seul fichier, avec des balises
xhtml:link. - Dans l'en-tête HTTP
Link. Utile pour les PDF et autres fichiers non HTML ; rarement nécessaire pour un site classique.
Hreflang et canonical
C'est l'erreur la plus coûteuse. Chaque version linguistique doit avoir une canonical qui pointe vers elle-même. La page /en/pricing a une canonical vers /en/pricing, jamais vers la page française.
Si la canonical d'une traduction pointe vers une autre langue, Google ignore son hreflang et ne l'indexe pas. Une traduction n'est pas du contenu dupliqué : inutile de vous en « protéger » ainsi.
N'oubliez pas html lang
L'attribut <html lang="en"> déclare la langue de la page elle-même. Il doit correspondre au code hreflang de cette page : une page déclarée hreflang="de" avec <html lang="fr"> envoie un signal contradictoire.
Les erreurs typiques
- Lien retour manquant, URL relatives ou mauvais protocole.
- Codes pays à la place des codes langue (
jp,cn,en-UK). - Pas de
x-default, ou canonical vers la langue d'origine. - Hreflang vers des URL qui redirigent ou renvoient une 404.
- Traductions chargées en JavaScript sans URL propre : hreflang n'a rien vers quoi pointer.
Comment vérifier vos balises
Affichez le code source d'une page traduite (Ctrl+U), cherchez hreflang et canonical, puis répétez sur chaque version.
Plus rapide : le vérificateur SEO multilingue gratuit analyse votre page et jusqu'à 6 versions traduites. Il contrôle les hreflang du <head> et de l'en-tête HTTP (codes valides, URL absolues, auto-référence, x-default, doublons), la cohérence avec html lang, la canonical et plusieurs autres points. Pour aller plus loin, suivez notre checklist d'audit SEO multilingue.
Comment Lantis l'automatise
Maintenir des hreflang à la main sur 50 pages en quatre langues, c'est des centaines de balises à synchroniser. Avec Lantis, chaque langue est servie sur sa propre URL (sous-dossier comme /en/), avec les hreflang de toutes les langues plus x-default, le bon html lang et une canonical auto-référente, ajoutés automatiquement.
Traduction par IA, éditeur visuel, glossaire et sélecteur de langue inclus. Une ligne de code suffit sur Webflow, WordPress, Shopify ou tout autre site, et Framer a son plugin. Dès 3 €/mois par langue (2,50 € dès 2 langues, 2 € dès 10), 100 premières traductions gratuites, sans carte. Voir aussi traduire un site Webflow et traduire un site Framer.
Questions fréquentes
Hreflang est-il un facteur de classement ?
Pas directement. Mais sans hreflang, Google peut afficher la mauvaise version ou regrouper vos traductions, ce qui vous prive de visibilité dans les autres langues.
Faut-il utiliser fr ou fr-FR ?
fr suffit si vous avez une seule version française. Utilisez fr-FR, fr-BE, fr-CA ou fr-CH seulement si vous proposez des contenus différents par pays (prix, devises, vocabulaire).
Peut-on utiliser hreflang avec un paramètre ?lang= ?
C'est techniquement possible mais fragile. Une URL distincte par langue, idéalement en sous-dossier, est bien plus fiable pour l'exploration et l'indexation.
Comment savoir si mes hreflang sont corrects ?
Passez votre URL dans le vérificateur SEO multilingue : il signale les codes invalides, les liens retour manquants, l'absence de x-default et les canonicals mal orientées.
Aussi disponible en English · Deutsch · Italiano · Português · हिन्दी · Русский · 日本語 · 한국어 · Türkçe · Bahasa Indonesia · العربية