
In breve: Hreflang è un’indicazione che dice a Google quali pagine sono la stessa pagina in lingue o paesi diversi, così mostra a ciascuno la versione giusta. Ogni versione deve elencare tutte le altre e anche sé stessa, con URL completi e codici lingua validi; x-default indica la pagina di riserva.
Se il tuo sito ha una versione in italiano e una in inglese, vuoi che un turista di Londra trovi su Google la pagina inglese e un cliente di Napoli quella italiana. Lo strumento per dirlo a Google si chiama hreflang. È una riga di codice semplice, ma basta un errore per renderla inutile: per questo lo controllo sempre quando realizzo siti web multilingua.
Cos’è hreflang
Hreflang è un’annotazione che collega tra loro le versioni della stessa pagina in lingue (o paesi) diverse. Non traduce nulla e non è un fattore di posizionamento in sé: serve a far capire a Google che quelle pagine sono alternative tra loro, così può mostrare la versione più adatta a chi cerca.
Un dettaglio che molti non sanno: Google non usa hreflang né l’attributo lang dell’HTML per capire in che lingua è scritta una pagina; la lingua la riconosce da solo, leggendo il testo (fonte: Google Search Central). Hreflang serve solo a collegare le versioni.
Quando serve (e quando no)
- serve se hai la stessa pagina in più lingue, per esempio /chi-siamo/ e /en/about-us/;
- serve se hai la stessa lingua per paesi diversi con differenze reali (prezzi in sterline per il Regno Unito, in euro per l’Irlanda);
- non serve se il sito è in una sola lingua;
- non basta se le “traduzioni” esistono solo nel browser del visitatore: per Google quelle pagine non esistono, quindi non c’è nulla da collegare.
Come si scrive il tag hreflang
Il metodo più comune è inserire nel <head> di ogni versione un elenco di link alternativi. Per una pagina in italiano, inglese e tedesco:
<link rel="alternate" hreflang="it" href="https://www.esempio.it/camere/" />
<link rel="alternate" hreflang="en" href="https://www.esempio.it/en/rooms/" />
<link rel="alternate" hreflang="de" href="https://www.esempio.it/de/zimmer/" />
<link rel="alternate" hreflang="x-default" href="https://www.esempio.it/en/rooms/" />Lo stesso blocco, identico, va in tutte e tre le pagine. L’ultima riga, x-default, indica la versione da mostrare a chi usa una lingua che non hai (per esempio uno spagnolo): di solito l’inglese, o una pagina con la scelta della lingua.
Le regole da rispettare
Dalla documentazione di Google, queste sono le regole che contano di più:
- link reciproci: se la pagina italiana indica quella inglese, anche quella inglese deve indicare quella italiana. Senza link di ritorno le annotazioni possono essere ignorate;
- autoreferenziale: ogni pagina elenca anche sé stessa;
- URL completi, con https://, non percorsi relativi;
- codici validi: lingua in formato ISO 639-1 (it, en, de), con un eventuale paese in formato ISO 3166-1 Alpha 2 (en-GB, de-AT);
- un solo metodo basta: tag nell’HTML, intestazione HTTP o sitemap XML sono equivalenti, usarne più di uno non porta vantaggi;
- le pagine collegate devono essere indicizzabili e rispondere 200: niente pagine in noindex, redirect o 404 nell’elenco.
| Codice | Valido? | Perché |
|---|---|---|
it | Sì | Italiano, per tutti i paesi |
en-GB | Sì | Inglese per il Regno Unito |
en-UK | No | Il codice paese del Regno Unito è GB, non UK |
be | Non per il Belgio | È la lingua bielorussa: il paese da solo non basta |
x-default | Sì | Versione di riserva per le altre lingue |
Tre modi per inserirlo
- nell’HTML, con i tag
linknelhead: il più semplice da controllare; - nell’intestazione HTTP della risposta: utile per file come i PDF;
- nella sitemap XML, con gli elementi
xhtml:link: comodo per siti grandi, perché non tocchi le pagine.
Se il sito è in WordPress, i plugin multilingua più diffusi (come WPML o Polylang) generano i tag da soli quando colleghi tra loro le traduzioni. Il punto debole non è il plugin, ma le pagine lasciate senza traduzione collegata: lì il tag manca. Ne parlo nella guida su come fare SEO su WordPress.
Hreflang, canonical e sitemap: come stanno insieme
Tre indicazioni diverse, che spesso si confondono:
- canonical dice qual è la versione principale di una pagina nella stessa lingua. Ogni traduzione deve avere il canonical verso sé stessa, non verso l’originale italiano;
- hreflang collega le versioni equivalenti nelle diverse lingue;
- sitemap elenca tutte le pagine da far scoprire a Google, comprese quelle tradotte. Se usi la sitemap anche per hreflang, ogni voce contiene i link alle altre lingue.
Se le tre indicazioni si contraddicono (per esempio hreflang verso la pagina inglese, ma canonical della pagina inglese verso quella italiana) Google deve scegliere da solo, e di solito sceglie di mostrare una sola versione. Trovi come funziona la sitemap nella guida su cos’è una sitemap.
Cosa succede quando una pagina non è tradotta
Capita spesso: il sito ha 30 pagine in italiano e solo 10 in inglese. In questo caso le pagine senza traduzione non vanno collegate con hreflang a una pagina qualsiasi della lingua straniera, come la home inglese: hreflang deve unire solo pagine che dicono la stessa cosa. Meglio lasciarle senza annotazione finché la traduzione non c’è, e intanto tradurre per prime le pagine che portano contatti.
Gli errori più comuni
- codici paese sbagliati, come en-UK o un codice di sola nazione;
- link di ritorno mancanti, perché una traduzione è stata creata ma non collegata;
- hreflang che punta a pagine reindirizzate o in noindex, spesso dopo un rifacimento del sito;
- tutte le versioni che puntano alla home della lingua invece che alla pagina equivalente;
- canonical di tutte le lingue verso la versione italiana: così dici a Google di ignorare le traduzioni.
Come controllare che funzioni
Apri una pagina, visualizza il sorgente e cerca hreflang: devi trovare tutte le versioni, compresa quella che stai guardando. Ripeti il controllo dalle altre lingue. Per siti grandi uso un crawler che segnala in un colpo solo link mancanti, codici non validi e pagine che non rispondono 200. Poi verifico in Search Console che le pagine di ogni lingua siano indicizzate.
Un esempio dal mio lavoro
Per Relax e Oltre, appartamenti per vacanze a Lipari, il sito è in italiano, inglese e francese con WPML: oltre alle traduzioni ho curato il collegamento tra le versioni, così Google mostra la lingua giusta a chi cerca dall’estero. Lo stesso lavoro, su cinque lingue, l’ho fatto per Visit Ischia, il sito turistico del Comune di Ischia.
Domande frequenti su hreflang
Hreflang migliora il posizionamento?
Non direttamente. Serve a far mostrare la versione giusta a ogni utente ed evita che le versioni linguistiche si confondano tra loro. Il posizionamento dipende dalla qualità di ogni pagina tradotta.
Serve hreflang se il sito è solo in italiano?
No. Hreflang serve solo quando la stessa pagina esiste in più lingue o in versioni diverse per paesi diversi.
Cos’è x-default?
È la versione da mostrare a chi usa una lingua che il sito non ha. Di solito si indica la versione inglese o una pagina con la scelta della lingua.
Meglio hreflang nell’HTML o nella sitemap?
Per Google sono equivalenti. Nell’HTML è più facile da controllare pagina per pagina; nella sitemap è comodo per siti con molte pagine. Basta un solo metodo.
Le traduzioni automatiche nel browser hanno bisogno di hreflang?
Non possono averlo: se la traduzione avviene solo nel browser del visitatore non ci sono pagine tradotte con un loro indirizzo, quindi Google non le vede e non le può mostrare.




