Blog · SEO

Hreflang : comment configurer correctement les versions par langue et par pays

hreflang indique à Google quelle version linguistique ou nationale d'une page afficher à chaque internaute. Ce guide présente les trois façons de la déclarer, les règles de codes que Google applique réellement, les liens retour, x-default, l'interaction avec les canoniques et les corrections pas à pas des erreurs détectées par un outil de vérification hreflang.

Searvia · 24/10/2026 · Lecture : 13 min

Deux traducteurs associant des séries de livrets identiques à couverture unie de différentes couleurs, à une longue table

En bref : hreflang indique à Google quelle version linguistique ou nationale d'une page afficher à chaque internaute. Chaque version liste toutes les versions, y compris elle-même, avec un code de langue ISO 639-1 et une région ISO 3166-1 alpha-2 facultative (en, de, en-GB, pt-BR), plus un repli x-default facultatif. Les liens doivent être absolus et réciproques, sinon Google les ignore. Chaque version doit avoir une canonique qui pointe vers elle-même ; une canonique qui pointe vers une autre langue annule toute la configuration. Google détecte la langue de la page à partir du contenu : la traduction doit donc être réelle.

Les sites internationaux perdent du trafic de manière discrète. La page anglaise se positionne en Allemagne, la page espagnole s'affiche au Mexique alors que vous aviez créé une version mexicaine, ou la boutique britannique apparaît pour des internautes américains avec des prix en livres. Rien n'est cassé sur le site : Google a simplement deviné quelle version afficher. hreflang sert à l'empêcher de deviner.

Ce guide explique comment fonctionne hreflang d'après la documentation de Google, les règles de codes qui piègent la plupart des sites, l'interaction avec les canoniques, ce que teste notre outil de vérification hreflang gratuit, et comment corriger chaque problème.

Ce que hreflang fait, et ce qu'il ne fait pas

Les annotations hreflang décrivent un ensemble de pages qui sont des versions les unes des autres : le même contenu dans une autre langue, ou la même langue adaptée à un autre pays. Google s'en sert pour afficher la version correspondante dans ses résultats.

Ce qu'il ne fait pas :

Les trois façons d'ajouter hreflang

Google indique que les trois méthodes sont « équivalentes du point de vue de Google ». Utilisez-en une seule par page ; les mélanger ne fait qu'ajouter des sources d'erreurs.

1. Éléments link HTML dans le <head>, le choix le plus courant. Sur https://example.com/en/pricing :

<link rel="alternate" hreflang="en" href="https://example.com/en/pricing" />
<link rel="alternate" hreflang="de" href="https://example.com/de/preise" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/tarifs" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/pricing" />

Les pages allemande et française comportent exactement les mêmes quatre lignes. Google exige que les balises soient « dans une section <head> bien formée » ; un élément parasite que le navigateur déplace dans le body, comme une image ou une balise non fermée placée avant les liens, peut interrompre le head trop tôt.

2. En-têtes HTTP Link, la seule option pour les fichiers non HTML comme les PDF :

Link: <https://example.com/en/guide.pdf>; rel="alternate"; hreflang="en",
      <https://example.com/de/guide.pdf>; rel="alternate"; hreflang="de"

Google précise que l'en-tête doit être identique pour toutes les versions.

3. Sitemap XML, pratique pour les grands sites car aucune modification de template n'est nécessaire :

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/en/pricing</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/pricing"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/preise"/>
  </url>
  <url>
    <loc>https://example.com/de/preise</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/pricing"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/preise"/>
  </url>
</urlset>

Chaque <url> liste toutes les versions, y compris elle-même.

Les règles que Google applique

Liens retour et auto-référence

« Si deux pages ne se pointent pas mutuellement, les balises seront ignorées. » C'est la règle à l'origine de la plupart des configurations défaillantes. Si la page anglaise liste la page allemande mais que la page allemande ne liste pas l'anglaise, Google écarte la paire. Google précise aussi que « chaque version linguistique doit se lister elle-même ».

Codes de langue et de région

« Seuls les codes de langue de la norme ISO 639-1 et les codes de région de la norme ISO 3166-1 alpha-2 sont pris en charge. » La langue vient en premier ; la région est facultative. Google prend aussi en charge les sous-balises de script pour les langues écrites dans plusieurs écritures, comme zh-Hant et zh-Hans, ainsi que des combinaisons telles que zh-Hans-US.

CodeValide ?Pourquoi
enOuiAnglais, toute région
en-GBOuiAnglais pour le Royaume-Uni
pt-BROuiPortugais pour le Brésil
zh-HantOuiChinois, écriture traditionnelle
es-419Non pour GoogleLa région doit être un code ISO 3166-1 alpha-2 ; 419 (Amérique latine) n'en est pas un
en-UKSans effetLe code ISO est GB ; Google indique que UK, EU et UN n'ont aucun effet
beSignifie biélorusseUn code de pays seul est invalide ; be est la langue biélorusse, pas la Belgique
en_USNonUtilisez un trait d'union, pas un tiret bas
engNon pour GoogleLes codes ISO 639-2 à trois lettres ne sont pas pris en charge ; utilisez en

