Vérifier les balises hreflang : trouver et corriger les erreurs
Un hreflang checker parcourt les versions linguistiques d'une page et vérifie que chaque annotation hreflang utilise un code valide, pointe vers une URL active et indexable, et reçoit une balise retour sur la page cible. Quand ces conditions ne sont pas remplies, Google ignore les annotations cassées et devine quelle version afficher : un internaute français peut alors atterrir sur la page britannique alors qu'une page française existe.
Côté hreflang, le SEO souffre sans que rien ne se voie. Les pages se chargent, la mise en page est correcte, et le seul symptôme est la mauvaise URL dans les résultats de recherche d'un pays, en général repérée des mois plus tard par quelqu'un sur ce marché.
Les trois emplacements possibles de hreflang
Google accepte hreflang sous trois formes, et un checker doit lire celle que le site utilise. La première se place dans le <head> HTML :
<link rel="alternate" hreflang="fr-fr" href="https://example.com/fr/" />
La deuxième est un en-tête HTTP Link, seule option pour les PDF et autres fichiers non HTML. La troisième passe par des entrées <xhtml:link rel="alternate" hreflang="fr-fr" href="..." /> dans le sitemap XML. Les grands sites multi-marchés utilisent souvent le sitemap, qui allège le <head> des pages. Combiner les méthodes est permis mais rend les contradictions plus probables, puisque deux systèmes décrivent alors le même cluster.
Chaque version doit lister toutes les autres, et elle-même. En pratique, l'auto-référence n'a rien de facultatif : sans elle, Google a plus de mal à confirmer l'ensemble.
Ce que valide un hreflang checker
| Contrôle | Correct | Exemple cassé |
|---|---|---|
| Code langue | ISO 639-1, par ex. fr, de |
fr-FR convient, french non |
| Code région | ISO 3166-1 alpha-2 après la langue, par ex. en-gb |
en-uk (le code du Royaume-Uni est gb) |
| Région seule | Interdit | hreflang="gb" |
| Balise retour | B cite A dès que A cite B | La page italienne pointe vers l'espagnole, qui ne pointe pas en retour |
| Statut de la cible | 200, indexable |
La cible redirige, renvoie 404 ou porte un noindex |
| Canonical | Le canonical de chaque version la désigne elle-même | Toutes les versions canonicalisées vers la page anglaise |
| Repli | x-default pour les visiteurs sans correspondance |
Pas de x-default, Google choisit |
La ligne canonical mérite qu'on s'y arrête. Si chaque version linguistique porte un canonical vers l'URL anglaise, Google comprend que les autres sont des doublons, et hreflang ne peut pas l'emporter sur cette consigne. Notre guide du canonical tag checker montre comment ces conflits apparaissent. Le même problème survient quand une version récupère un noindex, d'où l'importance de repérer un noindex avant sa mise en production sur les sites multilingues.
La Search Console n'aide plus beaucoup sur ce point. Google a retiré le rapport Ciblage international, qui listait les erreurs hreflang, et la validation repose désormais sur les crawlers et sur vos propres contrôles.
Vérifier un cluster à la main
Pour un ensemble de pages :
- Ouvrez le code source d'une version et copiez chaque ligne
hreflang. - Ouvrez chaque URL cible et vérifiez son code de statut, l'absence de
noindexet un canonical qui pointe vers elle-même. - Dans chaque cible, vérifiez que la liste des versions alternatives correspond à celle de départ, auto-référence comprise.
- Vérifiez que
x-defaultexiste et pointe vers une destination cohérente, comme un sélecteur de langue ou le marché principal.
Cinq langues, c'est vingt-cinq paires à vérifier pour un seul type de page. Une fois, cela passe. Avec des mises en production régulières sur tout un portefeuille, cela ne tient pas.
Pourquoi les sites multi-marchés dérivent
Les différents marchés sont souvent modifiés par des personnes différentes, à des rythmes différents. Un produit est retiré de la boutique allemande alors que les autres boutiques référencent encore son URL. Une redirection est mise en ligne sur un marché pendant une restructuration. Une équipe de traduction publie une nouvelle page sans l'ajouter aux autres versions. La recette habituelle confirme que la page se charge, et personne ne rouvre les versions alternatives.
Où Deltio aide, et où un crawler reste nécessaire
Deltio ne remplace pas un crawler pour valider chaque paire réciproque. Il surveille en revanche, chaque jour, les signaux qui cassent les clusters dans la pratique. Il compare chaque contrôle au précédent pour les canonicals, le noindex, le robots.txt, les titles et les URL du sitemap, et alerte le canal Slack et l'adresse e-mail du site quand l'un d'eux change. Un canonical réécrit sur les templates espagnols, ou un lot d'URL italiennes qui sort du sitemap, apparaît le lendemain plutôt que lors d'une revue trimestrielle. Les scans manuels servent à vérifier juste après une mise en production.
Cela s'intègre au reste de votre dispositif de monitoring SEO. Un crawl hreflang complet après les changements importants, complété entre deux crawls par une détection quotidienne des changements, couvre les deux côtés. Vous pouvez essayer Deltio pendant 14 jours sur un site client multilingue.
Questions fréquentes
- Les codes hreflang sont-ils sensibles à la casse ?
- Non. Google traite en-GB et en-gb de la même façon. L'usage veut la langue en minuscules et la région en majuscules, mais la cohérence compte plus que la casse. Ce qui casse vraiment la balise, c'est un mauvais code, comme uk au lieu de gb, ou une région sans langue.
- Faut-il hreflang si le site n'a qu'une langue mais cible plusieurs pays ?
- Cela peut aider. Des pages en-us, en-gb et en-au au contenu presque identique sont facilement traitées comme des doublons par Google, et hreflang lui indique quelle version afficher dans chaque pays. Si le contenu est vraiment identique et que les prix ou les devises ne changent pas, une seule version peut suffire.
- Bing utilise-t-il hreflang ?
- Bing s'est historiquement appuyé davantage sur la balise meta content-language et sur l'attribut lang de la balise html que sur hreflang. Définir un attribut lang correct sur chaque version ne coûte presque rien et couvre les deux moteurs.
- Peut-on déclarer hreflang à la fois dans le HTML et dans le sitemap ?
- Oui, mais ce n'est pas nécessaire et cela crée deux sources à garder synchronisées. Si elles se contredisent, le conflit rend les annotations moins fiables. Dans la mesure du possible, choisissez une seule méthode par site.
- Combien coûte Deltio ?
- Starter couvre jusqu'à 50 sites et 5 000 URL pour 29 € par mois, ou 24 € par mois en facturation annuelle. Professional (jusqu'à 200 sites) coûte 59 € par mois et Enterprise (jusqu'à 500 sites) 139 € par mois, tous deux moins chers en facturation annuelle (49 € et 116 € par mois). Chaque offre inclut un essai gratuit de 14 jours.