technical
Utilisez hreflang pour le SEO international
MetricSpot compte les balises <link rel=alternate hreflang>. Elles indiquent à Google quelle URL sert quelle langue ou région, pour que la bonne ressorte sur chaque marché.
Ce que vérifie ce contrôle
Analyse chaque balise <link rel="alternate" hreflang="…" href="…"> dans le <head> de la page (et dans le sitemap XML, le cas échéant). Le contrôle échoue lorsque :
- La page a des équivalents localisés (d’autres URL servant le même contenu dans une autre langue) mais aucune déclaration hreflang.
- Les valeurs hreflang ne sont pas des tags BCP 47 valides (
en,en-US,es,de-AT,zh-Hant-TW). - Le réseau hreflang est cassé : A pointe vers B, B ne pointe pas vers A.
- Le
x-defaultest manquant (recommandé pour le repli international).
Pourquoi c’est important
Google décide quelle URL afficher pour une recherche en comparant la langue et la région de l’utilisateur au réseau hreflang. Sans cela, trois choses tournent mal :
- La mauvaise URL ressort. Un utilisateur américain qui cherche en anglais voit votre page espagnole (ou vice versa) parce que Google a choisi l’URL avec la plus forte autorité, pas celle correspondant à la locale.
- Pénalités de contenu dupliqué. Deux URL au contenu quasi identique (même produit, copie traduite) entrent en compétition. Google en supprime une pour éviter les doublons — parfois la mauvaise.
- Chute du CTR. Même quand l’utilisateur arrive sur la bonne page, un snippet anglais pour un utilisateur espagnol fait baisser le taux de clic. Hreflang permet à Google d’afficher le snippet localisé.
Hreflang est une métadonnée neutre — elle n’influence pas le classement, elle achemine simplement la bonne URL au bon utilisateur.
Comment le corriger
Chaque page d’un réseau multilingue doit :
- Lister toutes les autres variantes d’elle-même, y compris elle-même.
- Être listée par toutes les autres variantes.
- Inclure
x-defaultpour la langue/région fourre-tout.
Exemple : anglais (US par défaut), espagnol, allemand, x-default. Sur la page anglaise :
<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
Les quatre mêmes balises doivent apparaître sur la page espagnole, la page allemande et toute autre variante. Les quatre pages déclarent l’intégralité du réseau, elles-mêmes incluses.
Astro :
---
const locales = ["en", "es", "de"] as const;
const path = Astro.url.pathname.replace(/^\/(es|de)\//, "/");
---
{locales.map(loc => (
<link rel="alternate" hreflang={loc}
href={`${Astro.site}${loc === "en" ? "" : loc + "/"}${path.slice(1)}`} />
))}
<link rel="alternate" hreflang="x-default" href={`${Astro.site}${path.slice(1)}`} />
Next.js :
// app/[locale]/page.tsx
export async function generateMetadata({ params }: { params: { locale: string }}) {
const path = "/"; // ou le chemin de votre route
return {
alternates: {
canonical: `https://example.com${path}`,
languages: {
en: `https://example.com${path}`,
es: `https://example.com/es${path}`,
de: `https://example.com/de${path}`,
"x-default": `https://example.com${path}`,
},
},
};
}
WordPress — Polylang et WPML émettent les hreflang automatiquement dès que vous avez relié chaque traduction. WordPress Multisite nécessite le plugin HREFLang Tags Lite ou équivalent.
Hreflang dans le sitemap — pour les sites avec des milliers d’URL localisées, déclarer les hreflang dans le sitemap est plus propre que dans le HTML de chaque page :
<url>
<loc>https://example.com/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/"/>
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/"/>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/"/>
</url>
Testez-le. Search Console → Insights → International Targeting signale les retours manquants et les tags invalides. Lancez hreflang.org ou le validateur hreflang de Merkle pour un contrôle ponctuel.
Questions fréquentes
en vs en-US vs en-GB ?
Utilisez le tag le plus large qui convient. en couvre tous les anglophones ; en-US cible spécifiquement l’anglais américain. Si vous servez le même contenu aux utilisateurs britanniques et américains, déclarez en une seule fois — pas en-US et en-GB séparément, ce qui dilue le signal et alourdit la maintenance.
Ai-je besoin de hreflang si mon site est monolingue ?
Non. Hreflang n’est utile que lorsque vous avez des URL en langues alternées. Un site monolingue a besoin de <html lang="…"> (voir Déclarer la langue de la page) mais pas de hreflang.
À quoi sert x-default ?
C’est le fourre-tout. Quand la langue de l’utilisateur ne correspond à aucun hreflang déclaré, Google le redirige vers l’URL x-default. C’est typiquement la page d’accueil anglaise ou une page de sélection de langue.
Sources
Dernière mise à jour 2026-05-11