
Hreflang: a cosa serve, come inserirlo e come controllarlo
13 Agosto 2026 · SEO
Quando hai un sito in più lingue, vuoi che chi cerca arrivi alla versione adatta. Hreflang segnala a Google quali indirizzi web (URL) sono versioni della stessa pagina per lingue o Paesi diversi. Per configurarlo, associa prima le pagine equivalenti, poi fai in modo che ciascuna elenchi tutte le versioni del gruppo, compresa se stessa.
Quando serve hreflang?
Hreflang è utile quando la stessa pagina è disponibile in più lingue oppure in versioni dedicate a Paesi diversi. Il primo caso riguarda un sito multilingue, per esempio con contenuti in italiano e tedesco. Il secondo riguarda un sito multiregionale, che può avere due pagine entrambe in inglese, una per il Regno Unito e una per gli Stati Uniti.
Le varianti regionali possono differire per valuta, disponibilità dei prodotti o informazioni locali. Aggiungi un Paese quando quella versione risponde a un’esigenza specifica del mercato; una pagina in inglese destinata a tutti i lettori anglofoni può usare il solo codice della lingua.
Le versioni devono già esistere: hreflang non traduce i testi e non crea le pagine mancanti. Se hai una sola versione di un contenuto, non devi inventare alternative.
Google consiglia di usare URL distinti per le diverse versioni linguistiche. Cambiare il testo sullo stesso indirizzo attraverso un cookie non crea URL alternativi da collegare. Le versioni possono invece stare in cartelle, sottodomini o domini diversi.
Conta anche ciò che il lettore vede: Google riconosce la lingua dal contenuto visibile. Tradurre soltanto il menu lascia il contenuto principale nella lingua originaria, qualunque codice tu abbia inserito. Prima del codice, quindi, devi stabilire quali contenuti corrispondono davvero.
Quali pagine devi collegare?
Collega pagine che offrono la stessa risorsa nella lingua o nel mercato dichiarato: lo stesso prodotto, la stessa guida, lo stesso servizio. I testi possono essere adattati al pubblico locale, purché restino versioni corrispondenti del medesimo contenuto.
Prima di generare le annotazioni, raccogli gli indirizzi in una tabella. Ogni riga rappresenta un contenuto e ogni colonna una variante. Il gruppo degli indirizzi corrispondenti viene chiamato anche cluster hreflang.
| Contenuto | Versione italiana | Versione tedesca |
|---|---|---|
| Scheda di una pressa | /it/presse/modello-a/ | /de/pressen/modell-a/ |
| Manuale di installazione | /it/manuali/installazione/ | Non disponibile |
La scheda italiana può essere associata alla scheda tedesca. Il manuale, invece, non ha una traduzione da collegare: lascia quella variante fuori dal gruppo, senza sostituirla con la homepage tedesca.
Gli indirizzi abbreviati sono comodi nella tabella di lavoro. Nelle annotazioni usa URL completi di protocollo e dominio, come https://example.com/it/scheda/. Una volta definite le associazioni, puoi assegnare a ogni variante il codice corretto.
Come si scrivono i codici di lingua e Paese?
Un codice hreflang contiene prima la lingua e, facoltativamente, il Paese, separati da un trattino. Per entrambi usa i codici standard di due lettere indicati nella documentazione Google sulle versioni localizzate.
Per esempio, de indica il tedesco senza una destinazione nazionale specifica; en-DE indica l’inglese per la Germania; de-GB indica il tedesco per il Regno Unito. Per il Regno Unito il codice Paese è GB, non UK.
Il valore de-EN è invalido: en identifica la lingua inglese, non un Paese. Scrivere la lingua in minuscolo e il Paese in maiuscolo, come in de-GB, rende più facile distinguere le due parti. Il valore va scelto per il pubblico della pagina, indipendentemente dal nome della cartella che la contiene.
Una variante generica come en può convivere con varianti regionali come en-GB. In questo modo hai anche una pagina inglese da indicare agli utenti per i quali non esiste una versione nazionale dedicata.
Come inserire hreflang nell’HTML: un esempio completo
Nell’HTML inserisci i collegamenti tra le versioni nella sezione del codice che contiene le informazioni sulla pagina, chiamata head. Ogni pagina elenca tutte le varianti del gruppo, compresa se stessa.
Nelle righe hreflang, rel="alternate" indica una versione alternativa, hreflang ne specifica la lingua ed eventualmente il Paese, mentre href contiene l’indirizzo di destinazione.
Nell’esempio compare anche il canonical: l’indirizzo che proponi a Google come versione preferita fra pagine duplicate o molto simili. È una dichiarazione separata dai collegamenti hreflang.
Esempio: queste due pagine contengono traduzioni corrispondenti. Nella sezione head della pagina italiana inserisci:
<link rel="canonical" href="https://example.com/it/scheda/">
<link rel="alternate" hreflang="it" href="https://example.com/it/scheda/">
<link rel="alternate" hreflang="de" href="https://example.com/de/datenblatt/">
Nella sezione head della pagina tedesca inserisci:
<link rel="canonical" href="https://example.com/de/datenblatt/">
<link rel="alternate" hreflang="it" href="https://example.com/it/scheda/">
<link rel="alternate" hreflang="de" href="https://example.com/de/datenblatt/">
Le due righe alternate sono uguali su entrambe le pagine. La pagina italiana richiama quella tedesca e quella tedesca richiama quella italiana: questa conferma in entrambe le direzioni è la reciprocità. Ognuna include anche il proprio indirizzo.
Questo è il modello completo descritto nelle istruzioni Google per hreflang nell’HTML.
Come evitare conflitti tra canonical e hreflang
Per due traduzioni distinte come quelle dell’esempio, mantieni un canonical nella stessa lingua della pagina; ogni versione può indicare se stessa. Google include questa indicazione nelle sue raccomandazioni sull’URL canonico.
Se la pagina tedesca indica quella italiana come canonical, comunica una preferenza per l’indirizzo italiano. Questo può ostacolare la presenza della versione tedesca nei risultati: hreflang non annulla quel segnale.
La traduzione del contenuto principale non va quindi trattata automaticamente come una copia da ricondurre alla versione italiana. L’esempio riguarda due traduzioni distinte; per copie regionali quasi identiche nella stessa lingua, la scelta del canonical può essere diversa.
A che cosa serve x-default?
Per gli utenti a cui non corrisponde una variante linguistica o regionale, puoi indicare una pagina di riserva con x-default. È una voce facoltativa e può puntare a un selettore di lingua o Paese oppure a una versione del contenuto già esistente.
Esempio: una guida è disponibile in italiano e inglese, e scegli quella inglese come riserva. Lo stesso indirizzo può comparire sia con hreflang="en" sia con hreflang="x-default": Google ammette una versione linguistica come destinazione predefinita, senza richiedere una pagina neutra.
Hreflang, compreso x-default, dà indicazioni a Google e non esegue un reindirizzamento nel browser. Mantieni collegamenti che permettano al lettore di scegliere la lingua e raggiungere le altre versioni. I redirect automatici basati sulla lingua o sulla posizione presunta possono impedirlo, come spiega la guida Google ai siti multilingue.
L’eventuale voce x-default entra nello stesso elenco delle alternative. Per pubblicare questo elenco puoi scegliere fra tre metodi.
HTML, intestazione HTTP o sitemap: quale metodo scegliere?
Scegli il metodo che puoi generare e aggiornare con più affidabilità: HTML, intestazione HTTP e sitemap XML hanno lo stesso valore per Google. La scelta dipende da come pubblichi i contenuti e da dove riesci a mantenere le associazioni.
L’HTML nella sezione head è comodo quando il programma con cui gestisci il sito, il CMS, genera già i collegamenti fra le traduzioni. In questo caso le annotazioni vengono pubblicate insieme a ogni pagina, come nell’esempio precedente.
L’intestazione HTTP Link fa parte delle informazioni che il server invia con la risposta. Puoi usarla anche per documenti come i PDF, che non hanno una sezione head HTML in cui inserire i tag. Devi poter configurare e controllare la risposta del server per ciascuna versione.
La sitemap XML è un file separato che elenca gli indirizzi delle pagine per i motori di ricerca. Può semplificare la gestione quando hai un elenco centrale affidabile delle equivalenze e intervenire su molti modelli di pagina o domini sarebbe scomodo.
Google documenta i tre metodi di implementazione e permette di usarne più di uno insieme, senza un vantaggio aggiuntivo. Per semplificare la manutenzione, preferisci un solo metodo se copre le tue esigenze.
Qualunque metodo scegli, genera le annotazioni dalle stesse associazioni salvate nel CMS o nella tabella di lavoro. Un generatore hreflang può trasformare codici e indirizzi in annotazioni; resta a te stabilire se i contenuti sono davvero equivalenti.

