Aller au contenu principal

Les 10 erreurs hreflang les plus courantes et comment les corriger

Évitez les erreurs d’implémentation hreflang les plus courantes. Du manque de réciprocité aux codes locale incorrects.

Hreflang Generator Team

Pourquoi les erreurs Hreflang sont si coûteuses

Les erreurs de balises hreflang sont particulièrement dommageables car elles échouent souvent silencieusement. Contrairement à un lien cassé qui renvoie un 404 visible, une balise hreflang mal configurée est simplement ignorée par les moteurs de recherche sans aucun avertissement sur la page elle-même. Le résultat : votre stratégie de SEO international semble correcte sur le papier mais n'apporte aucun bénéfice en pratique. Les moteurs de recherche affichent les mauvaises versions linguistiques aux utilisateurs, le contenu dupliqué dilue votre classement, et vous perdez du trafic organique sur des marchés dans lesquels vous avez spécifiquement investi.

Les dix erreurs suivantes représentent les problèmes d'implémentation hreflang les plus courants que nous observons sur des milliers de sites web multilingues. Chacune comprend une explication claire de ce qui ne va pas, pourquoi c'est important et comment y remédier.

Erreur 1 : Balises réciproques manquantes

Le problème : La page A inclut une balise hreflang pointant vers la page B, mais la page B n'inclut pas de balise hreflang pointant en retour vers la page A.

Hreflang requiert une confirmation bidirectionnelle. Si votre page anglaise dit "mon équivalent espagnol est à /es/page/", la page espagnole à /es/page/ doit également dire "mon équivalent anglais est à /en/page/". Cette confirmation mutuelle est la façon dont les moteurs de recherche vérifient que la relation est intentionnelle et non une erreur ou une tentative de manipulation.

Ce qui se passe : Google ignore entièrement le hreflang pour la paire qui manque de réciprocité. Même si vous avez 20 pages localisées correctement liées, un seul lien retour manquant casse la chaîne pour cette paire spécifique.

Comment corriger : Assurez-vous que chaque page de l'ensemble hreflang inclut le jeu complet de liens alternés -- y compris une balise auto-référençante. Si votre page anglaise liste 6 liens hreflang, chaque page de cet ensemble doit lister les mêmes 6 liens. Notre Générateur de balises Hreflang produit automatiquement des balises réciproques pour toutes les pages d'un ensemble.

Erreur 2 : Hreflang auto-référençant manquant

Le problème : Une page inclut des balises hreflang pointant vers toutes ses variantes linguistiques sauf elle-même.

La documentation de Google stipule explicitement que chaque page doit inclure une balise hreflang pointant vers elle-même. Cette auto-référence n'est pas redondante -- elle fait partie du mécanisme de validation utilisé par les moteurs de recherche pour confirmer que l'ensemble hreflang est complet.

Exemple de l'erreur :

<!-- Sur la page anglaise -- auto-référence manquante -->
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<!-- Où est hreflang="en" pointant vers cette page ? -->

Comment corriger : Incluez toujours la page actuelle dans son propre ensemble hreflang :

<!-- Correct : inclut l'auto-référence -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />

Erreur 3 : Codes de langue ou de région incorrects

Le problème : Utilisation de codes ISO de langue et de région invalides ou incorrects dans les valeurs hreflang.

Les erreurs de code les plus courantes incluent :

Comment corriger : Validez chaque valeur hreflang contre la liste des codes de langue ISO 639-1 et la liste des codes pays ISO 3166-1 Alpha-2. Le format est toujours {langue} ou {langue}-{RÉGION}, avec la langue en minuscules et la région en majuscules, séparées par un tiret.

Erreur 4 : Discordance HTTP vs HTTPS

Le problème : Votre site sert des pages en HTTPS, mais vos balises hreflang référencent des URLs HTTP (ou inversement).

<!-- Le site est en HTTPS, mais hreflang utilise HTTP -->
<link rel="alternate" hreflang="en" href="http://example.com/en/page/" />

