--- title: "Cos’è hreflang e come funziona" url: https://www.conseolente.it/tag-hreflang-cosa-sono-e-come-implementarli-sul-sito/ aggiornato: 2026-10-27 descrizione: "Scopri cos'è hreflang, come funziona e come implementarlo correttamente. Guida completa alla sintassi, ai metodi di implementazione e alle regole per evitare…" topic: "Hreflang · implementazione · siti multilingua" --- # Cos’è hreflang e come funziona > Versione per assistenti AI. Pagina originale: [Cos’è hreflang e come funziona](https://www.conseolente.it/tag-hreflang-cosa-sono-e-come-implementarli-sul-sito/?via=md) 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](https://www.conseolente.it/consulente/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: ``` - ``` 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 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 la lingua si sceglie con un cookie o un selettore automatico 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 nell’
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: ; rel="alternate"; hreflang="x-default", ; 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. | 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](https://www.conseolente.it/considerazioni-sul-canonical-tra-errori-comuni-e-soluzioni-inaspettate/) 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 ](https://ahrefs.com/blog/seo-statistics/). 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ì: dentro il tag , non 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 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 [107 SEO Statistics for 2026 (2026)](https://ahrefs.com/blog/seo-statistics/) ahrefs.com