Scarica l’infografica (PNG ad alta risoluzione)
Incorpora l’infografica nel tuo sito
Puoi ripubblicare l’infografica usando questo codice, con il collegamento all’articolo originale.
Come organizzare hreflang nella sitemap XML
Nella sitemap, ogni versione della pagina ha un proprio contenitore <url>, che raccoglie il suo indirizzo e l’elenco delle alternative.
Dentro <url>, l’elemento <loc> contiene soltanto l’indirizzo della pagina. Gli elementi <xhtml:link> vanno nello stesso contenitore <url>, allo stesso livello di <loc>, dopo la chiusura </loc>. Ogni <xhtml:link> descrive una variante con rel="alternate", il codice hreflang e il relativo indirizzo href.
Ripeti il contenitore <url> per ciascuna versione. Ognuno deve includere l’elenco completo delle alternative, compresa la pagina indicata nel proprio <loc>.
Nell’elemento principale <urlset> dichiara anche xmlns:xhtml="http://www.w3.org/1999/xhtml", che serve a identificare gli elementi xhtml:link. Questa struttura è illustrata nell’esempio di sitemap con hreflang di Google.
Per due pagine, italiana e inglese, la sitemap è questa:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/it/guida/</loc>
<xhtml:link rel="alternate" hreflang="it" href="https://example.com/it/guida/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/guide/"/>
</url>
<url>
<loc>https://example.com/en/guide/</loc>
<xhtml:link rel="alternate" hreflang="it" href="https://example.com/it/guida/"/>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/guide/"/>
</url>
</urlset>
Quante annotazioni servono e quali limiti ha la sitemap?
Nel modello completo, il numero di annotazioni per pagina coincide con il numero di versioni del gruppo, più l’eventuale voce x-default. Le istruzioni Google consultate non indicano un massimo specifico di tag hreflang per pagina.
Esempio: con 10 versioni della stessa pagina servono 10 annotazioni su ciascuna versione, inclusa quella che richiama la pagina stessa. Se aggiungi x-default, le voci diventano 11 su ciascuna pagina.
Il limite delle sitemap riguarda invece il singolo file: al massimo 50.000 URL e 50 MB non compressi. Se superi anche una sola delle due soglie, suddividi gli indirizzi in più sitemap, eventualmente raccolte in un indice, come indicato nella guida Google alla creazione delle sitemap.
Gli elementi alternativi xhtml:link non consumano il limite dei 50.000 URL, ma aumentano il peso del file. Questi limiti non stabiliscono quante lingue puoi avere e non impongono di passare alla sitemap dopo un certo numero di varianti. Il passaggio conviene quando rende più semplice la gestione o evita di ripetere molto codice nelle risposte delle pagine.
Come controllare hreflang sulle pagine pubblicate
Per controllare hreflang devi esaminare le annotazioni effettivamente pubblicate, le destinazioni e i collegamenti di ritorno. Un codice scritto bene può comunque collegare la pagina sbagliata: per questo si controllano le destinazioni, non solo i tag.
Un hreflang checker o tester può aiutarti a controllare una pagina. Per esaminare l’intero gruppo, il controllo deve aprire anche gli URL elencati e leggere le loro annotazioni. Su un sito esteso, una scansione automatica delle destinazioni permette di trovare relazioni mancanti o contraddittorie.
- Apri gli indirizzi di destinazione. Ogni URL annotato dovrebbe rispondere direttamente con stato HTTP 200, cioè una risposta riuscita, e mostrare il contenuto nella lingua dichiarata. Usa l’indirizzo finale della pagina, evitando passaggi attraverso redirect.
- Leggi ciò che viene davvero pubblicato. Per l’HTML, apri il sorgente e cerca hreflang nella sezione head. Se il sito aggiunge le annotazioni con JavaScript, controlla anche l’HTML elaborato dal browser negli strumenti per sviluppatori. Se usi gli altri metodi, esamina l’intestazione HTTP Link o il file sitemap generato.
- Confronta tutte le versioni del gruppo. Controlla i codici, gli URL completi, il riferimento alla pagina stessa e il ritorno dalle altre versioni. La stessa variante non deve essere associata a indirizzi diversi in dichiarazioni contraddittorie.
- Confronta canonical e alternative. Controlla il canonical di ogni destinazione, non soltanto quello della pagina da cui sei partito. Un collegamento può sembrare corretto e portare a una pagina che indica un altro indirizzo come preferito.
- Controlla che le pagine siano accessibili a Google. Un blocco nel file robots.txt può impedirne la scansione; l’istruzione noindex chiede di escluderle dall’indice. La risposta 200, da sola, non dimostra che una pagina sia indicizzata.
Se manca il collegamento di ritorno, Google può ignorare quella relazione hreflang. Le altre relazioni che restano reciproche possono comunque essere elaborate, come spiegano le linee guida Google sulla reciprocità: un errore non rende automaticamente inutilizzabili tutte le annotazioni del sito.
Come usare Search Console per cercare il problema
Lo strumento Controllo URL di Google Search Console aiuta a distinguere lo stato della pagina conosciuta da Google dalla risposta attuale del sito. Nei dati indicizzati puoi vedere anche quale canonical ha scelto Google.
Il test in tempo reale serve a esaminare la pagina pubblicata, ma non prevede quale canonical Google sceglierà. La guida ufficiale al Controllo URL chiarisce questa distinzione. Per il gruppo intero, ripeti il controllo su ogni versione.
Il vecchio rapporto Targeting internazionale è stato ritirato e l’impostazione del Paese tramite Search Console non è più supportata. Google lo conferma nell’avviso sul ritiro del rapporto; il supporto a hreflang continua.
Che cosa aggiornare quando cambia una traduzione
Quando pubblichi, sposti o elimini una variante, aggiorna l’associazione da cui generi le annotazioni. Poi rigenera le pagine, le intestazioni o le sitemap interessate e controlla l’output pubblicato.
Una nuova traduzione va aggiunta anche alle dichiarazioni delle versioni già esistenti. Una traduzione eliminata va tolta dalle alternative che la richiamavano. Se cambiano i modelli di pagina, il CMS o i domini, ripeti i controlli: le impostazioni salvate possono essere corrette mentre il codice servito è cambiato.
Che cosa aspettarti nei risultati di Google
Una configurazione coerente aiuta Google a riconoscere le alternative, ma non garantisce l’indicizzazione, la variante mostrata in ogni ricerca o un aumento del traffico. Anche il contenuto e gli altri segnali del sito contribuiscono alla scelta.
Dopo gli aggiornamenti, osserva le pagine di arrivo e i Paesi di provenienza per trovare casi da esaminare. Una visita dagli Stati Uniti a una pagina tedesca può essere giusta: anche negli Stati Uniti c’è chi cerca in tedesco. Preoccupati quando succede spesso su pagine che hanno una versione inglese.
Comincia da una pagina disponibile in due lingue
Scegli una pagina importante che esiste già in almeno due lingue. Apri entrambe le versioni, copia gli indirizzi finali sulla stessa riga e controlla che offrano lo stesso prodotto o argomento.
Quella coppia di indirizzi è la base da cui partire per costruire e controllare le annotazioni prima di estendere il lavoro al sito. Farlo prima di usare un generatore evita di moltiplicare un’associazione sbagliata: le alternative che segnali a Google devono portare davvero alla stessa risorsa, nella versione dichiarata. Controlla quindi che ognuna delle due pagine elenchi l’altra e se stessa.
Fonti e riferimenti
- Google Search Central: informare Google delle versioni localizzate di una pagina. Sintassi, codici, reciprocità, HTML, intestazioni HTTP e struttura delle sitemap con hreflang.
- Google Search Central: gestione dei siti multiregionali e multilingue. URL distinti, riconoscimento della lingua e accesso alle versioni linguistiche.
- Google Search Central: come specificare un URL canonico. Significato del canonical e coerenza con la lingua della pagina.
- Google Search Central: come usare x-default. Scelta della destinazione di riserva, anche fra le versioni linguistiche esistenti.
- Google Search Central: creare e inviare una sitemap. Limiti di URL e dimensioni per singolo file.
- Guida di Search Console: strumento Controllo URL. Differenze fra dati indicizzati, test in tempo reale e canonical scelta da Google.
- Guida di Search Console: ritiro del rapporto Targeting internazionale. Funzioni non più disponibili e continuità del supporto a hreflang.
Approfondisci il servizio: SEO industriale.
