Signaler les versions localisées de votre page à Google

Si vous proposez plusieurs versions linguistiques ou régionales d'une même page, vous pouvez indiquer ces variantes à Google. De cette façon, les internautes seront redirigés vers la version linguistique ou régionale la plus appropriée dans la recherche Google.

Si vous n'informez pas Google, il se peut que nous puissions tout de même détecter les différentes versions linguistiques de votre page. Toutefois, il est généralement préférable de nous indiquer explicitement les pages spécifiques aux langues ou aux régions que vous couvrez.

Voici quelques exemples de scénarios où il conseillé de nous communiquer vos versions linguistiques ou régionales :

  • La langue du contenu principal ne change pas et seul le modèle de la page est traduit, comme les éléments de navigation et le pied de page. C'est souvent le cas sur les pages dont le contenu est généré par l'utilisateur, comme un forum.
  • Votre contenu est identique dans une langue donnée, à l'exception de quelques variantes régionales. Par exemple, un contenu en français peut cibler les internautes de Belgique, de France et de Suisse.
  • Le contenu du site est traduit dans son intégralité dans plusieurs langues. Chaque page est disponible en allemand et en français, par exemple.

Les versions localisées d'une page ne sont considérées comme des doublons que si le contenu principal de la page n'est pas traduit.

Méthodes à suivre pour indiquer des variantes de pages

Trois approches permettent d'indiquer plusieurs versions linguistiques ou régionales d'une page à Google :

Consignes applicables à toutes les méthodes

  • Chaque version linguistique doit se référencer elle-même et indiquer aussi toutes les autres versions linguistiques de la page.
  • Les URL des variantes doivent être complètes et doivent mentionner le mode de transport (http/https), soit :
    https://example.com/foo, mais pas //example.com/foo ni /foo
  • Le domaine associé aux URL des variantes ne doit pas nécessairement être le même.
  • 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 anglophones d'Irlande (en-ie), du Canada (en-ca) et d'Australie (en-au), mais nous vous conseillons de fournir également une page générique en anglais (en) pour les internautes situés aux États-Unis, au Royaume-Uni et dans toutes les autres régions anglophones. Si vous le souhaitez, vous pouvez utiliser l'une des pages ciblant déjà une variante linguistique.
  • Si deux pages ne redirigent pas l'une vers l'autre, les balises sont ignorées. Cette précaution a pour objectif d'empêcher le propriétaire d'un autre site de créer arbitrairement une balise indiquant qu'il s'agit d'une variante de l'une de vos pages alors que ce n'est pas le cas.
  • S'il devient difficile de gérer un ensemble complet de liens bidirectionnels pour chaque langue, vous pouvez omettre certaines langues sur certaines pages. Nous traiterons tout de même celles qui renvoient les unes vers les autres. Cependant, il est important de créer des liens bidirectionnels entre les pages proposées dans des nouvelles langues et la langue d'origine ou principale. Par exemple, si votre site a été initialement créé en français avec des URL en .fr, il est plus important de lier de manière bidirectionnelle les nouvelles pages mexicaines (.mx) et espagnoles (.es) à votre présence déjà établie en .fr plutôt que de créer un lien bidirectionnel entre les nouvelles variantes espagnoles (.mx et .es) de vos pages.
  • Envisagez d'ajouter une page de substitution pour les langues sans correspondance, surtout pour les outils de sélection de la langue ou du pays, ou pour les pages d'accueil redirigeant automatiquement l'internaute. Utilisez la valeur x-default :
    <link rel="alternate" href="http://example.com/" hreflang="x-default" />

Balises HTML

Ajoutez des éléments <link rel="alternate" hreflang="lang_code"... > à l'en-tête de la page pour indiquer à Google toutes ses variantes linguistiques et régionales. Cette méthode est utile si vous n'avez pas de sitemap ou si vous n'avez pas la possibilité de spécifier des en-têtes de réponse HTTP pour votre site.

Pour chaque variante de page, incluez un ensemble d'éléments <link> dans l'élément <head>, soit un lien pour chaque variante, y compris la page elle-même. L'ensemble de liens est identique pour chaque version de la page. Consultez les consignes supplémentaires.

Voici la syntaxe de chaque élément link :