Les moteurs de recherche traitent http://example.com/en/page/ et https://example.com/en/page/ comme deux URLs différentes. Si votre page est servie à l'adresse HTTPS mais que le hreflang pointe vers l'adresse HTTP, Google constate une discordance -- le hreflang pointe vers une URL qui soit n'existe pas (si HTTP redirige vers HTTPS), soit vers une page entièrement différente.

Comment corriger : Auditez toutes les URLs hreflang pour vous assurer que le protocole correspond au protocole de service réel. Si votre site fonctionne en HTTPS (et il le devrait), chaque URL dans chaque balise hreflang doit commencer par https://. Cela s'applique également aux balises canonical, aux URLs du sitemap et à toute autre référence à vos pages.

Erreur 5 : Utilisation d'URLs relatives

Le problème : Les balises hreflang utilisent des URLs relatives au lieu d'URLs absolues.

<!-- INCORRECT : URL relative -->
<link rel="alternate" hreflang="es" href="/es/page/" />

<!-- CORRECT : URL absolue -->
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />

La spécification hreflang exige des URLs absolues. Les URLs relatives sont silencieusement ignorées par les moteurs de recherche. Votre hreflang n'aura tout simplement aucun effet, et vous pourriez ne pas le réaliser pendant des mois car il n'y a aucun message d'erreur.

Comment corriger : Utilisez toujours des URLs entièrement qualifiées commençant par https:// (ou http:// si votre site ne prend véritablement pas en charge HTTPS). Cela inclut le protocole, le domaine et le chemin complet. N'utilisez jamais non plus d'URLs à protocole relatif (//example.com/page/) -- spécifiez toujours le protocole explicitement.

Erreur 6 : x-default manquant

Le problème : Votre ensemble hreflang n'inclut pas d'entrée x-default.

Bien que techniquement optionnel, omettre x-default signifie que les moteurs de recherche n'ont aucune indication sur ce qu'il faut afficher aux utilisateurs dont la langue ou la région n'est pas couverte par votre ensemble hreflang. Si vous avez des versions en anglais, espagnol et allemand, que devrait voir un utilisateur japonais ?

Sans x-default, Google devine. Parfois il affiche la version anglaise (ce qui pourrait être acceptable), mais parfois il n'affiche rien de votre site car il ne peut pas déterminer avec certitude la bonne correspondance.

Comment corriger : Ajoutez une entrée hreflang x-default à chaque ensemble de pages. Faites-la pointer vers la page qui offre la meilleure expérience de secours -- généralement votre version anglaise ou une page avec un sélecteur de langue.

<link rel="alternate" hreflang="en" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/page/" />

Erreur 7 : Codes de langue dupliqués dans le même ensemble

Le problème : Inclure plusieurs entrées hreflang avec le même code langue-région dans l'ensemble de balises d'une même page.

<!-- INCORRECT : deux entrées pour "en" -->
<link rel="alternate" hreflang="en" href="https://example.com/en/page-v1/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page-v2/" />

Lorsque Google rencontre des codes de langue dupliqués, il ne peut pas déterminer quelle URL est la bonne pour cette langue. Le résultat est imprévisible -- Google peut en choisir une, alterner entre les deux ou ignorer les deux.

Comment corriger : Chaque code langue-région doit apparaître exactement une fois par ensemble hreflang. Si vous avez deux pages anglaises servant des objectifs différents, elles ne doivent pas faire partie du même ensemble hreflang. Hreflang relie du contenu équivalent entre les langues, pas des pages différentes au sein de la même langue.

Erreur 8 : Balise Canonical pointant vers une autre langue

Le problème : La balise canonical d'une page localisée pointe vers la page équivalente dans une autre langue au lieu de pointer vers elle-même.

<!-- Sur la page allemande -- INCORRECT -->
<link rel="canonical" href="https://example.com/en/page/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/page/" />

Cela dit à Google : "La page allemande est une copie de la page anglaise ; veuillez indexer uniquement la version anglaise." Google obéit au canonical, désindexe la page allemande, et votre hreflang est ignoré. Vous perdez entièrement votre présence dans les recherches en allemand.

