Qu'est-ce que Hreflang ?
Hreflang est un attribut HTML qui indique aux moteurs de recherche quelle version linguistique et régionale d'une page doit être proposée aux utilisateurs dans des zones géographiques spécifiques. Introduit par Google en 2011, l'attribut hreflang est placé dans des éléments <link> et constitue un signal qui aide les moteurs de recherche à comprendre la relation entre des pages partageant le même contenu mais ciblant des langues ou des régions différentes.
L'attribut suit un format simple : hreflang="en" pour l'anglais, hreflang="es" pour l'espagnol, ou hreflang="en-GB" pour l'anglais ciblant spécifiquement les utilisateurs du Royaume-Uni. Lorsqu'il est correctement implémenté, hreflang garantit qu'un utilisateur francophone au Canada verra la version fr-CA de votre page dans les résultats de recherche plutôt que la version anglaise ou la version française destinée à la France.
Sans hreflang, les moteurs de recherche doivent deviner quelle version de votre contenu afficher à chaque audience. Ces approximations conduisent à l'apparition des mauvaises pages dans les résultats de recherche, à des signaux de contenu dupliqué qui diluent votre classement, et à des utilisateurs frustrés qui atterrissent sur du contenu dans une langue qu'ils ne lisent pas.
Pourquoi Hreflang est important pour le SEO international
Le SEO international est la pratique consistant à optimiser votre site web afin que les moteurs de recherche puissent identifier les pays et les langues ciblés par votre contenu. Hreflang est le mécanisme principal pour communiquer ce ciblage à Google et Yandex. Bing utilise une approche différente (la balise meta content-language), mais hreflang reste le standard dominant.
Il y a trois raisons essentielles pour lesquelles hreflang est indispensable pour tout site web multilingue ou multirégional :
-
Prévention des problèmes de contenu dupliqué. Lorsque vous disposez du même contenu dans plusieurs langues, les moteurs de recherche peuvent traiter ces pages comme des doublons. Hreflang leur indique que ces pages sont des variantes linguistiques intentionnelles, et non des copies. Cela préserve la puissance de classement de chaque version.
-
Afficher la bonne page au bon public. Hreflang influence directement quelle URL apparaît dans les résultats de recherche pour les utilisateurs de différentes régions. Un utilisateur effectuant une recherche depuis l'Allemagne verra la version allemande, tandis qu'un utilisateur recherchant depuis le Brésil verra la version portugaise. Cela augmente les taux de clics car les utilisateurs voient des résultats dans leur langue.
-
Consolidation des signaux de classement entre les versions linguistiques. Plutôt que de traiter vos pages en anglais, espagnol et allemand comme des concurrentes, hreflang indique aux moteurs de recherche qu'elles font partie d'une seule entité multilingue. L'autorité et les liens acquis par n'importe quelle version peuvent bénéficier à l'ensemble complet.
Codes de langue vs codes de région
Les valeurs hreflang suivent la norme ISO 639-1 pour les codes de langue et la norme optionnelle ISO 3166-1 Alpha-2 pour les codes de région.
Les codes de langue seuls ciblent les locuteurs d'une langue indépendamment de leur emplacement :
en-- Anglophones dans le monde entieres-- Hispanophones dans le monde entierde-- Germanophones dans le monde entierfr-- Francophones dans le monde entier
Les codes langue-région ciblent les locuteurs d'une langue dans un pays spécifique :
en-US-- Anglophones aux États-Unisen-GB-- Anglophones au Royaume-Unies-MX-- Hispanophones au Mexiquept-BR-- Lusophones au Brésilfr-CA-- Francophones au Canadazh-TW-- Sinophones à Taïwan
Le code de région est toujours optionnel. Si vous n'avez qu'une seule version anglaise, utilisez en. Si vous avez des versions distinctes pour les États-Unis et le Royaume-Uni, utilisez en-US et en-GB. N'utilisez jamais un code de région seul sans préfixe de langue -- hreflang="US" est invalide et sera ignoré par les moteurs de recherche.
Une erreur fréquente est l'utilisation de codes incorrects. Par exemple, uk est le code ISO 639-1 pour l'ukrainien, pas pour le Royaume-Uni. Le code correct pour l'anglais britannique est en-GB. De même, jp n'est pas valide ; le code de langue correct pour le japonais est ja, et le code pays pour le Japon est JP, ce qui donne le code combiné ja-JP.
Comprendre x-default
La valeur x-default est un attribut hreflang spécial qui désigne une page de secours. Lorsqu'un moteur de recherche ne peut pas faire correspondre la langue ou la région d'un utilisateur à aucune des valeurs hreflang disponibles, il affiche la page x-default à la place.
<link rel="alternate" hreflang="x-default" href="https://example.com/en/" />
Vous devriez configurer x-default vers la page offrant la meilleure expérience aux utilisateurs dont la langue n'est pas explicitement couverte. Il s'agit généralement de votre version anglaise ou d'une page de sélection de langue. Les règles clés pour x-default sont :
- Chaque ensemble hreflang doit inclure exactement une entrée
x-default - L'URL
x-defaultdoit également apparaître comme l'une des entrées hreflang régulières (par exemple, si votre page anglaise est x-default, elle doit aussi avoirhreflang="en") - N'utilisez pas
x-defaultcomme fourre-tout pour plusieurs pages -- il pointe vers une seule URL
Sans x-default, les moteurs de recherche n'ont aucune indication sur ce qu'il faut montrer aux utilisateurs des régions non prises en charge. Cela peut entraîner un comportement imprévisible où Google choisit la version qu'il considère comme la plus pertinente, qui peut ne pas correspondre à l'expérience que vous souhaitez offrir.
Comment les moteurs de recherche utilisent Hreflang
Google traite hreflang comme un signal, et non comme une directive. Cette distinction est importante : contrairement à noindex (que Google respecte généralement), hreflang est une suggestion que Google pondère avec d'autres signaux tels que la localisation de l'utilisateur, les paramètres de langue de recherche, la langue réelle du contenu de la page et les schémas de maillage interne.
Voici ce que fait Google lorsqu'il rencontre du hreflang :
- Explore et découvre toutes les pages listées dans l'ensemble hreflang
- Valide la réciprocité -- vérifie que la page A pointant vers la page B a aussi la page B qui pointe en retour vers la page A
- Vérifie l'accessibilité des URLs -- confirme que toutes les URLs liées sont explorables et renvoient un code de statut 200
- Évalue la cohérence -- compare les signaux hreflang avec les balises canonical, les entrées du sitemap et le contenu de la page
- Applique le signal au moment de la requête pour basculer les résultats de recherche vers la version la plus pertinente pour l'utilisateur
Si l'une de ces étapes de validation échoue, Google peut ignorer entièrement le hreflang pour les pages concernées. C'est pourquoi une implémentation correcte est si importante -- un seul lien cassé dans la chaîne peut invalider l'ensemble complet.
Yandex suit un processus similaire mais est moins documenté. Bing ne prend pas officiellement en charge hreflang, s'appuyant plutôt sur la balise meta content-language et l'attribut lang sur l'élément <html>, bien que des rapports suggèrent que Bing traite partiellement les signaux hreflang.
Méthodes d'implémentation
Il existe trois façons d'implémenter hreflang. Vous ne devez utiliser qu'une seule méthode par page pour éviter les signaux contradictoires. Si vous utilisez plusieurs méthodes et qu'elles divergent, les moteurs de recherche ne sauront pas laquelle considérer.
Méthode 1 : Éléments link HTML dans le head
Placez des balises <link rel="alternate"> dans la section <head> de chaque page de l'ensemble.
<head>
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
</head>
Quand utiliser cette méthode : Idéale pour les sites comportant un nombre de pages petit à moyen (moins de quelques centaines) où vous avez un contrôle direct sur le head HTML. C'est l'approche la plus courante et la plus facile à déboguer, car les balises sont visibles dans le code source de la page.
Avantage : Simple à implémenter, facile à inspecter, fonctionne avec n'importe quelle configuration d'hébergement.
Inconvénient : Augmente le poids de la page. Un site avec 20 versions linguistiques ajoute 21 balises <link> (20 langues + x-default) à chaque page, ce qui peut être significatif pour les pages sensibles aux performances.
Méthode 2 : En-têtes HTTP
Utilisez des en-têtes Link dans la réponse HTTP. Ceci est particulièrement utile pour les ressources non HTML comme les PDF.
Link: <https://example.com/en/page/>; rel="alternate"; hreflang="en",
<https://example.com/es/page/>; rel="alternate"; hreflang="es",
<https://example.com/de/page/>; rel="alternate"; hreflang="de",
<https://example.com/en/page/>; rel="alternate"; hreflang="x-default"
Quand utiliser cette méthode : Nécessaire pour les documents non HTML (PDF, images) ayant des variantes linguistiques. Également utile lorsque vous ne pouvez pas modifier le head HTML (par exemple, certaines configurations CMS).
Avantage : Fonctionne pour tout type de contenu, pas uniquement le HTML.
Inconvénient : Plus difficile à auditer car les en-têtes ne sont pas visibles dans le code source rendu de la page. Nécessite une configuration au niveau du serveur.
Méthode 3 : Sitemap XML
Ajoutez des annotations hreflang dans votre sitemap XML en utilisant l'élément xhtml:link au sein de chaque entrée <url>.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/en/page/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
</url>
<url>
<loc>https://example.com/es/page/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />
</url>
</urlset>
Quand utiliser cette méthode : Idéale pour les grands sites avec des milliers de pages. Les données hreflang résident dans le sitemap plutôt que sur chaque page, ce qui facilite la gestion programmatique et maintient le poids des pages au minimum.
Avantage : Passe bien à l'échelle, garde le HTML propre, peut être généré par des outils de build ou des plugins CMS.
Inconvénient : Google doit explorer et traiter le sitemap avant que le hreflang ne prenne effet. Les changements peuvent mettre plus de temps à se propager que les balises intégrées à la page.
Quand devriez-vous utiliser Hreflang ?
Vous avez besoin de hreflang lorsque votre site présente l'une des caractéristiques suivantes :
- Plusieurs versions linguistiques du même contenu (par exemple, des versions anglaise et espagnole d'une page produit)
- Des variations régionales d'une même langue (par exemple, anglais britannique et américain, ou portugais européen et brésilien)
- Un sélecteur de langue ou une géo-redirection qui sert un contenu différent selon la localisation de l'utilisateur
- Des vitrines spécifiques par pays avec des prix, des devises ou une disponibilité de produits différents mais un contenu substantiellement similaire
Vous n'avez pas besoin de hreflang lorsque :
- Votre site n'existe que dans une seule langue sans variantes régionales
- Vous utilisez un widget de traduction automatique (comme la barre de traduction du navigateur) plutôt que de maintenir des pages traduites séparément
- Votre contenu est complètement différent d'une région à l'autre (par exemple, votre site américain et votre site britannique ne partagent aucun contenu commun)
Idées reçues courantes sur Hreflang
Idée reçue : Hreflang améliore directement le classement. Réalité : Hreflang n'augmente pas votre classement. Il indique aux moteurs de recherche quelle version afficher sur quel marché. Votre classement dépend toujours de la qualité du contenu, des backlinks et des autres signaux SEO traditionnels.
Idée reçue : Hreflang n'est nécessaire que sur la page d'accueil.
Réalité : Hreflang doit être implémenté sur chaque page ayant un équivalent dans une autre langue ou région. Si votre page /en/about/ a une version espagnole à /es/about/, les deux pages doivent comporter des balises hreflang pointant l'une vers l'autre et vers elles-mêmes.
Idée reçue : Google s'en sortira sans hreflang.
Réalité : Bien que Google utilise des signaux comme l'attribut lang et la langue du contenu de la page pour détecter la langue, ce sont des signaux plus faibles. Sans hreflang explicite, Google affiche fréquemment la mauvaise version linguistique dans les résultats de recherche, en particulier pour les sites ayant des structures d'URL similaires entre les langues.
Idée reçue : Hreflang remplace la balise canonical. Réalité : Hreflang et canonical ont des fonctions différentes et doivent être utilisés conjointement. La balise canonical indique aux moteurs de recherche quelle URL est la version de référence pour l'indexation. Hreflang indique les alternatives linguistiques et régionales. Chaque version localisée doit avoir un canonical auto-référençant qui pointe vers elle-même, pas vers une autre version. Consultez notre guide sur hreflang vs canonical pour une explication détaillée.
Idée reçue : Vous pouvez utiliser hreflang avec des URLs relatives.
Réalité : Toutes les URLs dans les attributs hreflang doivent être absolues (commençant par https://). Les URLs relatives sont silencieusement ignorées par les moteurs de recherche, ce qui signifie que votre implémentation hreflang ne fonctionnera tout simplement pas.
Prochaines étapes
Maintenant que vous comprenez ce qu'est hreflang et comment il fonctionne, vous pouvez :
- Utiliser notre Générateur de balises Hreflang pour créer des balises hreflang correctes pour vos pages
- Lire notre guide sur les erreurs courantes de hreflang pour éviter les erreurs d'implémentation
- Apprendre comment hreflang et les balises canonical interagissent pour prévenir les conflits entre les deux