Hreflang fait référence à l'attribut d'une balise HTML <link rel="alternate" hreflang="x" href="X">. Cette balise est principalement utilisée par les webmasters en SEO (référencement naturel) pour l'optimisation d'un site web multilingue et international dans les moteurs de recherche.

Contexte modifier

De nombreux sites Web publient du contenu à destination de publics parlant différentes langues et situés dans différentes zones géographiques. Mais cela risque de générer beaucoup de contenu dupliqué (ou assimilé à du contenu dupliqué), ainsi que des problèmes de ciblage avec les utilisateurs des moteurs de recherche.

Les moteurs de recherche utilisent les balises hreflang pour mieux interpréter et comprendre le ciblage linguistique et géographique d'une page web et utilisent ces informations pour afficher la bonne URL dans les résultats de recherche aux bons utilisateurs (selon sa langue et sa région/pays)[1].

Il existe 3 scénarios de base pour lesquels il est nécessaire de considérer l'implémentation de balises hreflang :

  • Même pays, langues différentes
  • Différents pays, différentes langues
  • Différents pays, même langue

Mise en œuvre modifier

L'attribut Hreflang peut être implémenté de 3 manières différentes :

  • une balise HTML link dans la partie <head> de la page
  • En-tête HTTP
  • Sitemaps XML

Codes langue et codes pays modifier

Une langue ou une combinaison de langue et de région géographique (que l'on appelle locale) doit être utilisée comme valeur. Afin d'éviter toute erreur de paramétrage, pour la génération de ces valeurs il est très important de se référer Hreflang à la norme ISO 639-1 pour les langues et ISO 3166-1 pour les codes pays. Il n'est pas autorisé de ne mentionner qu'un seul code pays, il doit toujours être accompagné d'un code langue en première position.

Exemple de langueenfrbe

Exemple de langue et de région géographiquefr-CAen-CAen-US

Erreurs courantes dans la mise en place modifier

Une utilisation incorrecte des balises hreflang peut amener les moteurs de recherche à les ignorer. Les robots indexeurs se basent alors sur d'autres informations qui peuvent les amener à ne pas présenter la bonne version (dans la bonne langue) aux bons utilisateurs.

Voici quelques erreurs courantes lors de la mise en œuvre des balises hreflang [2]:

  • Les codes langues ou les codes pays sont erronés
  • Ordre incorrect des codes langue et codes pays
  • Utiliser uniquement le code pays sans la langue
  • Pas de balise hreflang auto-référencée
  • Plusieurs URL sont spécifiées pour la même valeur hreflang
  • Le lien hreflang pointe vers une page redirigée
  • Définir un code pays UK plutôt que GB
  • Lien hreflang rompu
  • Balises hreflang réciproques manquantes dans les URL de destination
  • Utilisation d'un underscore plutôt qu'un tiret pour séparer la langue du pays
  • La non-utilisation d'URL absolues

HTML modifier

<link rel="alternate" hreflang="en-US" href="http://example.com/page.html">
<html>
    <head>
        <link rel="alternate" hreflang="en-US" href="http://example.com/page.html">
        <link rel="alternate" hreflang="en-CA" href="http://example.com/en-ca/page.html">
        <link rel="alternate" hreflang="en-GB" href="http://example.com/en-gb/page.html">
        <link rel="alternate" hreflang="fr-CA" href="http://example.com/fr-ca/page.html">
        <link rel="alternate" hreflang="x-default" href="http://example.com/page.html">
    </head>
    <body>
    ...
    </body>
</html>

HTTP modifier

HTTP/1.1 200 OK
Content-Type: application/pdf
Link: <http://example.com/page.pdf>; rel="alternate";hreflang="x-default", <http://uk.example.com/page.pdf>; rel="alternate";hreflang="en-GB",
<http://us.example.com/page.pdf>; rel="alternate";hreflang="en-US"
...

Sitemaps XML modifier

<?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>http://example.com/page.html</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="en-US"
                 href="http://us.example.com/page.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="en-GB"
                 href="http://uk.example.com/page.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="x-default"
                 href="http://example.com/page.html"
                 />
</url>
<url>
    <loc>http://us.example.com/page.html</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="en-GB"
                 href="http://uk.example.com/page.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="x-default"
                 href="http://example.com/page.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="en-US"
                 href="http://us.example.com/page.html"
                 />
</url>
<url>
    <loc>http://uk.example.com/page.html</loc>
    <xhtml:link
                 rel="alternate"
                 hreflang="en-US"
                 href="http://us.example.com/page.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="x-default"
                 href="http://example.com/page.html"
                 />
    <xhtml:link
                 rel="alternate"
                 hreflang="en-GB"
                 href="http://uk.example.com/page.html"
                 />
</url>
</urlset>
...

Liens externes modifier

Références modifier