Salta al contenuto

Cos’è hreflang e come funziona

Foto Autore
Contenuto a cura di Roberto Varriale Aggiornato il 27 Ottobre 2026 · Lettura: 13 min

Hreflang è l’attributo HTML che indica ai motori di ricerca la lingua, e se serve l’area geografica, di una pagina web, così che un utente trovi la versione del sito scritta nella sua lingua o adattata al suo paese invece di una versione sbagliata.

Hreflang in sintesi

  • Funzione: dice a Google e agli altri motori quale versione linguistica o geografica di una pagina mostrare a chi cerca.
  • Sintassi: il tag si scrive con rel="alternate", hreflang="codice" e href="url", usando il codice lingua ISO 639-1 e, se serve, il codice paese ISO 3166-1 Alpha-2.
  • Dove si inserisce: nell’head HTML, negli header HTTP per i file non HTML o nella sitemap XML; un solo metodo per sito, mai due insieme.
  • Regola di reciprocità: se la pagina A rimanda alla B, la B deve rimandare alla A, inclusa una riga che punta a se stessa.
  • Quando serve davvero: solo con URL distinti per lingua o paese; con un unico URL e lingua scelta via cookie l’attributo non ha effetto.
  • Fallback: il valore x-default indica la pagina da mostrare a chi non corrisponde a nessuna lingua o area dichiarata.

A cosa serve hreflang

Hreflang risolve un problema preciso: quando un sito ha più versioni della stessa pagina in lingue o aree diverse, Google deve capire quale mostrare a ciascun utente. Senza questa indicazione, un visitatore che cerca da Madrid può ricevere la versione italiana del sito, e uno che cerca dalla Germania la versione in inglese pensata per gli Stati Uniti.

Il secondo problema che risolve riguarda i contenuti duplicati. Una scheda prodotto in inglese per il Regno Unito e una per gli Stati Uniti hanno spesso lo stesso impianto, la stessa struttura, differenze minime di valuta o di termini. Google potrebbe leggerle come copie, non come varianti localizzate, e indicizzarne una sola. L’attributo dichiara in modo esplicito che si tratta di versioni dello stesso contenuto pensate per pubblici diversi.

In diverse guide SEO che ho confrontato, chi atterra sulla pagina nella propria lingua tende a restare di più e ad abbandonare meno il sito: un effetto indiretto sull’esperienza d’uso, non una garanzia diretta sul posizionamento. In un video pubblicato da Google, un rappresentante del team Search ha spiegato che le pagine di uno stesso gruppo hreflang condividono i segnali di posizionamento: lavorare bene su questo attributo distribuisce meglio l’autorevolezza fra le versioni linguistiche, un effetto che rientra negli stessi obiettivi dell’ottimizzazione SEO del sito nel suo complesso.

Hreflang resta un segnale, non un comando. Se due varianti sono troppo simili tra loro (per esempio il francese di Francia e quello del Belgio francofono), Google può scegliere di mostrarne solo una, trattandola come versione principale. Secondo una dichiarazione di John Mueller, l’attributo non garantisce nemmeno che tutte le versioni vengano indicizzate. Nel mio lavoro lo tratto come una condizione necessaria per evitare ambiguità, non come una garanzia di risultato.

Come è fatto un tag hreflang

Un tag hreflang è fatto di tre parti: rel="alternate", che dichiara che il link punta a una versione alternativa della pagina; hreflang="codice", che indica la lingua e, se serve, il paese; href="url", l’indirizzo assoluto della versione alternativa. La forma completa è questa, per una pagina che ha tre versioni:

<link rel="alternate" hreflang="it" href="https://www.esempio.it/pagina/" />
<link rel="alternate" hreflang="en" href="https://www.esempio.it/en/page/" />
<link rel="alternate" hreflang="x-default" href="https://www.esempio.it/pagina/" />

Ogni riga descrive una versione della stessa pagina. La prima punta a se stessa, l’autoreferenzialità è richiesta anche se sembra ridondante, la seconda alla versione inglese, la terza al fallback.

Codice lingua e codice paese

