Aller au contenu

Guide · Cas particuliers

Sites multilingues et déclaration hreflang

Déclarer qu'une page existe en cinq langues est simple. Le faire de façon que le moteur l'accepte l'est beaucoup moins.

Par Camille Mis à jour le 3 min de lecture

Un site en plusieurs langues doit indiquer au moteur quelle version servir à quel public. C'est le rôle de l'attribut hreflang.

Choisir une structure d'URL

Trois options, et le choix se fait une fois pour toutes.

Les sous-répertoires : exemple.fr/en/. Le plus simple, l'autorité reste concentrée sur un seul domaine, l'hébergement ne change pas. C'est le choix par défaut raisonnable.

Les sous-domaines : en.exemple.fr. Permet des hébergements séparés, au prix d'une autorité un peu moins bien partagée.

Les domaines par pays : exemple.de. Le signal géographique le plus fort, le coût le plus élevé, et chaque domaine part de zéro.

Ce qu'il ne faut pas faire : mélanger les langues sur les mêmes URL avec un changement par cookie ou par script. Le moteur ne voit alors qu'une version, et pas toujours la bonne.

La syntaxe

Dans l'en-tête de chaque page :

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

Le code de langue suit la norme à deux lettres, éventuellement complété d'un code pays : fr-BE pour le français de Belgique. Le pays seul n'existe pas : be désigne le biélorusse, pas la Belgique.

x-default désigne la version servie quand aucune autre ne correspond.

Les trois règles qui font échouer les déclarations

L'auto-référence. Chaque page doit figurer dans son propre ensemble. Une page française qui déclare l'anglais et l'allemand sans se déclarer elle-même invalide tout l'ensemble.

La réciprocité. Si la page française déclare la page anglaise, la page anglaise doit déclarer la page française. Une déclaration à sens unique est ignorée.

Les URL canoniques. Les adresses déclarées doivent être les canoniques, répondre en 200, et ne pas être bloquées.

Ces trois erreurs représentent la quasi-totalité des déclarations invalides que nous rencontrons.

Où déclarer

Trois emplacements équivalents : dans l'en-tête HTML, dans les en-têtes HTTP, ou dans le plan du site.

Le plan du site est le plus maintenable sur un grand site : tout est centralisé, et une erreur se corrige en un endroit. C'est aussi le seul praticable quand on dépasse quelques dizaines de langues et de variantes.

Les variantes d'une même langue

Un site en français pour la France, la Belgique, la Suisse et le Canada pose une question particulière : les contenus sont souvent quasi identiques.

Deux réponses. Si les prix, les délais ou les conditions diffèrent réellement, ce sont des pages distinctes, déclarées avec fr-FR, fr-BE, fr-CH, fr-CA. Si rien ne diffère, une seule page en fr suffit, et les dupliquer ne sert qu'à créer de la duplication interne.

La redirection automatique, à éviter

Rediriger un visiteur vers sa langue selon son adresse IP semble serviable et pose deux problèmes. Le robot explore depuis un pays donné, et ne verra que la version correspondante. Et le visiteur qui veut consulter une autre version se retrouve piégé.

La bonne pratique : servir la page demandée, et proposer une bannière discrète qui suggère l'autre version.

Vérifier

La Search Console signalait autrefois les erreurs hreflang dans un rapport dédié, retiré depuis. La vérification passe donc par un crawler capable de contrôler la réciprocité et l'auto-référence sur l'ensemble du site, ou par un contrôle manuel sur un échantillon représentatif de chaque gabarit.