Certains sites se doivent de mettre en place une stratégie SEO à l'international pour passer outre la frontière d'un seul pays pour leur visibilité. La prise en compte de cet aspect, de cette évolution et de cette expansion, n'est pas chose simple en SEO et il est surtout très important de partir sur des bases solides, afin de ne pas avoir à tout remettre en question à un moment donné, parfois même lorsqu'un certain point de non-retour est atteint. Dans cette série d'articles, nous essayons de vous donner toutes les informations, tous les paramètres d'une équation internationale afin de gérer au mieux ce sujet. Après avoir traité les aspects d'approche générale et de stratégie par langue et/ou par pays puis le choix de l'adresse du site web, nous abordons ce mois-ci les balises Hreflang, élément technique indispensable à votre visibilité dans de nombreux pays.

Par Olivier Andrieu

 

Résumons-nous : dans la première partie de cette série d'articles, nous avons d'abord insisté sur les aspects stratégiques généraux d'une visibilité SEO à l'internatonal. Puis, le mois dernier, nous avons envisagé les différentes façons de créer les adresses de vos sites web, adaptées pour chaque pays-cible. Ce mois-ci, nous allons étudier un élément devenu indispensable dans le cadre du web international : la balise Hreflang. Pour ce faire, nous allons, comme précédemment, prendre l'exemple d'un site qui désire être visible dans les pays suivants : France, Espagne, Grande-Bretagne, Allemagne, Etats-Unis, Belgique et Suisse.

Genèse de la balise Hreflang