Il codice lingua segue lo standard ISO 639-1, due lettere minuscole: it per l’italiano, en per l’inglese, de per il tedesco. È obbligatorio: hreflang non accetta un valore che indichi solo il paese senza la lingua. Il codice paese, quando serve, segue lo standard ISO 3166-1 Alpha-2, due lettere maiuscole precedute da trattino: en-GB per il Regno Unito, en-US per gli Stati Uniti, pt-BR per il portoghese del Brasile. Per le lingue scritte con alfabeti diversi dallo stesso idioma esiste anche un codice di script secondo lo standard ISO 15924, come zh-Hant per il cinese tradizionale e zh-Hans per il semplificato: un caso che su un sito italiano o europeo capita raramente.

Il valore x-default

x-default è il valore riservato che indica la pagina da mostrare a chi non corrisponde a nessuna lingua o area fra quelle dichiarate. Google lo consiglia, anche se non è obbligatorio: senza un fallback, un utente che arriva da un paese non previsto nel set di versioni rischia di non ricevere nessuna indicazione utile. Nella maggior parte dei siti multilingua la pagina x-default coincide con la home generica o con una pagina di selezione della lingua.

Differenza tra hreflang e l’attributo lang

L’attributo lang sul tag <html> dichiara in che lingua è scritta quella pagina: serve ai browser, ai lettori per non vedenti e all’accessibilità in generale. Hreflang fa un lavoro diverso: mette in relazione pagine diverse fra loro, dicendo a Google quale versione corrisponde a quale lingua o area. Capita che chi gestisce un sito tradotto imposti solo lang e pensi di aver già risolto il targeting internazionale: servono entrambi, perché un sito con una sola pagina e un lang impostato correttamente resta comunque invisibile a chi cerca una versione localizzata, dato che manca il collegamento fra le varianti.

Quando serve hreflang (e quando no)

Non tutti i siti con contenuti in più lingue hanno bisogno di hreflang. La scelta dipende da come sono strutturati gli URL e da quanto le versioni si somigliano.

Se il sito ha URL distinti per lingua o paese

Serve hreflang quando esistono URL separati per ogni lingua o area – sottocartelle come /it/ e /en/, sottodomini o domini diversi – e l’obiettivo è che Google mostri la versione giusta a ciascun pubblico. Vale anche per varianti della stessa lingua, come l’italiano di Italia e Svizzera o l’inglese di Regno Unito e Stati Uniti, se cambiano prezzo, valuta o normativa.

Se il sito usa un unico URL e la lingua cambia in base a un cookie o alla geolocalizzazione del browser, hreflang non ha effetto: Google vede un solo URL e non ha versioni distinte da collegare fra loro.

Se il sito è monolingua o le versioni sono su domini separati con poco in comune

Un sito rivolto a un solo mercato non ha bisogno dell’attributo, e aggiungerlo crea solo rumore inutile. Lo stesso vale quando le versioni linguistiche vivono su domini completamente separati con pochissimi contenuti condivisi: la separazione è già evidente nella struttura del dominio.

I tre modi per usare hreflang

Hreflang si dichiara in uno di tre modi, equivalenti per Google: nell’head HTML, negli header HTTP o nella sitemap XML. Vanno usati in alternativa, mai insieme sullo stesso sito, perché segnali duplicati o in conflitto aumentano il rischio di errori.

Tag HTML nell’head

È il metodo più diretto: si inserisce un elemento <link> nell’<head> di ogni pagina, uno per ogni versione disponibile, inclusa la pagina stessa. Funziona bene su siti con poche decine di pagine; su siti grandi il codice da mantenere cresce in fretta, perché ogni nuova traduzione richiede di aggiornare tutte le versioni esistenti. Se le pagine vengono generate lato client con JavaScript, verifica che i tag hreflang risultino nell’HTML restituito al crawler e non solo dopo il caricamento nel browser, altrimenti i motori di ricerca potrebbero non leggerli.

Header HTTP

Si usa per i documenti che non hanno un head HTML, come i PDF: l’annotazione hreflang viaggia nell’intestazione della risposta del server.

