Tutte le guide

Tag hreflang: cos'è, come si usa e gli errori da evitare

Il tag hreflang dice a Google quale lingua mostrare a ogni utente. Sintassi, regole, codici ISO corretti, x-default, rapporto con il canonical ed errori tipici.

Aggiornato il 24 settembre 2026 · 5 min di lettura

Hai tradotto il sito in inglese e tedesco, ma Google continua a mostrare la versione italiana a chi cerca da Berlino. Quasi sempre il problema ha un nome: hreflang.

Ecco cos'è, come si scrive, le regole da rispettare e come controllarlo.

Cos'è il tag hreflang

hreflang è un attributo che dice a Google: «questa pagina esiste anche in altre lingue, a questi indirizzi». Si scrive come un elenco di link nell'<head> di ogni pagina:

<link rel="alternate" hreflang="it" href="https://tuosito.it/prezzi/" />
<link rel="alternate" hreflang="en" href="https://tuosito.it/en/pricing/" />
<link rel="alternate" hreflang="de" href="https://tuosito.it/de/preise/" />
<link rel="alternate" hreflang="x-default" href="https://tuosito.it/prezzi/" />

Ogni riga collega una versione al suo codice di lingua. È un segnale forte, non un ordine: se è scritto bene Google lo segue, se è scritto male lo ignora.

Perché conta per la SEO

Senza hreflang succedono tre cose:

Non è un fattore di ranking diretto, ma decide quale versione vede ogni utente.

Le regole da rispettare

RegolaCosa significa
ReciprocitàSe la pagina A indica B come versione inglese, B deve indicare A come versione italiana
URL assolutiSempre https://tuosito.it/en/, mai /en/
AutoreferenzaOgni pagina include anche sé stessa nell'elenco
Codici ISO validiLingua in ISO 639-1, regione facoltativa in ISO 3166-1
x-defaultUna versione di riserva per chi parla altre lingue

Il modo più semplice per rispettare reciprocità e autoreferenza è usare lo stesso blocco hreflang su tutte le versioni. Se manca il link di ritorno, Google scarta la coppia.

Codici di lingua: gli errori tipici

Il formato è lingua oppure lingua-REGIONE, con il trattino. Per il pubblico italiano: it per tutti, it-IT per l'Italia, it-CH per la Svizzera italiana.

Molti errori nascono dal confondere paese e lingua:

SbagliatoCorrettoPerché
en-UKen-GBIl codice del Regno Unito è GB
jpjaIl giapponese è ja
cnzhIl cinese è zh
krkoIl coreano è ko
dkdaIl danese è da
grelIl greco è el
czcsIl ceco è cs
uaukL'ucraino è uk
en_USen-USServe il trattino, non l'underscore

Un codice non valido viene semplicemente ignorato.

x-default

x-default indica la pagina da mostrare quando nessuna lingua corrisponde a quella dell'utente: di solito l'originale o una pagina di scelta della lingua. Conviene aggiungerlo sempre.

Tre modi per implementarlo

  1. Nell'<head> di ogni pagina. Il metodo più diffuso e più facile da controllare.
  2. Nella sitemap XML. Con elementi xhtml:link per ogni URL: comodo sui siti grandi, perché gestisci tutto in un solo file.
  3. Nell'header HTTP Link. Utile per PDF e file non HTML, che non hanno un <head>.

Se ne usi due, devono dire esattamente la stessa cosa.

hreflang e canonical

Il canonical serve a indicare l'URL ufficiale tra pagine identiche nella stessa lingua. Una traduzione non è un duplicato.

La regola è una sola: ogni versione linguistica ha un canonical che punta a sé stessa. La pagina /en/pricing/ ha canonical /en/pricing/, non /prezzi/.

<!-- Su https://tuosito.it/en/pricing/ -->
<link rel="canonical" href="https://tuosito.it/en/pricing/" />

Se il canonical punta a un'altra lingua, Google non indicizza la traduzione e ignora l'hreflang di quella pagina. È l'errore più costoso, perché dal browser non si vede nulla.

Non dimenticare html lang

<html lang="en"> dichiara la lingua della pagina a browser, lettori di schermo e motori di ricerca. Deve essere coerente con l'hreflang: se /en/ dice lang="it", i segnali si contraddicono.

Gli errori più comuni

Come verificarlo

Per un controllo completo del sito segui l'audit SEO multilingua.

Come Lantis lo automatizza

Scrivere hreflang a mano su 50 pagine in quattro lingue significa gestire centinaia di link. Lantis serve ogni lingua sul proprio URL (una sottocartella come /en/) e aggiunge in automatico:

Funziona con una riga di codice su Webflow, WordPress, Shopify o qualsiasi sito, e su Framer con il plugin. Da 3 € al mese per lingua, prime 100 traduzioni gratis, senza carta. Vedi come tradurre un sito Framer o Webflow.

Domande frequenti

hreflang è obbligatorio per un sito multilingua?

Non è obbligatorio, ma senza hreflang Google deve indovinare quale versione mostrare. Su un sito multilingua è uno dei segnali più importanti.

Meglio "it" o "it-IT"?

Se hai una sola versione italiana, it basta e copre tutti gli utenti italofoni. Usa it-IT e it-CH solo se hai contenuti diversi per Italia e Svizzera, per esempio prezzi in euro e in franchi.

Il canonical delle pagine tradotte deve puntare all'originale?

No. Ogni traduzione deve avere un canonical verso sé stessa. Se punta all'originale, Google non indicizza la traduzione e ignora il suo hreflang.

Posso usare hreflang con ?lang=en?

In teoria sì, ma è una struttura fragile. Meglio una sottocartella per lingua (/en/, /de/), che Google scansiona senza ambiguità.

Come faccio a sapere se il mio hreflang funziona?

Il modo più rapido è la verifica gratuita: segnala codici non validi, link di ritorno mancanti, x-default assente e canonical in conflitto.

Disponibile anche in English · Français · Deutsch · Português · हिन्दी · Русский · 日本語 · 한국어 · Türkçe · Bahasa Indonesia · العربية

Continua a leggere