technical
Usa hreflang per la SEO internazionale
MetricSpot conta i tag <link rel=alternate hreflang>. Dicono a Google quale URL serve quale lingua o regione, così quello giusto si posiziona in ogni mercato.
Cosa controlla questo check
Analizza ogni tag <link rel="alternate" hreflang="…" href="…"> nel <head> della pagina (e nella sitemap XML, se presente). Il check fallisce quando:
- La pagina ha gemelli localizzati (altri URL che servono lo stesso contenuto in una lingua diversa) ma nessuna dichiarazione hreflang.
- I valori hreflang non sono tag BCP 47 validi (
en,en-US,es,de-AT,zh-Hant-TW). - La rete hreflang è interrotta: A punta a B, B non punta a A.
- Manca
x-default(raccomandato come fallback internazionale).
Perché è importante
Google decide quale URL mostrare per una ricerca matchando lingua e regione dell’utente con la rete hreflang. Senza, tre cose vanno male:
- Si posiziona l’URL sbagliato. Un utente USA che cerca in inglese vede la tua pagina spagnola (o viceversa) perché Google ha scelto l’URL con più autorità, non quello per la lingua dell’utente.
- Penalità per contenuto duplicato. Due URL con contenuto quasi identico (stesso prodotto, copy tradotta) competono tra loro. Google ne fa cadere uno per evitare duplicati — a volte quello sbagliato.
- Il CTR cala. Anche quando l’utente atterra sulla pagina giusta, uno snippet in inglese per un utente spagnolo riduce i click. Hreflang permette a Google di mostrare lo snippet localizzato.
Hreflang è metadati senza opinioni — non influenza il ranking, instrada solo l’URL giusto all’utente giusto.
Come risolvere
Ogni pagina in una rete multilingua deve:
- Elencare ogni altra variante di se stessa, inclusa se stessa.
- Essere elencata da ogni altra variante.
- Includere
x-defaultcome catch-all per lingua/regione.
Esempio: inglese (default USA), spagnolo, tedesco, x-default. Sulla pagina inglese:
<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/" />
Gli stessi quattro tag devono apparire sulla pagina spagnola, sulla tedesca e su qualsiasi altra variante. Tutte e quattro le pagine dichiarano l’intera rete, incluse se stesse.
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 = "/"; // oppure il path della tua rotta
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 e WPML emettono hreflang automaticamente una volta che hai collegato ogni traduzione. WordPress Multisite richiede il plugin HREFLang Tags Lite o equivalente.
Hreflang basato su sitemap — per siti con migliaia di URL localizzati, dichiarare hreflang nella sitemap è più pulito che in ogni HTML di pagina:
<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>
Testalo. Google Search Console → Insights → International Targeting segnala return link mancanti e tag non validi. Esegui hreflang.org o il validator hreflang di Merkle per un check una tantum.
Domande frequenti
en vs en-US vs en-GB?
Usa il tag più ampio che si adatta. en copre tutti gli anglofoni; en-US punta specificamente all’inglese USA. Se servi contenuto identico a utenti UK e USA, dichiara en una sola volta — non en-US e en-GB separati, che diluiscono il segnale e aggiungono manutenzione.
Mi serve hreflang se il mio sito è monolingua?
No. Hreflang è utile solo quando hai URL in lingue alternative. Un sito monolingua ha bisogno di <html lang="…"> (vedi Dichiarare lingua pagina) ma non di hreflang.
A cosa serve x-default?
È il catch-all. Quando la lingua dell’utente non matcha nessun hreflang dichiarato, Google lo instrada all’URL x-default. Tipicamente è la homepage inglese o una pagina di selezione lingua.
Fonti
Ultimo aggiornamento 2026-05-11