Il s'agit d'une erreur si critique et répandue que nous avons rédigé un guide dédié : Hreflang vs Canonical : Comment ils fonctionnent ensemble.

Comment corriger : Chaque page localisée doit avoir un canonical auto-référençant. Le canonical de la page allemande doit pointer vers l'URL allemande. Le canonical de la page espagnole doit pointer vers l'URL espagnole. Ne faites jamais de références croisées de canonicals entre les langues.

Erreur 9 : Format XML Sitemap incorrect pour Hreflang

Le problème : Implémenter hreflang dans le sitemap XML mais en utilisant un format de balisage incorrect.

Les erreurs courantes de format de sitemap incluent :

Format correct :

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com/en/page/</loc>
    <xhtml:link rel="alternate" hreflang="en"
                href="https://example.com/en/page/" />
    <xhtml:link rel="alternate" hreflang="es"
                href="https://example.com/es/page/" />
    <xhtml:link rel="alternate" hreflang="x-default"
                href="https://example.com/en/page/" />
  </url>
</urlset>

Comment corriger : Validez le XML de votre sitemap contre le schéma avant de le soumettre. Assurez-vous que le namespace xhtml est déclaré, utilisez <xhtml:link> (pas <link>) et incluez l'ensemble hreflang réciproque complet dans chaque bloc <url>.

Erreur 10 : Ne pas valider après l'implémentation

Le problème : Implémenter les balises hreflang une fois et ne jamais vérifier si elles fonctionnent correctement.

Les implémentations hreflang se détériorent avec le temps. Les pages sont déplacées, les URLs changent, de nouvelles langues sont ajoutées, les modèles CMS sont mis à jour et les développeurs apportent des modifications sans réaliser l'impact sur les balises hreflang. Une configuration hreflang correcte au lancement peut être complètement cassée six mois plus tard.

Les causes courantes de détérioration post-lancement incluent :

Comment corriger : Établissez une routine de validation régulière :

  1. Utilisez le rapport de Ciblage international de Google Search Console pour vérifier les erreurs hreflang signalées par Google
  2. Effectuez des crawls périodiques avec un outil qui extrait et croise les balises hreflang sur l'ensemble de votre site
  3. Validez la réciprocité -- pour chaque page, confirmez que chaque URL qu'elle référence la référence également en retour
  4. Vérifiez après chaque déploiement -- intégrez la validation hreflang dans votre pipeline CI/CD pour que les balises cassées soient détectées avant d'atteindre la production
  5. Surveillez les performances de recherche par langue -- une chute soudaine de trafic depuis un marché spécifique indique souvent un hreflang cassé pour cette langue

Résumé

Ces dix erreurs représentent la grande majorité des échecs d'implémentation hreflang. La bonne nouvelle est qu'elles sont toutes évitables avec une implémentation soignée et une validation régulière :

  1. Balises réciproques manquantes -- chaque page doit lier vers toutes les autres pages de l'ensemble, et inversement
  2. Hreflang auto-référençant manquant -- chaque page doit s'inclure dans son propre ensemble hreflang
  3. Codes de langue incorrects -- utilisez les codes de langue ISO 639-1 et les codes de région ISO 3166-1 Alpha-2
  4. Discordance HTTP/HTTPS -- le protocole doit correspondre au protocole de service réel
  5. URLs relatives -- utilisez toujours des URLs absolues commençant par https://
  6. x-default manquant -- incluez un repli pour les utilisateurs dans les régions non couvertes
  7. Codes de langue dupliqués -- chaque code apparaît exactement une fois par ensemble
  8. Canonicals inter-langues -- chaque page localisée a un canonical vers elle-même, jamais vers une autre langue
  9. Format de sitemap incorrect -- utilisez <xhtml:link> avec le namespace correct
  10. Pas de validation -- vérifiez régulièrement, automatisez quand c'est possible

Utilisez notre Générateur de balises Hreflang pour produire des ensembles de balises qui évitent automatiquement les erreurs 1 à 7. Pour une validation continue, établissez une routine qui détecte les problèmes avant qu'ils n'impactent votre visibilité dans les moteurs de recherche.

Related tools