HTTP/1.1 200 OK
Content-Type: application/pdf
Link: <https://esempio.com/doc.pdf>; rel="alternate"; hreflang="x-default",
<https://esempio.com/en/doc.pdf>; rel="alternate"; hreflang="en"

Richiede accesso alla configurazione del server, e per questo resta un metodo che si usa quasi solo per contenuti non HTML.

Sitemap XML

Le annotazioni hreflang entrano nella sitemap tramite il namespace xhtml:link, un blocco per ogni URL con tutte le sue varianti. È la scelta più gestibile quando il sito ha centinaia o migliaia di pagine, perché concentra tutte le relazioni in un solo file invece di modificare l’head di ogni pagina.

Quale metodo scegliere in base alla struttura del sito
Situazione Metodo consigliato Perché
Sito piccolo, poche pagine tradotte Tag HTML nell’head Semplice da controllare pagina per pagina
Sito con centinaia o migliaia di URL Sitemap XML Un solo file da aggiornare, meno codice su ogni pagina
Documenti non HTML (PDF, altri file) Header HTTP È l’unico metodo che funziona senza un head

Regole per non sbagliare con hreflang

Tre regole decidono se Google legge l’attributo o lo ignora del tutto.

La prima è la reciprocità: se la pagina italiana rimanda alla versione inglese, la versione inglese deve rimandare a quella italiana. Manca spesso in un verso solo, e quando succede Google ignora l’intera annotazione su entrambe le pagine, non solo quella incompleta.

La seconda è l’autoreferenzialità: ogni pagina deve includere un hreflang che punta a se stessa, oltre a quelli verso le altre versioni. Sembra un dettaglio superfluo, ma fa parte della stessa dichiarazione di set completo.

La terza è la coerenza con il tag canonical di ogni pagina: l’URL dichiarato in hreflang deve coincidere con quello indicato nel canonical della stessa pagina. Se il canonical della versione italiana punta alla versione inglese mentre l’hreflang la dichiara italiana, Google riceve due indicazioni opposte e tende a ignorare l’hreflang.

A questi tre punti si aggiungono gli errori più frequenti: codici lingua o paese scritti fuori standard, come nomi per esteso al posto delle due lettere o abbreviazioni inventate, e URL che restituiscono un errore o un redirect invece di una pagina valida. Oltre il 67% dei domini che utilizzano hreflang presenta problemi secondo 107 SEO Statistics for 2026 . Nella mia esperienza la causa più frequente è proprio la mancanza di reciprocità: è l’unico errore che non si vede controllando una sola pagina.

Come verificare se hreflang funziona davvero

Conoscere la sintassi non basta a sapere se gli hreflang del sito sono davvero attivi: capita spesso che un plugin configurato anni fa smetta di generarli senza che nessuno se ne accorga. Il controllo si fa in tre passi.

  1. Apri il codice sorgente della pagina (Ctrl+U, o Cmd+Option+U su Mac) e cerca la stringa “hreflang”.
  2. Controlla che le righe trovate siano fatte così: <link rel="alternate" hreflang="..."> dentro il tag <head>, non <a href> nel corpo della pagina.
  3. Apri la versione alternativa collegata e verifica che a sua volta rimandi indietro alla pagina di partenza, inclusa una riga autoreferenziale.

Il secondo passo è quello dove capita l’errore più insidioso. Un selettore di lingua nel menu – le bandierine IT/EN – genera link che contengono anch’essi l’attributo hreflang, ma sono link di navigazione verso la home di ciascuna lingua, non le annotazioni che Google usa per collegare le traduzioni. Si distinguono così: quelli veri iniziano con <link rel="alternate" e stanno nell’head; quelli del selettore iniziano con <a href e stanno nel corpo della pagina. Cercare la parola “hreflang” con Ctrl+F e trovarla due volte non significa che il sito sia a posto.

