Comment bien utiliser la balise « hreflang » pour gérer les sites multilingues ?

L’utilisation de la propriété « hreflang » est très utile dans un contexte international, voici quelques astuces pour bien l’utiliser.

Quand faut-il l’utiliser ?

La balise « xreflang » n’est utile que dans un contexte international. Si votre site s’adresse uniquement à un public français, vous n’avez pas besoin de lire ce qui suit !

Elle s’utilise dans deux cas suivants:

  • Vous couvrez plusieurs langues
  • Vous couvrez plusieurs pays qui parlent la même langue (Ex : France, Belgique,…)

Et vous avez des pages (ou sites spécifiques) pour satisfaire chaque utilisateur.

Par exemple :

Si votre site traite de la météo, vous allez créer une page avec la météo en ° Celsius pour la France et une page en ° Fahrenheit pour le Québec.

Il faut donc que Google détecte que ces deux pages ne sont pas du duplicate content et qu’il sache quelle page il doit afficher (en fonction de la localisation de l’internaute).

Où faut-il les placer ?

La balise se place dans le « Header » de chaque version de votre site.

Elle ressemble à ça :

<link rel="alternate" href="XXX" hreflang="fr-ca"/>

Chaque page doit comporter les tags pour toutes les langues / zones géographiques que vous souhaitez couvrir.

Quelle page par défaut ?

Dans la plupart des cas, vous allez gérer quelques exceptions. Pour le Québec, vous allez vouloir délivrer la page A mais pour tous les autres pays vous souhaiterais délivrer la page B.

Pour cela il vous faudra utiliser la propriété « x-default »

<link rel="alternate" href="XX" hreflang="x-default" />

Comment retrouver le code du pays ?

Le format de langue pris en compte est le suivant : ISO 639-1.

Vous trouverez l’intégralité des codes ici

Comment la générer ?

Il existe un petit outil très sympa qui permet de générer simplement le code HTML à intégrer dans vos pages :

http://www.internationalseomap.com/hreflang-tags-generator/

Et l’outil vous retourne le code à placer :

<link rel= »alternate » href= »www.google.fr » hreflang= »fr-fr » />
<link rel= »alternate » href= »www.google.be » hreflang= »fr-be » />
<link rel= »alternate » href= »www.google.co.uk » hreflang= »en-gb » />

Comment tester ?

Là encore il existe un outil qui vous permettra de valider l’implementation de votre tag

http://flang.dejanseo.com.au/

Vous y saisissez l’url que vous souhaitez tester et l’outil vous retourne la version du site associée à chaque région

Conclusion