Pour l'espagnol en Amérique latine, utilisez soit es pour une seule version espagnole partagée, soit la liste des pays ciblés (es-MX, es-AR, es-CO) pointant vers la même URL.

x-default

« La valeur réservée x-default est utilisée lorsqu'aucune autre langue/région ne correspond aux paramètres du navigateur de l'utilisateur. » Faites-la pointer vers une page de sélection de langue ou votre version internationale principale. Elle est facultative mais utile : sans elle, un internaute dont la langue n'est pas proposée obtient la version choisie par Google.

URL absolues

« Les URL alternatives doivent être complètes, y compris le protocole de transport. » https://example.com/de/ fonctionne ; /de/ et //example.com/de/ non.

hreflang et balises canoniques

Les deux doivent concorder. Chaque version doit avoir une canonique qui pointe vers elle-même, et non vers la version anglaise ou principale. Le guide de canonicalisation de Google recommande d'« indiquer une page canonique dans la même langue », ou « la meilleure langue de substitution possible si aucune page canonique n'existe pour la même langue », et note que les clusters hreflang influencent le choix de la canonique, en favorisant les URL qui se pointent réciproquement.

L'erreur classique : chaque version linguistique contient <link rel="canonical" href="https://example.com/en/...">. Cela indique à Google que les autres versions sont des doublons de la page anglaise, et elles sortent de l'index avec leurs annotations hreflang.