Per un controllo su una pagina alla volta bastano gli strumenti per sviluppatori del browser o un’estensione che legge gli hreflang e verifica la reciprocità. Per un sito intero serve un crawler SEO capace di estrarre gli hreflang dall’head di ogni URL e archiviarli in una tabella: in una guida tecnica che ho consultato, un audit fatto così su un sito di 1.619 pagine in due lingue ha trovato 4.854 annotazioni hreflang distribuite su tre valori (it, en, x-default), con solo tre anomalie, tutte riconducibili a pagine volutamente disponibili in una sola lingua.

Un controllo che molte guide ancora citano non esiste più: il rapporto “Targeting internazionale” di Search Console, che segnalava gli errori hreflang di tutto il sito, è stato dichiarato deprecato il 24 agosto 2022 e rimosso il 22 settembre 2022, secondo quanto riportato in una guida tecnica SEO che ho consultato. Google continua a usare gli hreflang, ma non segnala più gli errori in quel rapporto: restano lo strumento di controllo URL di Search Console per la singola pagina e un crawler per il sito intero. Questo tipo di verifica rientra in una più generale analisi tecnica del sito, e lo stesso principio che guida un controllo dei collegamenti rotti si applica agli URL dichiarati nell’hreflang invece che ai link interni.

Domande frequenti su hreflang

Cos’è hreflang?

Hreflang è l’attributo HTML che indica ai motori di ricerca la lingua e, se serve, l’area geografica di destinazione di una pagina, così che un utente trovi la versione corretta fra quelle disponibili in un sito multilingua o multiregione.

A cosa serve hreflang?

Serve a mostrare la versione giusta a ogni utente in base a lingua e area, e a evitare che Google tratti come contenuti duplicati le versioni molto simili di una stessa pagina scritte per pubblici diversi.

Come è fatto un tag hreflang?

?

Un tag hreflang è composto da tre parti dentro un elemento link: rel="alternate", hreflang="codice" con il codice lingua ISO 639-1 e, facoltativo, il codice paese ISO 3166-1, e href="url" con l’indirizzo assoluto della versione alternativa.

Quali sono i tre modi per usare hreflang?

I tre metodi sono il tag HTML nell’head della pagina, l’header HTTP per i file non HTML come i PDF, e la sitemap XML con le annotazioni xhtml:link. Sono equivalenti per Google e vanno usati uno solo per sito.

Cos’è la regola della reciprocità in hreflang?

La reciprocità richiede che se una pagina rimanda a una versione alternativa, quella versione rimandi indietro alla pagina di partenza, inclusa una riga autoreferenziale su ogni pagina. Senza reciprocità Google ignora l’intera annotazione.

A cosa serve il valore x-default?

x-default indica la pagina di fallback da mostrare agli utenti il cui browser non corrisponde a nessuna lingua o area dichiarata nel set hreflang. Non è obbligatorio ma è una pratica consigliata da Google.

Quando non serve usare hreflang?

Non serve quando il sito usa un unico URL con la lingua scelta tramite cookie, quando è monolingua rivolto a un solo mercato, o quando le versioni linguistiche vivono su domini separati con pochi contenuti condivisi.

Come verifico se gli hreflang del mio sito funzionano?

Si verifica aprendo il codice sorgente della pagina e cercando le righe <link rel="alternate" hreflang="..."> nell’head, controllando che non siano link del selettore di lingua nel corpo della pagina, e che la versione collegata rimandi indietro correttamente.

Fonti e riferimenti

Questo contenuto ti ha aiutato?

Ti è stato utile questo articolo?

Aiuta altri professionisti a crescere. Condividi questo contenuto con il tuo network.

Iscriviti alla Newsletter

Ricevi una sola mail a settimana con strategie, casi studio e consigli pratici per scalare la tua impresa. Zero spam, promesso.

Quanto fa + ?

Roberto
Varriale

In quasi 20 anni ho aiutato oltre 700 Micro Imprese a migliorare il ROI aumentando Vendite e clienti con il Traffico Organico.

Chi Sono

"Se questa risorsa ti è stata utile, valuta se seguirmi anche nei social sia l'investimento di tempo migliore che tu possa fare adesso."

Roberto Varriale