18 réflexions au sujet de « Comment bien utiliser la balise « hreflang » pour gérer les sites multilingues ? »

  1. Bonjour,

    J’ai bien mis en place dans le header les balises, quand je fais le test sur flang, j’ai cette note :  » Canonical conflict  » A quoi c’est dû ?

    Merci,

    Sophie.

  2. Salut Grégory,
    Merci pour ton article et pour les outils :)
    J’avais une question concernant l’implémentation des hreflang sur les pages.
    J’ai un site A ciblant la France avec toutes les pages qui en découlent (page A1, page A2…).
    J’ai un site B ciblant l’Allemagne avec également page B1, page B2…

    Il y a certaines pages françaises qui n’existent pas en version allemande. Comment cela se passe pour l’implémentation des balises linguistiques ? Est-ce que l’on peut ajouter la balise uniquement sur la HP ou bien faut-il également l’ajouter sur l’ensemble des pages ?

    Merci

    1. Comme tu implémentes une balise différente sur chaque page ( sur A1, tu pointe vers B1), tu es libre de choisir où tu veux faire la « redirection ».
      Donc tu peux décider d’implementer la balise pour toutes les pages qui existent dans les 2 langues et de ne rien mettre quand ton contenu n’existe qu’en français

  3. Merci pour l’article!
    petite question: existe-t-il un moyen de générer automatiquement les codes à placer dans la section ? Je m’explique, le site fait plus de 10000 pages et j’aimerais automatiser le processus car faire ça à la main est chronophage…
    merci pour la réponse!

    1. Salut,

      Tu peux utiliser les sitemaps pour implémenter le hreflang.

      Du coup tu peux le générer automatiquement si tu as les données stockées quelque part.

  4. Bonjour,
    Très intéressant comme article, car je nage complètement.
    A savoir, J’ai un site réparti sur deux extensions, .com et .ch avec trois langues: FR – DE – GB
    1) .com -> « Monde »
    http://www.boniclassic.com/fr/
    http://www.boniclassic.com/de/
    http://www.boniclassic.com/gb/
    2) .ch -> « Suisse »
    http://www.boniclassic.ch/fr/
    http://www.boniclassic.ch/de/
    http://www.boniclassic.ch/gb/

    Aussi, j’ai fais installer manuellement des balises hreflang sur mes sites, mais apparement cela a été mal installé car j’ai ces messages sur mon site .ch : « aucune balise de renvoi »
    Lorsque je teste avec l’outils que tu fournis j’ai ce message:
    ID Alternate URL Language Region Notes
    1. http://www.boniclassic.com/fr Reciprocal not found
    2. http://www.boniclassic.ch/fr French Switzerland Hreflang attributes don’t match ( != fr)
    Et là je me perds…
    Merci,

    Boniface

    1. Il faut que sur chaque page, tu reprennes toutes les balise hreflang vers les autres langues /pays couverts (même celle sur laquelle tu es).
      Pour une même page d’un pays à l’autre le contenu de tes balises est identique.

      Hope that help 😉

  5. Bonsoir Greg
    Merci pour cet article (très bien référencé)

    Je rencontre le même souci que Boni concernant le « reciprocal not found »
    J’essaye de suivre ta recette concernant la personnalisation du paramètre href Lang, mais dans la mesure où il est implémenté dans le header, comment est-il alors possible de le modifier au cas par cas ?

    Merci encore

    1. En fait pour chacun de tes sites tu dois donner toutes les valeurs possibles.

      Si tu as 3 site : fr, es et it

      Sur chacun des sites tu dois placer 3 balises (une pour chaque langue). Y compris celui sur lequel tu te trouves.

      Greg

      1. …C’est pourtant exactement ce que j’ai fait sur les deux sites, de façon bijective et avec les balises ad hoc dont je suis sûr (et qui sont les mêmes que celle que vous préconisez). Je n’arrive pas à identifier ce qui cloche encore.
        Merci de votre aide :)

    1. Hello,

      Le souci n’est présent que sur la HP. Car rien ne pointe vers elle. Sur les autres pages l’outil ne remonte pas d’erreurs.

      J’ai l’impression que ta HP génère du duplicate content puisque tu accèdes au même contenu avec ou sans le /fr.

      J’ai plutôt l’habitude d’utiliser les sous domaine ce qui évite de ce type de cas

  6. Bonjour greg,

    en fonction des articles que je regarde sur internet le x-default n’a pas la même signification. Certains disent qu’il doit pointer vers l’url qui permet de choisir toutes les langues et qu’il ne faut pas considéré ce tag comme étant la redirection vers la langue par défault si langue du client non supporté (ex : si non supporté rediriger vers l’anglais).
    Et d’autres disent l’inverse. Je suis donc un peu perdu. J’ai cependant tester les deux et j’ai toujours la même erreur dans la search console de google à savoir :

    http://puu.sh/pF26F/363ccc2892.png
    http://puu.sh/pF29q/d670d1e6ad.png

    Je suis ouvert à toute recommandation pour corriger cette erreur qui me bloque depuis des mois.

    Merci :)

    1. Le « X default » permet de définir la page équivalente pour toutes les langues non renseignées.

      Côté SEO il a peu d’impact car le transfert de popularité ne s’effectue que lorsque tu restes sur la même langue. Ce que tu ne pourras pas matérialiser avec la version X default

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *