Hreflang pour site bilingue au Canada : servir la bonne langue à Google
Ton site existe en français et en anglais, mais un client de Gatineau qui cherche en français tombe sur ta page anglaise. Ou pire : Google considère tes deux versions comme du contenu dupliqué et n'en classe qu'une. Ces deux problèmes ont la même solution, un attribut HTML qui tient en une ligne : hreflang. Bien implémenté, il dit à Google quelle version servir à qui. Mal implémenté, il ne fait rien du tout, et c'est le cas sur une bonne partie des sites bilingues canadiens.
C'est quoi, hreflang?
Hreflang est un attribut qu'on place dans le code d'une page pour déclarer ses versions linguistiques. Concrètement, ta page française dit à Google : « ma version anglaise est à telle adresse », et ta page anglaise dit l'inverse. Google s'en sert pour afficher la bonne version selon la langue et la localisation de la personne qui cherche.
Sans hreflang, Google devine. Parfois il devine bien. Parfois il classe ta page anglaise sur une requête francophone parce qu'elle a plus de liens entrants, et ton taux de rebond explose.
Un point important : hreflang est un signal, pas une directive. Google peut l'ignorer s'il juge qu'une autre version convient mieux. Mais dans la pratique, une implémentation propre règle la grande majorité des problèmes de mauvaise langue servie.
Langue et région : la nuance qui change tout au Canada
Un code hreflang se compose d'un code de langue, optionnellement suivi d'un code de région. Pour un site canadien bilingue, les deux codes utiles sont :
fr-ca: français, Canadaen-ca: anglais, Canada
Tu peux aussi utiliser les codes de langue seuls (fr, en). Le choix dépend de ton marché. Si tu vends uniquement au Canada, fr-ca et en-ca sont cohérents. Si ton contenu français vise aussi la France ou la Belgique, un fr générique évite de t'exclure de ces marchés.
La combinaison des deux est souvent la plus fine : tu déclares fr-ca pour cibler le Québec et le Canada francophone, et fr comme version de repli pour le reste de la francophonie. Attention toutefois : chaque combinaison ajoutée doit exister réellement. Ne déclare pas un fr-fr qui pointe vers la même page que ton fr-ca en espérant un gain, tu crées juste de la confusion.
x-default : la version par défaut
Le code spécial x-default désigne la page à servir quand aucune langue déclarée ne correspond à l'utilisateur. Pour un site canadien, c'est souvent la version anglaise, ou une page de sélection de langue. Déclare-le systématiquement : il évite à Google d'improviser pour un visiteur allemand ou japonais.
Les trois façons d'implémenter hreflang
Dans le head HTML
La méthode la plus courante. Chaque page contient une balise link par version, y compris vers elle-même :
<link rel="alternate" hreflang="fr-ca" href="https://tonsite.ca/fr/services/" />
<link rel="alternate" hreflang="en-ca" href="https://tonsite.ca/en/services/" />
<link rel="alternate" hreflang="x-default" href="https://tonsite.ca/en/services/" />
Ces trois lignes doivent apparaître telles quelles sur la version française ET sur la version anglaise. C'est la règle la plus violée du hreflang, on y revient plus bas.
Dans le sitemap XML
Tu peux déclarer les équivalences dans ton sitemap plutôt que dans chaque page. Même logique, syntaxe différente. Avantage : tout est centralisé et tu ne gonfles pas le code de tes pages. Inconvénient : c'est plus facile d'oublier de le mettre à jour quand tu ajoutes des pages.
Dans l'en-tête HTTP
Réservé aux fichiers non HTML, comme un PDF bilingue. Rare, mais bon à connaître.
Choisis une seule méthode et tiens-t'en à elle. Mélanger les trois multiplie les risques d'incohérence.
L'erreur numéro un : les liens non réciproques
Hreflang fonctionne par paires confirmées. Si ta page française déclare sa version anglaise, la page anglaise doit déclarer la version française en retour. Sans cette réciprocité, Google ignore l'annotation. Complètement.
C'est là que la plupart des implémentations échouent : un gabarit est mis à jour d'un côté du site et pas de l'autre, une page anglaise est supprimée sans retirer sa déclaration côté français, une refonte change les URL d'une seule langue. Le balisage a l'air en place, mais il ne produit rien.
Les autres pièges classiques :
- Pointer vers une page redirigée ou en erreur. Chaque URL déclarée doit répondre en 200 et être indexable.
- Utiliser le mauvais code de région.
en-ukn'existe pas (c'esten-gb), etcaseul désigne le catalan, pas le Canada. Oui, des sites québécois ont déjà déclaré tout leur contenu en catalan. - Oublier l'auto-référence. Chaque page doit se déclarer elle-même dans ses annotations.
- Contredire la balise canonical. Si ta page française a une canonical qui pointe vers la version anglaise, tu annules ton hreflang. Chaque version linguistique garde sa propre canonical vers elle-même.
Avec WordPress et les autres CMS
Sur WordPress, les extensions multilingues comme WPML ou Polylang génèrent le hreflang automatiquement quand tu relies les traductions entre elles. Le point de vigilance n'est pas technique, il est humain : chaque nouvelle page doit être correctement liée à sa traduction dans l'extension, sinon l'annotation manque.
Sur les frameworks modernes (Nuxt, Next et compagnie), les modules i18n génèrent les balises à partir de ta configuration de langues. Vérifie le rendu final dans le code source plutôt que de faire confiance à la configuration.
Dans tous les cas, valide après chaque changement majeur. La Search Console ne remonte plus les erreurs hreflang en détail, alors passe ton site dans un validateur dédié ou un crawler qui vérifie la réciprocité. Un audit technique régulier, comme celui que Gridar effectue sur tes pages, permet aussi d'attraper les annotations brisées avant qu'elles coûtent des positions.
Ce que ça change concrètement
Un hreflang propre produit des effets mesurables : tes pages françaises apparaissent sur les requêtes en français, tes pages anglaises sur les requêtes en anglais, et le risque de dilution entre versions disparaît. Pour un marché comme le Québec, où le choix des mots diffère même entre le français d'ici et celui de France, servir la bonne version n'est pas un détail de conformité. C'est ce qui décide si ton contenu rejoint la personne qui le cherche, dans la langue où elle le cherche.
Commence par vérifier trois pages clés de ton site : la page d'accueil, ta page de services principale et ton article le plus visité. Regarde le code source, cherche « hreflang », et vérifie la réciprocité des deux côtés. Si quelque chose cloche là, il y a du travail sur le reste du site.