Générer les balises hreflang de vos versions

Saisissez les pages équivalentes d’un site multilingue, une ligne par version avec son code de langue ou de région. L’outil écrit les balises à poser dans le head, les en-têtes HTTP Link et le bloc de sitemap XML, et contrôle les codes, les doublons et les retours croisés. Rien n’est envoyé, tout se passe dans votre navigateur.

Une version par ligne : le code, un point-virgule (ou une tabulation, une virgule, une flèche), puis l’adresse complète. Une ligne vide sépare deux groupes de pages équivalentes. Vous pouvez saisir x-default vous-même.

Laissez vide pour utiliser la première ligne de chaque groupe. Sans effet si le groupe contient déjà une ligne x-default.

Comment utiliser l’outil

Écrivez une ligne par version d’une même page : le code de langue (fr, en, fr-BE...), un séparateur, puis l’adresse complète de cette version. Séparez les groupes de pages équivalentes par une ligne vide : une page produit et ses traductions forment un groupe, la page « à propos » et ses traductions en forment un autre. Un clic sur « Générer les balises » affiche les constats, puis trois sorties à copier ou à télécharger.

Le bouton « Charger un exemple » remplit deux groupes de quatre et trois versions, avec une balise x-default, pour voir le résultat. Chaque groupe produit un seul bloc : le même doit figurer sur toutes les pages du groupe, y compris sur chaque version pour elle-même.1

Ce que l’outil écrit

Google accepte trois emplacements, qu’il traite de la même façon : le head HTML, les en-têtes HTTP et le sitemap XML. Il n’y a aucun avantage à les cumuler, et la maintenance devient plus lourde : choisissez-en un.1 L’outil écrit les trois pour que vous gardiez celui qui convient à votre site.

Les balises du head sont des éléments link, un par version. Les en-têtes servent surtout aux fichiers qui n’ont pas de head, comme les PDF : l’adresse est entre chevrons, les éléments sont séparés par une virgule.1 Dans le sitemap, chaque page est une entrée url avec son loc et un élément xhtml:link par version, ce qui demande l’espace de noms xhtml.1 Les valeurs spéciales des adresses (&, par exemple) sont échappées pour le HTML et le XML.

<link rel="alternate" hreflang="fr" href="https://www.exemple.fr/chaussures/" />
<link rel="alternate" hreflang="en" href="https://www.exemple.fr/en/shoes/" />
<link rel="alternate" hreflang="x-default" href="https://www.exemple.fr/chaussures/" />

Link: <https://www.exemple.fr/guide.pdf>; rel="alternate"; hreflang="fr",
      <https://www.exemple.fr/en/guide.pdf>; rel="alternate"; hreflang="en"

Ce que l’outil contrôle

Google demande que chaque version se cite elle-même et cite toutes les autres. Si la page X désigne Y, Y doit désigner X, sinon les annotations peuvent être ignorées.1 L’outil construit chaque bloc à partir de l’ensemble du groupe : les retours sont croisés par construction, et le constat vert vous le rappelle. Il refuse en revanche de mettre la même adresse dans deux groupes, car la page recevrait deux blocs différents.

Il contrôle ensuite les adresses : elles doivent être complètes, avec le protocole, et une adresse comme /page ou //hote/page ne convient pas.1 Il écarte aussi les adresses avec espace, guillemet, chevron ou fragment, qui casseraient une balise ou un en-tête. Un même code ne peut désigner qu’une adresse par groupe : la première ligne est gardée, la suivante est signalée. Une ligne en double exact est fusionnée, et un groupe d’une seule version est ignoré.

Les codes de langue et de région

Le code commence par une langue ISO 639-1, suivie au besoin d’une écriture ISO 15924 (zh-Hant) et d’une région ISO 3166-1 alpha 2 (en-GB). La casse n’a pas d’importance pour Google, mais la région s’écrit en majuscules par convention : l’outil réécrit fr-be en fr-BE.1

Plusieurs erreurs fréquentes sont repérées. Un code de pays seul ne désigne pas une langue : « be » désigne le biélorusse, et pour la Belgique il faut écrire nl-BE, fr-BE ou de-BE. Des codes comme es-419 sont refusés, et les codes réservés comme UK ou EU sont ignorés.1 Le tiret bas (fr_FR) n’est pas valable non plus. La validation utilise la même méthode que le testeur hreflang, fondée sur les données de langues et de pays du navigateur.

La valeur x-default

x-default est une valeur réservée : elle désigne la page de repli quand aucune langue ni région ne correspond au navigateur du visiteur. Google la suggère, notamment pour un sélecteur de langue ou de pays, ou pour une page d’accueil qui redirige selon la langue. Elle n’est pas obligatoire.1

Cochez l’option pour que l’outil ajoute la ligne à chaque groupe. Il reprend par défaut la première version du groupe ; indiquez un code (en, par exemple) pour en choisir une autre. Si votre page de repli est une page distincte, un sélecteur de langue par exemple, saisissez-la comme une ligne x-default : elle recevra son propre bloc dans le sitemap.

Les limites de l’outil

L’outil ne visite aucune page : il met en forme ce que vous saisissez. Il ne sait donc pas si les adresses répondent, si une redirection les déplace ou si leur balise canonique pointe ailleurs. Google précise aussi que des versions dont seul le gabarit est traduit, avec un contenu principal inchangé, peuvent être vues comme des doublons.1

La même adresse sous deux codes (en et en-GB, par exemple) est signalée, la documentation de Google ne traitant pas ce cas. Le sitemap généré ne doit contenir que des adresses situées dans le dossier où il est hébergé, ou dans ses sous-dossiers.1

Après la génération

Une fois les balises en place, passez une page dans le testeur hreflang : il lit les alternatives en ligne et vérifie leurs codes de retour et leurs canoniques. Si vous avez choisi le sitemap, le validateur de sitemap XML contrôle le fichier. Pour décider de l’architecture avant de baliser, le consultant SEO peut vous accompagner.

Questions fréquentes

Quel emplacement choisir : head, en-têtes ou sitemap ?

Google traite les trois de la même façon. Il n’y a aucun avantage à les cumuler, et la maintenance est plus lourde : gardez-en un seul.1

Faut-il une balise x-default ?

Google la suggère, par exemple pour un sélecteur de langue ou de pays, sans l’exiger.1

Une page doit-elle se citer elle-même ?

Oui. Chaque version liste toutes les versions, la sienne comprise, et deux pages doivent se renvoyer l’une à l’autre, sinon les annotations peuvent être ignorées.1

Peut-on écrire « be » pour la Belgique ou « es-419 » ?

Non. Un code de pays seul ne désigne pas une langue et « be » est le biélorusse : utilisez fr-BE, nl-BE ou de-BE. Le code es-419 est refusé.1

Les versions peuvent-elles être sur des domaines différents ?

Oui, les variantes peuvent se trouver sur des domaines différents. Dans un sitemap, en revanche, seules les adresses du dossier où il est hébergé et de ses sous-dossiers sont admises.1

Sources

Les passages de cette page et les contrôles de l’outil renvoient à cette référence, lue le 18 octobre 2026.

  1. Google, « Gérer les sites multirégionaux et multilingues » (versions localisées de vos pages), Google Search Central, mis à jour le 24 septembre 2026. developers.google.com ↑

Un site en plusieurs langues à mettre d’aplomb ?

Les annotations hreflang, les canoniques et la structure des versions font partie de l’accompagnement SEO que je propose. Je vous réponds sous 24 heures ouvrées.

Me contacter