Hreflang possède une propriété qui rend le débogage particulièrement ennuyeux : chaque mode d'échec produit un balisage qui semble correct Il n'y a pas d'erreur de console, pas de badge rouge dans le navigateur, pas d'échec de la construction Les balises s'affichent, la page se valide en HTML et l'annotation ne fait rien Vous le découvrez des semaines plus tard, à partir d'un rapport de la Search Console ou de quelqu'un dans un autre pays vous disant qu'il s'est trompé de page.
J'en ai débogué suffisamment maintenant pour avoir une liste Ceci est cette liste, ordonnée à peu près par la fréquence à laquelle je trouve chacun, avec le symptôme que vous observeriez et le correctif Il se trouve sous le guide complet de hreflang à côté des pièces x-par défaut et hreflang contre canonique.
tl;dr : Les erreurs hreflang les plus courantes sont les balises de retour manquantes, comme les codes non ISO
en-UK(en), des URL relatives, un canonique qui pointe dans les langues, un manquantx-default&, et les méthodes de mise en oeuvre de mixage pour les mêmes URLs Tous sont silencieux : le balisage rend et ne fait rien Search Console' ; s International Targeting report attrape les erreurs de retour-tag et de code inconnu à l'échelle ; le reste a besoin d'une exploration ou d'un regard sur le HTML rendu Le générateur d'étiquettes Hreflang valide les codes, les URL, les doublons et la solution de secours manquante avant votre déploiement.
1. Étiquettes de retour manquantes
Symptôme : Rechercher des rapports sur la console " ; pas de retour de balises et de devis ; Les versions linguistiques ne sont pas échangées contre les bons marchés, et l'ensemble se comporte comme si hreflang était absent.
Cause: La page A déclare la page B comme alternative, mais la page B ne déclare pas la page A. Google exige que les deux parties confirment la relation et rejette les annotations qui ne sont pas réciproques.
Correction: Mettez l'ensemble complet et identique d'annotations sur chaque page du groupe, y compris une entrée auto-référentielle N'essayez pas d'être intelligent sur la page qui a besoin de quelle entrée La page anglaise répertorie l'anglais, le français, l'allemand et le x par défaut ; la page française aussi ; le bloc allemand aussi. Même bloc partout.
Il s'agit de loin de l'échec le plus courant, et il est presque toujours causé par une édition manuelle par page ou par un modèle qui rend " ; les autres langues" ; plutôt que " ; toutes les langues" ;.
2. Utilisation de codes de région non ISO
Symptôme : Rechercher dans les rapports de la console " ; code et quota de langue inconnue ;, ou rien du tout alors que l'annotation est discrètement ignorée.
Cause: en-UK mène le terrain. UK n'est pas un code ISO 3166-1 alpha-2 ; le Royaume-Uni l'est GB. Codes régionaux inventés comme en-EU et es-LATAM sont la même classe d'erreur, comme c'est le cas en-uk avec le mauvais casse associé à une région déjà invalide.
Correction: Langue de ISO 639-1[traduction], région de la norme ISO 3166-1 alpha-2, jointe par un tiret Pour l'Amérique latine, la réponse valable est le code M49 de l'ONU es-419. Pour les Chinois, préférez les sous-étiquettes d'écriture : zh-Hant et zh-Hans.
| Faux | Droite | pourquoi |
|---|---|---|
en-UK |
en-GB |
UK n'est pas un code ISO 3166-1 |
en-EU |
Entrées distinctes par pays ou simples en |
L'UE n'est pas un code de pays |
es-LATAM |
es-419 |
Code régional M49 de l'ONU pour l'Amérique latine |
zh-CH |
zh-Hans ou zh-CN |
CH est la Suisse |
CA |
en-CA et fr-CA |
La région seule n'est pas valide |
3. Annotations région uniquement
Symptôme : Rien ne se passe L'annotation est ignorée entièrement.
Cause: Essayer de cibler un pays sans nommer de langue, comme dans hreflang="US" ou hreflang="CA". Le hreflang est une langue d'abord par conception ; la région est un rétrécissement facultatif d’une langue et non une cible en soi.
Correction: Nommez la langue Si vous servez le Canada en deux langues, c'est-à-dire deux entrées : en-CA et fr-CA.
4. URL relatives
Symptôme : L'annotation est ignorée Fréquemment accompagnée de " ; cela fonctionne sur ma machine" ; car les URL relatives se résolvent bien dans un navigateur.
Cause: href="/fr/pricing" au lieu de href="https://example.com/fr/pricing". Hreflang nécessite des URL absolues entièrement qualifiées, notamment le protocole et l'hôte.
Correction: Émettez des URL absolues Si vous les construisez dans un modèle, construisez-les à partir d'une origine de site configurée plutôt que d'une chaîne codée en dur, de sorte qu'un déploiement de mise en scène ne publie pas d'URL de production ou vice versa.
5. Un canonique qui pointe à travers les langues
Symptôme : Une version entière de la langue disparaît de l'index Hreflang semble correct et n'a aucun effet.
Cause: La page française déclare la page anglaise comme étant canonique Cela demande à Google de laisser tomber l'URL française, et une URL qui a été canonisée ne peut être servie à personne indépendamment de ce que dit hreflang Canonique est le signal le plus fort et il gagne.
Correction: Chaque page se canonise à elle-même Hreflang décrit les relations entre ces pages auto-canoniques Celle-ci vaut sa propre lecture : hreflang vs canonique fonctionne à travers les combinaisons, y compris les URL paramétrées.
6. Pas de défaut x
Symptôme : Les visiteurs de pays que vous ne ciblez pas atterrissent sur une version linguistique apparemment aléatoire.
Cause: Aucun repli déclaré, alors Google choisit Son choix est basé sur des signaux de similarité qui ne vous sont pas visibles, c'est ainsi que les visiteurs néerlandais se retrouvent sur une page allemande.
Correction: Ajouter un x-default entrée par ensemble, pointant vers un sélecteur de langue ou votre version internationale principale. Le guide x-par défaut couvre où le pointer et les erreurs qui le rendent inutile.
7. Méthodes de mise en œuvre du mélange
Symptôme : Comportement intermittent et difficile à reproduire. Certaines pages échangent correctement et d’autres non.
Cause: HTML <link> balises et plan du site XML xhtml:link les entrées déclarant toutes deux hreflang pour les mêmes URLs Chacune est valide seule Ensemble ce sont deux sources de vérité qui dérivent, et quand elles ne sont pas d'accord vous n'avez aucun moyen de savoir laquelle Google a utilisé.
Correction: Choisissez une méthode par URL définie. Les balises HTML pour la plupart des sites, les entrées de plan de site lorsque vous avez de nombreux lieux et que vous voulez des têtes de page maigres, les en-têtes HTTP pour les fichiers non HTML comme les PDFs Puis supprimez l'autre plutôt que de le laisser comme sauvegarde.
8. Inadéquation de la barre d'orientation et du protocole
Symptôme : Les balises de retour échouent même si les deux pages portent des annotations.
Cause: L'annotation pointe vers https://example.com/fr alors que l'URL indexable est https://example.com/fr/. Ou cela pointe vers http:// sur un site HTTPS. Ce sont des URL différentes, donc la balise de retour sur la page réelle ne correspond pas à l'URL nommée par l'autre page.
Correction: Utilisez la forme canonique exacte de chaque URL, la même chaîne que vous mettriez dans un plan du site Générez un hreflang à partir du même générateur d'URL que vos balises canoniques utilisent, afin que les deux ne puissent pas être en désaccord.
9. pointant vers des redirections ou des 404
Symptôme : Comportement partiel ou dégradé ; Erreurs de la console de recherche sur les paires affectées.
Cause: Une locale a été retirée et ses URL sont maintenant redirigées, ou une page traduite a été supprimée alors que les annotations qui l'ont nommée sont restées Une cible de redirection résout toujours, donc ce n'est pas fatal, mais elle ajoute un saut et la balise de retour sur l'URL finale peut ne pas correspondre à l'URL qui a été nommée Une cible 404 empoisonne la paire carrément.
Correction: Rampez vos propres cibles hreflang et vérifiez les codes d'état. C'est la vérification que personne n'exécute, et c'est celle qui trouve la pourriture dans les ensembles qui étaient corrects au moment de leur écriture.
10. Annotation des pages noindex
Symptôme : L'ensemble se comporte de manière incohérente ; certains alternatifs n'apparaissent jamais.
Cause: Une page est annoncée comme alternative linguistique tout en la diffusant noindex. Vous avez demandé à Google à la fois de diffuser cette URL sur un marché et de la maintenir hors de l'index. La contradiction se résout en faveur de noindex.
Correction: Soit lâchez l'annotation, soit lâchez le noindex. Les restes de mise en scène et les pages d'espace réservé non traduites sont les coupables habituels.
11. Bloquer les cibles hreflang dans les robots.txt
Symptôme : Les alternatives ne sont jamais confirmées Search Console affiche les erreurs de retour-tag pour les pages qui portent visiblement des balises de retour.
Cause: La cible est interdite dans robots.txt, donc Googlebot ne peut pas la récupérer et ne peut pas voir la balise de retour L'annotation de votre côté est bonne ; la confirmation de l'autre côté est inaccessible.
Correction: Autorisez l'exploration de chaque URL que vous nommez dans une annotation en hreflang. Si une section ne doit pas vraiment être explorée, elle ne doit pas non plus être dans un ensemble en hreflang. Le Générateur robots.txt est utile pour auditer ce que bloquent vos règles actuelles, qui est souvent plus large que prévu.
12. Codes en double au sein d'un même ensemble
Symptôme : Imprévisible. Google peut prendre le premier, le dernier ou jeter la paire.
Cause: Deux entrées avec la même valeur d'hreflang pointant vers des URL différentes, généralement parce que deux systèmes émettent tous deux des annotations, ou parce qu'une carte locale a une clé en double. Deux x-default les entrées sont le même problème dans sa forme la plus courante.
Correction: Une entrée par code par ensemble Afficher la source rendue plutôt que le modèle ; un plugin ajoutant un deuxième bloc est invisible à partir du modèle seul Le générateur hreflang gratuit signale les codes en double dans l'ensemble que vous créez, bien qu'il ne puisse pas voir ce que la page émet d'autre.
Comment trouvez-vous ces erreurs systématiquement ?
Trois passes, dans cet ordre, car chacune attrape une classe différente.
Recherchez d'abord Console. Le rapport International Targeting couvre l'ensemble de la propriété et trouve les deux erreurs qui évoluent : les balises de retour manquantes et les codes de langue inconnus. Il est en retard sur vos déploiements, quelle que soit la durée d'une refonte complète, alors traitez une semaine sans changement comme d'habitude.
Une seconde d'exploration. Tout robot d'exploration qui extrait hreflang vous donne l'ensemble par URL. Grouper par cluster et comparer compte : une page avec quatre entrées dans un groupe de cinq est le bug. Vérifiez ensuite le code d'état de chaque cible, qui est le pass qui trouve les erreurs 8, 9, 10 et 11.
Rendu HTML en dernier, pour la page spécifique qui se comporte mal. curl il compte les blocs d'annotation, compte les x-default entrées, et comparer les URLs caractère par caractère contre le canonique C'est là que les doublons et les discordances de fin de barre oblique apparaissent, et c'est le seul passage qui voit ce qu'un plugin a injecté au moment de l'exécution.
Le générateur vaut la peine d'être exécuté avant tout cela, car valider l'ensemble au point où vous l'écrivez supprime les erreurs 2, 3, 4, 6 et 12 avant qu'elles puissent être expédiées Ce qu'aucun outil ne peut imposer, c'est la réciprocité, puisque c'est une propriété de pages autres que celle qui vous précède Pour cela, la discipline est structurelle : une carte locale, un moteur de rendu, le bloc complet sur chaque page Le Suivant.js et WordPress les guides montrent à quoi cela ressemble dans le code.
Questions fréquentes
Quelle est l'erreur de hreflang la plus courante ?
Tags de retour manquants La page A nomme la page B comme alternative mais la page B ne nomme pas la page A, donc Google rejette la relation Le correctif est de mettre l'ensemble identique complet des annotations, y compris une entrée auto-référentielle, sur chaque page du groupe.
Pourquoi Search Console dit-elle que mon hreflang n'a pas de balises de retour ?
Parce que la page que vous avez pointée vers l'arrière ne pointe pas avec une annotation correspondante, ou elle pointe vers l'arrière vers une URL légèrement différente Les barres obliques de suivi, les différences de protocole et www versus non-www comptent tous comme des URL différentes.
En-UK est-il un code hreflang valide ?
Non. UK n'est pas un code ISO 3166-1 alpha-2 Le code correct pour le Royaume-Uni est GB1, donc la valeur est en-GB. en-UK est ignoré silencieusement.
Les URL hreflang peuvent-elles être relatives ?
No. Hreflang nécessite des URL absolues entièrement qualifiées incluant le protocole et l'hôte Les URL relatives sont ignorées même si elles se résolvent normalement dans un navigateur.
Une balise canonique remplace-t-elle hreflang ?
Effectivement oui Si une page se canonise dans une version linguistique différente, cette URL est supprimée de l'index et hreflang ne peut pas la ramener Chaque page doit se canoniser.
Combien de temps prennent les correctifs hreflang pour apparaître ?
Jours à semaines Google doit redessiner chaque page de l'ensemble avant de pouvoir confirmer les balises de retour, et les rapports de la Search Console sont mis à jour selon le même calendrier.
Puis-je utiliser à la fois les balises HTML et le plan du site hreflang ?
Vous pouvez, mais ne le faites pas Deux sources pour les mêmes URL se séparent, et quand elles ne sont pas d'accord il n'y a aucun moyen de dire laquelle a été utilisée Choisissez une méthode par URL set.
Les cibles hreflang doivent-elles être rampables ?
Oui. Si une cible est bloquée dans robots.txt ou marquée noindex, Google ne peut pas confirmer la balise de retour et l'annotation échoue même si votre balisage est correct.



