Sur un site multilingue, une page française et sa version anglaise peuvent viser les mêmes sujets sans s’adresser aux mêmes lecteurs. Les balises hreflang aident les moteurs à associer ces URLs alternatives au bon public, à condition que chaque page indique correctement ses équivalents.
Avec WordPress, Polylang ou WPML peut gérer ces liens, tandis que Yoast SEO s’occupe généralement des canoniques. Avant toute modification, vérifiez donc la structure des adresses, les traductions disponibles et la configuration Yoast pour éviter des signaux contradictoires.
A retenir :
- Association fiable des versions linguistiques d’une même page
- URLs lisibles et cohérentes pour visiteurs, robots et caches
- Liens réciproques entre traductions réellement publiées
- Canoniques propres à chaque langue et région ciblée
WordPress et hreflang : choisir une structure d’URL cohérente
Le choix des adresses précède les réglages hreflang, car il détermine comment chaque langue sera explorée et mise en cache. Une structure adaptée rend le référencement international plus simple à maintenir.
Sous-répertoires, sous-domaines ou domaines locaux
Pour la plupart des projets, les sous-répertoires comme example.com/fr/ offrent un point de départ pratique. Ils gardent les langues sous un même nom d’hôte et distinguent naturellement les chemins dans les caches.
Les sous-domaines conviennent davantage à des équipes ou infrastructures séparées, tandis que les domaines nationaux reflètent une véritable activité par pays. Selon Google, les annotations hreflang peuvent relier des URLs hébergées sur un même domaine ou plusieurs domaines.
Les paramètres, par exemple ?lang=fr, demandent une vigilance particulière : un cache qui ignore ce paramètre pourrait servir la mauvaise langue. Avant de choisir, comparez les implications concrètes de chaque option.
Structures d’URL et implications techniques :
Structure
Atout principal
Point de vigilance
Sous-répertoire
Un seul hôte et chemins distincts
Signal pays limité par le domaine
Sous-domaine
Hébergement séparé possible
Gestion distincte des hôtes
Domaine national
Association claire à un pays
DNS et domaines à administrer
Paramètre d’URL
Langue indiquée dans la requête
Risque de cache mal segmenté
Polylang : fonctions et filtre à distinguer
Une fois les adresses stabilisées, il faut distinguer la liste des langues de la génération des liens alternatifs. Selon la documentation de Polylang, pll_languages_list() retourne les langues configurées et accepte notamment les arguments fields et hide_empty.
Cette fonction n’est pas un filtre hreflang : le filtre pll_rel_hreflang_attributes intervient sur le tableau que Polylang prépare pour l’en-tête. Protégez les appels spécifiques avec function_exists() et vérifiez leur compatibilité avec la version installée.
Vérifications avant le choix technique :
- Permaliens lisibles déjà activés dans WordPress
- Langues publiées et traductions associées correctement recensées
- Clé de cache distinguant chaque variante linguistique
- Environnement de préproduction disponible avant les redirections
Une structure stable facilite ensuite le travail essentiel : relier les pages équivalentes sans confondre langue, région et URL canonique.
Balises hreflang : règles de ciblage linguistique
Lorsque les URLs sont définies, les balises peuvent décrire les versions destinées à chaque lectorat. Le SEO multilingue repose alors sur des associations complètes, réciproques et cohérentes avec les pages réellement accessibles.
Codes de langue, régions et x-default
Chaque valeur combine un code de langue avec une région facultative : fr désigne le français, tandis que fr-CA cible spécifiquement le Canada. Selon Google, la région doit employer un code pays reconnu, et non une zone imprécise comme « eu ».
Le code x-default désigne une page de repli lorsque les autres versions ne correspondent pas au visiteur. Il convient souvent à une page de choix linguistique ou à la version par défaut du site.
Codes et usages fréquents :
Code
Usage
Exemple de cible
fr
Français sans région précisée
Lecteurs francophones de plusieurs pays
fr-CA
Français destiné au Canada
Page adaptée au marché canadien
en-GB
Anglais destiné au Royaume-Uni
Contenu adapté à ce marché
x-default
Version de repli
Page proposant un choix de langue
Liens réciproques et méthodes d’intégration
Pour que l’ensemble reste cohérent, chaque page doit se référencer elle-même et renvoyer vers ses équivalents. Si la page française mentionne l’anglaise, cette dernière doit également reconnaître la française.
Les annotations peuvent apparaître dans l’en-tête HTML, dans les réponses HTTP ou dans un sitemap XML. Selon Yoast, ces méthodes répondent au même objectif, mais les mélanger peut créer des listes divergentes difficiles à auditer.
Méthodes d’intégration à départager :
- En-tête HTML pour les pages web classiques
- En-têtes HTTP pour certains fichiers non HTML
- Sitemap XML pour centraliser les annotations
- Une méthode unique pour limiter les incohérences
Ces règles ne suffisent toutefois pas si les URL canoniques contredisent les langues annoncées ; l’accord avec Yoast SEO devient alors déterminant.
Yoast SEO et hreflang : vérifier les canoniques
Après la configuration des annotations, contrôlez la relation entre chaque hreflang et son URL canonique. Une traduction qui désigne une autre langue comme canonique envoie des indications incompatibles aux moteurs.
Configuration Yoast et URL canonique
Yoast SEO peut produire les canoniques tandis qu’une extension multilingue gère les alternates. Sur chaque langue, le canonical devrait généralement désigner la version de cette même page, et non une traduction différente.
Une valeur saisie manuellement dans les réglages avancés peut parfois être copiée lors de la création d’une traduction. Inspectez le code source de plusieurs pages et corrigez les canoniques qui pointent vers une autre langue.
Audit technique des traductions et du cache
Une fois les canoniques contrôlés, vérifiez les pages publiées, les liens retour et les réponses du serveur. Une traduction absente ou mise en brouillon peut expliquer une annotation qui ne trouve aucun retour.
Avec curl, comparez les balises présentes sur plusieurs URLs et inspectez les en-têtes de cache. Dans WordPress, WP-CLI peut aussi révéler quelles langues sont associées à chaque publication.
Contrôles à effectuer après publication :
- Ensemble hreflang identique sur chaque version liée
- Canonical propre à chaque URL linguistique
- Redirections des anciennes adresses à paramètres
- Réponses de cache conformes à la langue demandée
Une page traduite n’est utile que si son contenu mérite d’être proposé au public visé. Une traduction automatique non relue ne devient pas pertinente simplement parce que ses balises sont correctes.
Source : Google, « Versions localisées de vos pages » ; Yoast, « hreflang: the ultimate guide ».