Deux autres conflits à éviter : des URL hreflang qui redirigent (indiquez l'URL finale) et des URL hreflang en noindex (une version que Google ne peut pas indexer ne peut pas être affichée).

Structure du site et redirections automatiques

Le guide multirégional de Google compare les structures d'URL :

StructureExempleRemarques de Google
Domaine nationalexample.deGéociblage clair ; coûteux, un pays par domaine
Sous-domainede.example.comFacile à configurer ; les utilisateurs peuvent ne pas reconnaître le ciblage dans l'URL
Sous-répertoireexample.com/de/Faible maintenance, même hôte
Paramètre d'URLexample.com?loc=deDéconseillé

Quel que soit votre choix, ne redirigez pas automatiquement les visiteurs selon l'IP ou la langue du navigateur. Google indique que cela « pourrait empêcher les utilisateurs (et les moteurs de recherche) de voir toutes les versions de votre site », et que Googlebot « provient généralement des États-Unis ». Affichez plutôt un bandeau de suggestion et laissez hreflang gérer les résultats de recherche.

Comment fonctionne l'outil de vérification hreflang de Searvia

L'outil de vérification hreflang utilise le même moteur que notre outil d'audit SEO de site web : vous saisissez un domaine ou l'adresse d'une page, il audite cette page (votre page d'accueil si vous saisissez seulement un domaine) et les fichiers du site associés avec 38 contrôles en environ 20 secondes, et place en premier les trois contrôles qui concernent cet outil. Voici exactement ce qu'ils testent.

Versions linguistiques, hreflang (priorité basse). L'outil lit chaque élément <link rel="alternate" hreflang="..." href="..."> du HTML de cette page, après avoir suivi les redirections jusqu'à son adresse finale.

Langue de la page (priorité basse). Réussite lorsque l'élément <html> possède un attribut lang et que sa langue est affichée ; avertissement s'il est absent.

URL canonique (priorité moyenne). Réussite lorsque la balise canonique pointe vers la page elle-même ; avertissement si elle est absente ou pointe vers une autre adresse, qui est alors affichée.

Ce qu'il ne teste pas

Lire le résultat

MessageSignificationCorrection
Aucune version linguistique n'est déclarée (normal pour un site monolingue).Aucun lien hreflang sur la pageRien à faire pour les sites monolingues ; sinon, voir l'étape 1
N versions linguistiques sont déclarées correctement.Codes valides et auto-référence présente ; le message le signale s'il n'y a pas de repli x-default (facultatif)Vérifiez quand même les liens retour à la main
Les versions linguistiques n'incluent pas cette page elle-même.La page liste les autres mais pas elle-mêmeÉtape 2
Certains codes de langue ne sont pas valides.Au moins une ligne a une croix rougeÉtape 3
La page ne déclare pas sa langue.Pas de lang sur <html>Étape 4
L'URL canonique pointe vers une autre adresse.La canonique désigne une autre pageÉtape 5

La note globale de A+ à F couvre les 38 contrôles, pondérés par priorité (haute 10, moyenne 5, basse 2 ; les avertissements valent la moitié), avec une liste « À corriger en premier » et un rapport partageable.

Comment corriger chaque problème hreflang

1. Aucune version linguistique n'est déclarée, alors que vous en avez

2. Les versions linguistiques n'incluent pas cette page elle-même

Ajoutez une ligne pour la page courante avec son propre code. Dans un template, cela signifie généralement que la boucle sur les langues saute la langue courante ; supprimez cette condition. Assurez-vous que l'URL d'auto-référence est l'URL canonique, avec le même protocole, le même hôte et la même convention de barre oblique finale.

3. Certains codes de langue ne sont pas valides

4. La page ne déclare pas sa langue

Ajoutez la langue à l'élément racine, par exemple <html lang="en"> ou <html lang="pt-BR">. Google ne s'en sert pas pour détecter la langue, mais les navigateurs, les outils de traduction et les lecteurs d'écran, oui, comme le décrit MDN.

5. La canonique pointe vers une autre adresse

Sur un site multilingue, il s'agit souvent du problème de canonique inter-langues. Remplacez la canonique de chaque version par sa propre URL. Si la canonique pointe vers la même page sous une autre forme (http au lieu de https, ou sans www), faites-la correspondre exactement à votre adresse finale.

6. Les liens retour sont manquants (non testés par l'outil)

Ouvrez deux versions côte à côte et comparez leurs listes hreflang : ce doivent être des ensembles identiques. S'ils diffèrent, la cause est presque toujours le template ou le plugin qui les génère ; corriger le générateur une fois corrige toutes les pages.

Exemple pratique (hypothétique)

L'exemple suivant est hypothétique, ce ne sont pas des données réelles. Kestrel Gear, une marque de plein air inventée, exploite example.com en anglais avec des versions /de/, /fr/ et /es/. Les internautes allemands arrivent toujours sur les pages anglaises. L'outil de vérification hreflang indique :

LigneURLOK
en-UKhttps://example.com/Non (→ en-GB)
de-DEhttps://example.com/de/Oui
frhttps://example.com/fr/Oui
es_EShttps://example.com/es/Non

Canonique : « L'URL canonique pointe vers la page elle-même. » Langue de la page : en.

La croix sur es_ES est une erreur de format. La croix sur en-UK est accompagnée de la remarque « → en-GB » : Google n'accepte pas UK comme région, la page anglaise n'avait donc aucune annotation exploitable. L'affichage du code source de la page allemande révèle un troisième problème : sa canonique pointe vers la page d'accueil anglaise, Google a donc traité /de/ comme un doublon. Les corrections :

Une checklist hreflang en 20 minutes

Comment Searvia vous aide

L'outil de vérification hreflang gratuit valide dans un seul rapport partageable les liens hreflang, la langue de la page et la canonique de la page saisie, avec les autres contrôles de l'outil d'audit SEO de site web. Dans un compte Searvia, connectez Search Console pour voir les clics et les positions par pays pour chaque version linguistique, et lancez l'audit de site chaque semaine pour repérer les canoniques qui pointent ailleurs, les titres en double entre versions linguistiques et les pages cassées. Si vous publiez des applications en plus de sites web, notre guide de localisation App Store traite le même problème côté store. Pour la checklist technique complète, consultez le guide d'audit SEO technique.

Questions fréquentes

Qu'est-ce que hreflang ?
hreflang est une annotation qui informe Google des versions linguistiques et nationales d'une page, afin qu'il puisse afficher la bonne version à chaque internaute. Elle s'écrit sous forme de liens rel="alternate" avec un attribut hreflang, dans le head HTML, dans un en-tête HTTP Link ou dans un sitemap XML. Chaque version liste toutes les versions, y compris elle-même, avec un code tel que en, de ou en-GB, et éventuellement un repli x-default.
hreflang améliore-t-il le classement ?
hreflang ne fait pas mieux classer une page. Il aide Google à choisir la version à afficher pour une langue ou une région donnée, afin qu'un internaute allemand voie la page allemande plutôt que l'anglaise. Sans lui, Google peut quand même trouver la bonne version, mais les erreurs, comme une mauvaise langue dans les résultats, sont plus probables lorsque les versions sont similaires.
Qu'est-ce que x-default dans hreflang ?
x-default est une valeur hreflang réservée pour la page à afficher lorsqu'aucune autre langue ou région de l'ensemble ne correspond aux paramètres du navigateur de l'utilisateur. C'est souvent une page de sélection de langue ou la version internationale principale. Google la recommande pour la page de repli mais ne l'exige pas.
en-UK est-il un code hreflang valide ?
Non. Les codes de région hreflang doivent être des codes pays ISO 3166-1 alpha-2, et le code du Royaume-Uni est GB ; utilisez donc en-GB. Google indique que l'utilisation de UK, EU ou UN dans les annotations hreflang n'a aucun effet dans la recherche Google. Un code de pays seul est aussi invalide : hreflang doit commencer par un code de langue ISO 639-1.
Ai-je besoin de hreflang si j'utilise l'attribut lang ?
Oui, si vous avez plusieurs versions linguistiques ou nationales. Google indique qu'il n'utilise ni l'attribut HTML lang ni hreflang pour détecter la langue d'une page ; il lit le contenu visible. L'attribut lang aide les navigateurs et les lecteurs d'écran, tandis que hreflang explique à Google comment vos versions sont liées entre elles. Définissez les deux.

Sources

  1. Tell Google about localized versions of your page – Google Search Central
  2. Managing multi-regional and multilingual sites – Google Search Central
  3. How to specify a canonical URL – Google Search Central
  4. Redirects and Google Search – Google Search Central
  5. HTML lang global attribute – MDN Web Docs
  6. ISO 639 language codes – Library of Congress

Continuer la lecture