<link rel="alternate" hreflang="lang_code" href="url_of_page" />
Syntaxe
lang_code Code de langue ou de région standard ciblé par la version de la page, ou attribut x-default pour indiquer toutes les langues qui ne sont pas répertoriées explicitement par une balise hreflang sur la page.
url_of_page URL complète de la version de la page pour la langue ou la région spécifiée.

Exemple

Le site Web de l'entreprise Example Widgets, Inc. est destiné aux internautes qui résident en Allemagne, aux États-Unis et en Grande-Bretagne. Le contenu des URL suivantes est globalement le même, mais présente des différences régionales :

URL avec variantes régionales
http://en.example.com/page.html Page d'accueil en anglais standard qui contient des informations sur les frais de port à l'international depuis les États-Unis.
http://en-gb.example.com/page.html Page d'accueil destinée au Royaume-Uni et indiquant les prix en livres sterling.
http://en-us.example.com/page.html Page d'accueil destinée aux États-Unis et indiquant les prix en dollars américains.
http://de.example.com/page.html Page d'accueil en allemand.
http://www.example.com/ Page d'accueil par défaut qui ne cible aucune langue ni aucune région spécifique, avec un outil de sélection qui permet à l'internaute de choisir sa langue et sa région.

Notez que les sous-domaines spécifiques à la langue dans ces URL (en, en-gb, en-us, de) ne sont pas utilisés par Google pour déterminer l'audience cible de la page. C'est vous qui devez explicitement associer l'audience cible.

Voici le code HTML à coller dans la section <head> de toutes les pages indiquées ci-dessus. Il renvoie les internautes situés aux États-Unis ou au Royaume-Uni, ainsi que ceux parlant l'allemand ou l'anglais standard, vers les pages localisées. Tous les autres utilisateurs sont redirigés vers une page d'accueil générique. La recherche Google propose aux internautes le résultat le plus approprié en fonction de leurs paramètres de navigateur.

<head>
 <title>Widgets, Inc</title>
  <link rel="alternate" hreflang="en-gb"
       href="http://en-gb.example.com/page.html" />
  <link rel="alternate" hreflang="en-us"
       href="http://en-us.example.com/page.html" />
  <link rel="alternate" hreflang="en"
       href="http://en.example.com/page.html" />
  <link rel="alternate" hreflang="de"
       href="http://de.example.com/page.html" />
 <link rel="alternate" hreflang="x-default"
       href="http://www.example.com/" />
</head>

En-têtes HTTP

Vous pouvez renvoyer un en-tête HTTP avec la réponse GET de votre page pour indiquer à Google toutes ses variantes linguistiques et régionales. Cette option est utile pour les fichiers non HTML (comme les fichiers PDF).

Voici le format de l'en-tête :

Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...
Syntaxe
<url_x> URL complète de la variante de page correspondant à la chaîne de paramètres régionaux assignée à l'attribut hreflang associé. L'URL doit être délimitée par les signes < et >. Exemple : <https://www.google.com>
lang_code_x Code de langue ou de région standard ciblé par la version de la page, ou attribut x-default pour indiquer toutes les langues qui ne sont pas répertoriées explicitement par une balise hreflang sur la page.

Vous devez spécifier un ensemble de valeurs <url>, rel="alternate" et hreflang pour chaque version de la page, y compris la version demandée, en veillant à les séparer par une virgule comme indiqué dans l'exemple ci-dessous. L'en-tête Link: affiché pour chaque version d'une page est identique. Consultez les consignes supplémentaires.

Exemple

Voici un exemple d'en-tête Link: renvoyé par un site incluant trois versions d'un fichier PDF : une pour les anglophones, une pour les germanophones de Suisse et une pour tous les autres germanophones :

Link: <http://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <http://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
      <http://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

Sitemap

Vous pouvez utiliser un sitemap pour indiquer à Google toutes les variantes linguistiques et régionales de chaque URL. Pour ce faire, ajoutez un élément <loc> en spécifiant une URL unique, avec des entrées enfants <xhtml:link> qui répertorient toutes les variantes linguistiques et régionales de la page, y compris la page elle-même. Par conséquent, si vous proposez trois versions d'une page, le sitemap comportera trois entrées, chacune avec trois entrées enfants identiques.

Règles relatives aux sitemaps :

  • Spécifiez l'espace de noms xhtml comme suit :
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Créez un élément <url> distinct pour chaque URL.
  • Chaque élément <url> doit inclure un élément enfant <loc> indiquant l'URL de la page.
  • Chaque élément <url> doit comporter un élément enfant <xhtml:link rel="alternate" hreflang="supported_language-code">, qui répertorie chaque version différente de la page, y compris la page elle-même. L'ordre de ces éléments enfants <xhtml:link> n'a pas d'importance. Toutefois, il est conseillé de les conserver dans le même ordre pour faciliter leur vérification.
  • Consultez les consignes supplémentaires.

Exemple

Prenons l'exemple d'une page en anglais destinée aux anglophones du monde entier, avec une variante destinée aux germanophones du monde entier et une autre variante pour les germanophones de Suisse. Suisses allemands :

  • www.example.com/english/page.html cible les anglophones.
  • www.example.com/deutsch/page.html cible les germanophones.
  • www.example.com/schweiz-deutsch/page.html cible les germanophones de Suisse.

Voici le sitemap de ces trois pages :

<?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://www.example.com/english/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/schweiz-deutsch/page.html</loc>
    <xhtml:link
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
</urlset>

Codes de langue et de région acceptés

La valeur de l'attribut hreflang permet d'indiquer la langue (au format ISO 639-1) ainsi que la région (facultatif, au format ISO 3166-1 Alpha 2) d'une autre version de l'URL. Si un seul code est spécifié, Google considère qu'il s'agit d'un code de langue. La langue n'a pas besoin d'être associée à la région. Exemple :

  • de : contenu en allemand, quelle que soit la région
  • en-GB : contenu en anglais destiné aux internautes situés au Royaume-Uni
  • de-ES : contenu en allemand destiné aux internautes en Espagne

Dans le cas des variantes linguistiques, le script adéquat est déterminé en fonction du pays. Par exemple, avec le code zh-TW ciblant les internautes situés à Taïwan, le script correspond automatiquement au chinois traditionnel. Vous pouvez également spécifier explicitement le script au format ISO 15924, comme suit :

  • zh-Hant : chinois (traditionnel)
  • zh-Hans : chinois (simplifié)

Il est possible de combiner un script et une région. Par exemple, le code zh-Hans-TW désigne le contenu en chinois simplifié destiné aux internautes situés à Taïwan.

Utiliser la balise x-default pour les langues sans correspondance

La valeur réservée hreflang="x-default" est utilisée quand aucune autre langue ou région ne correspond aux paramètres de navigateur de l'utilisateur. Bien que cette valeur soit facultative, nous vous recommandons de la spécifier afin de déterminer la page à afficher dans ce cas de figure. Il peut être intéressant de cibler la page d'accueil de votre site et d'y inclure une carte cliquable permettant aux internautes de sélectionner leur pays.

Il n'est pas nécessaire de spécifier un code de langue pour la valeur x-default. La page cible les internautes dont les paramètres linguistiques sont différents sur votre site. La langue de la page n'est donc pas pertinente.

Dépannage

Erreurs fréquentes

Voici les erreurs fréquentes liées à l'utilisation de l'attribut hreflang :

  • Liens de renvoi manquants : si la page X renvoie vers la page Y, cette dernière doit également renvoyer vers la page X. Si ce n'est pas le cas pour toutes les pages qui utilisent des annotations hreflang, ces annotations peuvent être ignorées ou mal interprétées.
  • Codes de langue incorrects : assurez-vous que tous les codes de langue que vous utilisez indiquent la langue (au format ISO 639-1) ainsi que la région (facultatif, au format ISO 3166-1 Alpha 2) d'une autre version de l'URL. Indiquer simplement la région n'est pas suffisant.

Déboguer les erreurs hreflang

Reportez-vous au rapport sur le ciblage international pour corriger les erreurs fréquentes. Assurez-vous que vos pages ont été explorées par Google, puis cliquez sur l'onglet Langue du rapport pour voir si des erreurs ont été détectées.

De nombreux outils tiers sont également disponibles, tels que les outils populaires proposés ci-dessous. Sachez toutefois qu'ils ne sont ni gérés, ni vérifiés par Google.