Balises hreflang en pratique : syntaxe, pages régionales, renvois croisés et erreurs courantes
1. Ce que résout hreflang : non pas un bonus, mais une protection contre les mauvaises interprétations
Corrigeons d’abord une idée reçue tenace : hreflang n’améliore pas le classement. Google l’a répété à plusieurs reprises, les balises hreflang ne sont pas un facteur de classement. Elles répondent à un autre problème : lorsque votre page allemande et votre page anglaise présentent le même produit, Google peut considérer la page allemande comme une copie de la page anglaise.
Sans hreflang, Google doit deviner lui-même, par détection de langue, quelle version servir à quel pays. Une erreur se paie cher : un utilisateur allemand tombe sur la page anglaise, le taux de rebond grimpe et le classement baisse. hreflang est le mode d’emploi que vous donnez à Google : ces pages sont des traductions les unes des autres, distribuez-les selon la langue de l’utilisateur.
| Idées reçues | Réalité | Conséquence |
|---|---|---|
| hreflang améliore le classement | Ce n’est pas un facteur de classement, seulement un critère de sélection de version | L’ajouter ne fera pas monter la position |
| Il suffit de l’écrire pour qu’il fonctionne | Une seule règle brisée invalide toute la série | Le rapport sur le ciblage international affiche des erreurs |
| Il suffit de l’écrire sur la page anglaise | Chaque version doit le porter, avec renvoi croisé | Une balise unilatérale ne fonctionne pas |
| Remplacer par rel=alternate | C’est prévu pour le responsive et le mobile | Le multilingue exige hreflang |
2. Trois emplacements possibles : choisissez selon la taille du site
hreflang peut se placer à trois endroits. Les trois méthodes ont le même effet, mais leur coût de maintenance et leur vitesse de prise en compte diffèrent. Choisissez selon le nombre de versions linguistiques et de pages de votre site.
| Emplacement | Forme syntaxique | Taille adaptée | Vitesse de prise en compte |
|---|---|---|---|
| Balise link dans le head | link rel=”alternate” hreflang=”de” | ≤ 5 versions linguistiques, ≤ 200 pages | Immédiate, au fil de l’exploration des pages |
| XML sitemap | Sous-balise xhtml:link | Gros sites multilingues, recommandé | Nouvelle exploration sous 3 à 7 jours |
| En-tête HTTP | Champ Link de l’en-tête de réponse | Uniquement les PDF et autres fichiers non HTML | Au fil de l’exploration du fichier |
Un exemple : votre site existe en 5 langues (anglais, allemand, français, espagnol, arabe), avec 50 pages produit par langue, soit 250 pages. Un modèle de balises link dans le head génère tout en lot : 5 lignes de balises par page, un coût de maintenance maîtrisé. Si vous passez à 12 langues et 2 000 pages, les balises link dans le head ralentiront le chargement : migrez alors vers un sitemap XML et générez les entrées alternative par script.
Pour les pages HTML, n’utilisez pas l’en-tête HTTP : il est réservé aux liens de téléchargement de PDF. Mélanger les trois méthodes fait déclarer deux fois le même jeu de balises ; Google n’en retient qu’un, et le diagnostic devient plus difficile.
Avec la méthode sitemap, la structure place deux balises enfants xhtml:link sous chaque nœud URL : une pour la version anglaise, une pour la version allemande, plus une ligne x-default. L’avantage : pour modifier une version linguistique, on ne touche qu’au sitemap, sans reprendre le head page par page. L’inconvénient : Google met 3 à 7 jours à recrawler le sitemap, donc cette méthode est inutilisable pour un correctif urgent. Au-delà de 500 pages multilingues, générez le sitemap par script plutôt que de l’écrire à la main.
3. Codes langue-pays, pages régionales et références croisées
Les règles de code sont la principale source d’erreur en hreflang. Le code langue utilise deux lettres minuscules ISO 639-1 (de, fr, ar), le code pays deux lettres majuscules ISO 3166-1 (DE, AT, US). Le code langue seul vise toutes les régions de cette langue ; ajoutez le code pays pour cibler un pays précis.
| Formulation | Signification | Usage |
|---|---|---|
| hreflang=”de” | allemand, sans restriction de pays | page commune à l’Allemagne et à l’Autriche |
| hreflang=”de-DE” | allemand local pour l’Allemagne | contenu localisé réservé à l’Allemagne |
| hreflang=”de-AT” | allemand local pour l’Autriche | page des écarts de prix et de réglementation pour l’Autriche |
| hreflang=”en-GB” | anglais britannique | page de tarifs en livres sterling |
| hreflang=”x-default” | version par défaut de repli | à inclure dans tous les groupes, désigne généralement la page anglaise |
Comment décider d’une page régionale : si l’Allemagne et l’Autriche ne diffèrent que par les prix, la réglementation ou les coordonnées, avec un contenu produit identique, créez une version allemande plus une page des écarts pour l’Autriche, sans traduire tout le texte pour chaque pays germanophone. Pour savoir quand créer une page régionale distincte, voir les limites Créer des pages d’atterrissage par pays, afin d’éviter une page doorway sanctionnée comme spam.
Comment écrire les références croisées : la page allemande indique hreflang=”en” vers la page anglaise dans son head, et la page anglaise doit aussi indiquer hreflang=”de” vers la page allemande ; chaque page porte en plus une auto-référence (sa propre version linguistique) et toutes deux incluent x-default. Si une seule manque, Google ignore tout le jeu de balises.
La balise auto-référente est souvent oubliée. Beaucoup de gens se contentent d’écrire « je pointe vers une autre version » et oublient « je me représente aussi moi-même ». Dans un groupe de balises correct, la page anglaise doit avoir une ligne hreflang=”en” pointant vers sa propre URL canonique, et la page allemande une ligne hreflang=”de-DE” pointant vers la sienne. Google utilise l’auto-référence pour confirmer que vous reconnaissez cette version comme l’une des versions canoniques. Sans elle, Google considère le groupe de balises comme incomplet et l’ignore purement et simplement.
IV. Liste des erreurs courantes et procédure de diagnostic
Une fois hreflang en ligne, vérifiez sous 3 à 7 jours. Le rapport Ciblage international de Search Console liste les erreurs précises : corrigez-les une par une en suivant le tableau ci-dessous.
| Type d’erreur | Cause déclenchante | Action corrective |
|---|---|---|
| L’URL renvoie une 404 | La page en face a été supprimée mais la balise est restée | Supprimer la balise ou la rediriger vers la nouvelle page |
| Une page noindex figure dans la liste | Une version en noindex porte encore un hreflang | Retirer cette page du groupe de balises |
| Casse erronée dans le code de langue | Écrit de-de au lieu de de-DE | Mettre le code pays en majuscules |
| Incohérence HTTP/HTTPS | Le sitemap indique une page en http alors qu’elle est en https | Uniformiser toutes les URL en https |
| Des pages de pagination ou de filtrage s’y glissent | Une page à paramètres de filtrage de liste produits est prise pour une version linguistique | N’écrire les balises que pour la page canonique |
| x-default manquant | Oublier la balise de repli | Ajouter une ligne pointant vers la page anglaise dans chaque groupe |
Le diagnostic se fait en trois étapes : premièrement, passez une URL dans le Rich Results Test ou un outil tiers de détection hreflang pour voir si le groupe de balises est complet ; deuxièmement, consultez le rapport Ciblage international de Search Console pour voir le nombre d’erreurs réellement détectées par Google ; troisièmement, une fois les corrections faites, soumettez via le bouton « Valider la correction », le cycle de réévaluation par Google étant d’environ 2 à 4 semaines. Pour les cinq étapes complètes de la mise en ligne de contenu multilingue, voir Processus de mise en ligne des contenus multilingues, hreflang étant la dernière.
Un cas limite facile à négliger : hreflang ne fonctionne que pour des pages qui sont réellement des traductions les unes des autres. Si la page allemande et la page anglaise sont en fait deux articles totalement différents, simplement dans des langues différentes, ne forcez pas un groupe hreflang. Google vérifie si les contenus sont vraiment des traductions mutuelles et, en cas d’incohérence, ignore là aussi tout le groupe. Les pages interlangues doivent être la traduction d’un même produit, d’un même sujet, avec une structure et un nombre de paragraphes à peu près correspondants.
La qualité de traduction influe aussi sur l’efficacité de hreflang : pour une page de pseudo-localisation issue de traduction automatique, même avec des balises correctes, Google ne la montrera pas au pays concerné à cause de la faible qualité du contenu. Avant de mettre hreflang en ligne, le contenu doit donc passer un contrôle de révision après traduction par échantillonnage ; pour la localisation des termes et des chiffres, voir aussi le traitement des graphiques sur un site multilingue.
FAQ — Questions fréquentes
hreflang : dans le head ou dans le sitemap ?
Les balises hreflang améliorent-elles vraiment le classement ?
Pourquoi mes balises hreflang ne fonctionnent-elles pas ?
L’Allemagne et l’Autriche parlent allemand : faut-il deux hreflang ?
Qu’est-ce que x-default, et faut-il l’ajouter ?
Combien de temps après avoir corrigé les erreurs hreflang les effets se voient-ils ?
Pour conclure
hreflang est un de ces points techniques où personne ne vous félicite quand c’est bien fait, mais où tout s’effondre quand c’est mal fait. Il ne fait pas gagner de places dans les résultats, mais une seule ligne oubliée ou un seul caractère erroné et votre contenu multilingue risque d’être considéré par Google comme dupliqué : tout votre travail part en fumée.
Trois étapes pour passer à l’action : cette semaine, vérifiez avec un outil de contrôle l’intégralité des groupes hreflang de 5 pages produit clés ; la semaine suivante, appliquez les quatre règles d’or pour compléter les références réciproques, l’autoréférence, le x-default et les URL absolues ; la troisième semaine, une fois zéro erreur confirmée dans le rapport de ciblage international de Search Console, cliquez sur Valider la correction. Si, côté architecture, vous hésitez encore entre sous-répertoires et sites indépendants, revenez d’abord à Hreflang et versions multilingues pour trancher.
Une phrase à retenir : hreflang ne sert pas à vous faire gagner des places, il sert à envoyer à Google la carte des relations entre traductions. Cette carte doit être complète, bidirectionnelle et prévoir une solution de repli : s’il manque un seul élément, toute la carte est invalidée.