La balise Hreflang a été créée et annoncée en décembre 2011 (l'annonce officielle est disponible ici). Elle faisait suite à la disponibilité d'autres balises, précédemment utilisées et assez proches dans leurs fonctionnalités. En cela, on peut dire que la balise Hreflang proposée il y a 7 ans maintenant était avant tout une amélioration de ce qui existait à l'époque. Elle a en revanche asez peu évolué depuis.

A quoi ressemble-t-elle ?

La balise Hreflang se situe toujours dans la partie HEAD du code HTML et peut prendre plusieurs formes :

• Avec 2 paramètres, elle indique la langue (1er paramètre) et le pays-cible (second paramètre).
Exemple pour une page écrite en français (fr")  destiné aux internautes situés  en Belgique ("BE") :

<link rel="alternate" hreflang="fr-BE" href="http://www.example.be/page.html" />

A noter qu'un usage veut que la langue soit parfois écrite en minuscules et le pays en majuscules, mais il ne s'agit là que d'un usage. Toutes les autres variantes (minuscules, majuscules) fonctionnent également.

• Avec 1 paramètre, elle indique la langue (et pas le pays).
Exemple pour une page écrite en français ("fr") sans indication géographique :

<link rel="alternate" hreflang="fr" href="http://www.example.fr/page.html" />

Attention : il n'est pas possible de n'utiliser qu'un code "pays", sans langue. Si un seul paramètre est indiqué, il définira obligatoirement la langue. Le code pays doit donc obligatoirement être utilisé conjointement avec le code langue.

• Une troisième forme ("x-default", ajoutée en avril 2013) est possible, pour le cas où aucune langue et aucun pays ne sont spécifiés :

<link rel="alternate" hreflang="x-default" href="http://www.example.com/" />

Dans ce cas, il peut par exemple s'agir de la page d'aiguillage proposant un système de choix de la langue et/ou du pays de vos différents sites.

D'autres possibiltés sont également fournies pour proposer les indications Hreflang (en-tête HTTP, fichier Sitemap XML), comme nous le verrons par la suite dans cet artice.

La langue doit être signifiée sous la forme d'un code à deux lettres selon le format ISO 639-1.
Le pays doit être indiqué au format ISO 3166-1 alpha-2.

Comment les intégrer dans une page web ?

Attention : contrairement à ce qu'on lit ou entend parfois, la balise Hreflang ne sert pas uniquement à indiquer la langue et le pays-cible de la page qui contient cette balise, mais également de toutes les autres pages similaires correspondant aux autres pays (voire autres langues) sur les autres sites.

Prenons l'exemple d'un site présent en France, Espagne, Grande-Bretagne, Allemagne, Etats-Unis, Belgique et Suisse sous ces adresses :
• www.stela.fr
• www.stela.es
• www.stela.co.uk
• www.stela.de
• www.stela.com
• www.stela.be
• www.stela.ch

Les pages d'accueil de TOUS ces sites contiendront donc TOUTES les balises suivantes :

<link rel="alternate" hreflang="fr-FR" href="http://www.stela.fr/" />
<link rel="alternate" hreflang="es-ES" href="http://www.stela.es/" />
<link rel="alternate" hreflang="en-GB" href="http://www.stela.co.uk/" />
<link rel="alternate" hreflang="de-DE" href="http://www.stela.de/" />
<link rel="alternate" hreflang="en-US" href="http://www.stela.com/" />
<link rel="alternate" hreflang="fr-BE" href="http://www.stela.be/" />
<link rel="alternate" hreflang="fr-CH" href="http://www.stela.ch/" />

Une page interne (par exemple sur le site français : http://www.stela.fr/epicerie/sel.html) contiendra alors, pour chacun de ces sites, TOUTES les balises suivantes :

<link rel="alternate" hreflang="fr-FR" href="http://www.stela.fr/epicerie/sel.html" />
<link rel="alternate" hreflang="es-ES" href="http://www.stela.es/especias/sal.html" />
<link rel="alternate" hreflang="en-GB" href="http://www.stela.co.uk/grocery/salt.html" />
<link rel="alternate" hreflang="de-DE" href="http://www.stela.de/lebensmittelgeschaft/salz.html"  " />
<link rel="alternate" hreflang="en-US" href="http://www.stela.com/grocery/salt.html" />
<link rel="alternate" hreflang="fr-BE" href="http://www.stela.be/epicerie/sel.html" />
<link rel="alternate" hreflang="fr-CH" href="http://www.stela.ch/epicerie/sel.html" />

Et, bien sûr, chacune de ces URL doit exister et renvoyer un code 200 (sinon, une erreur sera renvoyée dans la Search Console - voir ci-après - et les deux balises seront ignorées).

Votre CMS doit donc être capable (soit nativement, soit au travers d'un plugin-extension) de gérer ces balises Hreflang. Si ce n'est pas le cas, il vous faudra prévoir un dévelopement spécifique supplémentaire.

Voici quelques extensions disponibles pour quelques CMS open source :

• WordPress : Polylang, WPML, Hrefang Tags Lite, etc.
• Joomla : JSitemap, IreneCore SEO, db8 Hreflang .
• Drupal : Hreflang, Hreflang Sitemap.

Pour les autres CMS, à vous de faire des recherches (qui ne devraient pas être très complexes à mener avec une requête de type : "[nom de votre CMS] hreflang").

Continuons avec d'autres indications importantes :
• Les URL dans les balises doivent être absolues (et donc non relatives) et doivent mentionner le protocole utilisé (http ou https).
• Si votre stratégie n'est basée que sur un site, disponible en une seule langue pour un seul pays, les balises Hreflang sont inutiles.
• Les balises Hreflang sont prises en compte par les moteurs de recherche Google et Yandex, mais pas par Bing.
• Conseil fourni par Google dans son aide en ligne officielle : Si vous utilisez plusieurs URL de variantes ciblant des internautes parlant la même langue, mais situés dans des régions différentes, il est également recommandé de fournir une URL collectrice pour ceux dont la zone géographique n'est pas spécifiée. Par exemple, vous pouvez définir plusieurs URL qui ciblent les internautes francophones de Belgique (fr-be), du Canada (fr-ca) et de la Suisse (fr-ch), mais nous vous conseillons de fournir également une page générique en français (fr) pour les internautes situés en France et dans toutes les autres régions francophones. Si vous le souhaitez, vous pouvez utiliser l'une des pages ciblant déjà une variante linguistique.

Quelle forme choisir ?

Si vous avez suivi nos conseils depuis notre premier article, vous devriez deviner la réponse à cette question : il s'agit bien sûr de la première version, avec langue ET pays (le pays étant l'indication la plus importante, c'est la seule forme qui propose cette information). Idéalement, c'est donc cette forme que vous allez privilégier.

Les indications Hreflang dans les fichiers Sitemap XML

En mai 2012, Google indiquait qu'il était dorénavant possible, en complémentarité des indications dans le code HTML des pages (voir ci-dessus), d'intégrer les notifications Hreflang dans les fichiers Sitemap XML.

AInsi, ceux-ci peuvent désormais proposer des indications de ce type :

<url>
<loc>http://www.stela.fr/</loc>
<xhtml:link
rel="alternate"
hreflang="es-ES"
href="http://www.stela.es" />
<xhtml:link
rel="alternate"
hreflang="en-GB"
href="http://www.stela.co.uk" />
<xhtml:link
rel="alternate"
hreflang="de-DE"
href="http://www.stela.de" />
<xhtml:link
rel="alternate"
hreflang="en-US"
href="http://www.stela.com" />
<xhtml:link
rel="alternate"
hreflang="fr-BE"
href="http://www.stela.be" />
<xhtml:link
rel="alternate"
hreflang="fr-CH"
href="http://www.stela.ch" />
</url>

Et ainsi de suite...

Les deux indications (code HTML et SItemap XML) ne sont pas antinomiques, aussi vous pouvez les proposer toutes les deux sans aucun problème. A condition, bien sûr, qu'elles soient cohérentes et qu'elles proposent toutes les deux les mêmes informations pour une page donnée ! Cela va sans dire mais beaucoup mieux en le disant... 😉

Là encore, il faudra vérifier si votre CMS ou votre outil de création de Sitemap XML est compatible avec cette fonctionnalité. Sinon, il vous faudra la rajouter au prix d'un développement spécifique...

Les indications Hreflang dans les entête HTTP

On l'oublie souvent, mais les indications Hreflang peuvent également être notifiées dans l'entête HTTP  délivrée par le serveur. Cela peut servir dans certains cas spécifiques, et notamment l'utilisation de fichiers au format "non HTML" comme le PDF, les fichiers Office, etc.

Exemple d'entête HTTP dans ce cas :

Link: <http://www.stela.fr/fichier.pdf>; rel="alternate"; hreflang="fr-FR",
<http://www.stela.co.uk/file.pdf>; rel="alternate"; hreflang="en-GB",
<http://www.stela.es/expediente.pdf>; rel="alternate"; hreflang="es-ES",
<http://www.stela.de/datei.pdf>; rel="alternate"; hreflang="de-DE",
<http://www.stela.com/file.pdf>; rel="alternate"; hreflang="en-US",
<http://www.stela.be/fichier.pdf>; rel="alternate"; hreflang="fr-BE",
<http://www.stela.ch/fichier.pdf>; rel="alternate"; hreflang="fr-CH"

Balises Hreflang et Search Console

La Search Console (dans son ancienne version au moment où ces lignes étaient écrites) propose un outil de gestion et d'analyse des balises Hreflang (Trafic de recherche > Ciblage international) :


Fig.1 : interface de la Search Console concernant les balises Hreflang.

Cet outil indiquera les nombre de balises Hreflang trouvées dans le site en question ainsi que le nombre d'erreurs éventuellement rencontrées (tout va bien sur la copie d'écran ci-dessus).


Fig.2. Indication dans la Search Console d'erreurs sur les balises Hreflang..

Dans l'exemple de la figure 2, en revanche, de nombreuses erreurs sont renvoyées, avec le message "Aucune balise de renvoi", qui est de très loin le message d'erreur le plus courant. Cela signifie qu'une URL A contient par exemple deux balises Hreflang, l'une vers elle-même et l'autre vers la page correspondante sur le site B, mais que dans la page B, le code HTML ne contient pas de balise Hreflang en retour pour le site A. Bref, A pointe vers B, mais B ne pointe pas vers A. Dans ce cas, la balise de la page A sera ignorée.

Ces erreurs doivent bien entendu être corrigées. Aucune erreur sur les balises Hreflang ne doit apparaître dans la Search Console.

Notons ici que cet outil devrait être prochainement transféré sur la nouvelle search Console, mais on ne sait pas encore sous quelle forme...

Les outils en ligne

La Search Console n'est pas la seule façon d'analyser les balises Hreflang. L'aide en ligne officielle de Google en signale trois autres, développés par des sociétés tierces :

• Le générateur de balises hreflang d'Aleyda Solis.
• L'outil de test du site Technocal SEO.
• Un autre outil de vérification et de validation de ces balises.

On peut également citer :
• Le site Erudite qui propose un outil de création de Sitemap XML avec options Hreflang.
• L'outil de validation de balises de DejanSEO.

Conclusion

A partir du moment où, dans votre stratégie de visibilité, vous optez pour une approche internationale, les balises Hreflang deviennent une condition sine qua non. Attention : elles ne sont pas si simples que cela à intégrer dans un site web, en particulier parce que tous les CMS ne disposent pas d'options permettant de les gérer de façon native. Faites bien attention à leur mise en place et multipliez les tests afin d'être sûr que tout est parfaitement géré.

Dernier conseil : n'hésitez pas à jeter un coup d'œil aux codes sources des sites Googlefight (https://www.googlefight.fr/ pour la version française), ils proposent dans toutes leurs pages des balises Hreflang qui vous donneront un exemple d'intégration de ces informations...

Webographie / Pour en savoir plus sur les balises Hreflang

• L'aide en ligne officielle de Google.
• Notre vidéo sur le sujet.
• Un précédent article du site Réacteur (mai 2013) sur les balises Hreflang.


Olivier Andrieu
R
édacteur en chef de la lettre "Réacteur".