Sito multilingua senza contenuti duplicati: URL, hreflang e canonical spiegati
Come impostare URL per lingua, hreflang e canonical perché Google tratti ogni versione del sito come una pagina a sé e non come un duplicato.
- Nº
- 27
- Pubblicato
- Lettura
- 9 min
- Categoria
- Notes
- Scritto da
- Revylio
Sito multilingua senza contenuti duplicati: i quattro requisiti
Un sito multilingua senza contenuti duplicati si ottiene con quattro scelte. Servono un URL distinto per ogni lingua e tag hreflang reciproci tra le versioni. Servono anche un canonical coerente e testi principali davvero tradotti. Secondo Google, una versione localizzata conta come duplicato solo quando il contenuto principale della pagina non è tradotto.
Un sito multilingua è un sito il cui contenuto è disponibile in più di una lingua. Questa è la definizione della guida di Google Search Central sui siti multiregionali e multilingue. Il contenuto duplicato, in questo contesto, è una pagina che Google considera una copia di un'altra invece di una versione a sé.
Google può trovare da solo le altre versioni linguistiche di una pagina. Raccomanda comunque di indicarle in modo esplicito. Questa guida mostra come farlo per un sito aziendale che lavora in Italia, nel Regno Unito, in Germania e in Romania. Tratta la struttura degli URL, l'attributo hreflang, il canonical, i reindirizzamenti automatici e la localizzazione dei testi.
Un URL distinto per ogni lingua, senza cookie né parametri
Ogni versione linguistica di una pagina deve avere un proprio indirizzo. Google consiglia URL separati per le diverse lingue. Sconsiglia invece di affidare la scelta della lingua a un cookie o alle impostazioni del browser. Anche i parametri nell'indirizzo, come site.com?loc=de, sono tra le soluzioni che Google non raccomanda.
La ragione sta nel modo in cui Google esplora il web. Il crawler Googlebot lavora di solito da server negli Stati Uniti. Invia le richieste HTTP senza l'intestazione Accept-Language, quella con cui il browser comunica la lingua preferita dell'utente. Google inoltre non cambia l'origine del crawler per cercare altre versioni di una pagina.
Una versione legata a cookie o browser resta quindi invisibile a Google. Se la pagina tedesca esiste solo per chi ha un browser in tedesco, Googlebot non la riceve, perché non dichiara alcuna lingua. Per essere esplorata, ogni versione deve avere un indirizzo raggiungibile da chiunque.
Sulla pagina conta il testo visibile, non l'indirizzo. Google riconosce la lingua dal contenuto visibile, non dall'attributo lang né dall'URL. Una cartella /de/ con testo italiano resta, per Google, una pagina in italiano. Google ignora anche i meta tag geografici come geo.position o distribution.
Sottocartelle, sottodomini o domini nazionali: confronto delle strutture URL
La struttura degli URL di un sito multilingua si sceglie tra quattro soluzioni, che Google tratta in modo diverso. Un ccTLD è un dominio di primo livello nazionale, come .de o .it. Un gTLD è un dominio generico, non legato a un luogo, come .com.
| Struttura | Esempio | Cosa indica Google |
|---|---|---|
| Dominio nazionale (ccTLD) | esempio.de | Indica un paese, ma alcuni ccTLD sono trattati come domini generici. |
| Sottodominio | de.esempio.com | Google non usa il sottodominio di lingua per capire il pubblico: va dichiarato con hreflang. |
| Sottocartella | esempio.com/de/ | Tutte le lingue su un solo dominio; le versioni si collegano con hreflang. |
| Parametro | esempio.com?loc=de | Sconsigliato da Google. |
Per una piccola o media azienda le sottocartelle tengono tutte le lingue su un unico dominio, che si gestisce come un solo sito. I domini separati restano possibili, perché Google non richiede che le versioni alternative stiano sullo stesso dominio. In quel caso l'hreflang collega domini diversi.
Alcuni domini sembrano nazionali ma per Google non lo sono. Google tratta come generici alcuni ccTLD, tra cui .tv e .me, e la sua guida ne elenca 20. Anche .eu e .asia sono considerati domini generici, come .com.
Hreflang: come dichiarare lingua e paese di ogni versione
L'hreflang è un attributo che indica a Google che più pagine sono versioni localizzate dello stesso contenuto. Il suo valore contiene uno o due codici separati da un trattino. Il primo è la lingua nel formato ISO 639-1, per esempio de. Il secondo, facoltativo, è il paese nel formato ISO 3166-1 Alpha 2.
Quattro regole evitano gli errori più comuni con l'hreflang:
- Sono accettati solo codici presenti in quei due standard; un codice come
es-419non è supportato. - I valori non distinguono tra maiuscole e minuscole, quindi
en-GBeen-gbsi equivalgono. - Codici riservati come
EU,UNoUKnon hanno alcun effetto su Google. - Il valore
x-defaultindica la pagina da usare quando nessuna lingua corrisponde alle impostazioni del browser; è pensato per una pagina di scelta della lingua.
Le pagine collegate dall'hreflang devono puntarsi a vicenda. Se la pagina X rimanda alla pagina Y ma Y non rimanda a X, manca il link di ritorno. In quel caso Google può ignorare o interpretare male l'indicazione.
Le istruzioni di Google sulle versioni localizzate di una pagina prevedono tre modi di dichiarare le alternative. Sono i tag nell'HTML, l'intestazione HTTP e la sitemap, equivalenti per Google. Usarli tutti e tre insieme non aiuta. L'intestazione HTTP serve soprattutto per file non HTML come i PDF.
Esempio completo: la pagina Assistenza in italiano, inglese, tedesco e rumeno
Prendiamo un'azienda italiana con clienti nel Regno Unito, in Germania e in Romania. Il sito si trova sul dominio aziendale ed è organizzato in sottocartelle. La pagina del servizio di assistenza esiste in quattro versioni, ciascuna con un proprio URL e un testo tradotto:
- italiano:
/it/assistenza/ - inglese per il Regno Unito:
/en-gb/support/ - tedesco:
/de/kundendienst/ - rumeno:
/ro/asistenta/
Nella sezione <head> di tutte e quattro le pagine va inserito lo stesso gruppo di cinque elementi <link rel="alternate">. Ogni elemento abbina un valore hreflang a un URL:
hreflang="it"verso la versione italiana;hreflang="en-gb"verso la versione per il Regno Unito;hreflang="de"verso la versione tedesca;hreflang="ro"verso la versione rumena;hreflang="x-default"verso la pagina di scelta della lingua, qui la radice del dominio.
Ogni URL va scritto per intero, protocollo compreso, perché Google chiede URL alternativi completi. Il codice en-gb resta tale per il pubblico britannico, perché UK non avrebbe effetto. Con lo stesso gruppo in ogni pagina, ogni versione punta alle altre e a sé stessa.
Il canonical non fa parte del gruppo comune, perché cambia da pagina a pagina. Se il sito aggiunge una quinta lingua, il nuovo elemento va inserito in tutte le pagine, non solo in quella nuova.
Canonical e hreflang insieme: ogni lingua resta la versione principale di sé stessa
Il canonical, cioè l'elemento rel="canonical", indica a Google quale URL è la versione principale tra pagine con lo stesso contenuto. Google lo prevede per un caso preciso: più versioni nella stessa lingua con contenuto duplicato. Lì chiede di sceglierne una come principale e di usare insieme rel="canonical" e hreflang.
Le traduzioni sono un caso diverso dai duplicati nella stessa lingua. Una pagina tedesca tradotta non è una copia di quella italiana. Google considera duplicata una versione localizzata solo se il contenuto principale non è tradotto. Un canonical dalla pagina tedesca verso l'italiana dichiarerebbe che la versione tedesca non è quella principale.
Nell'esempio della pagina Assistenza, quindi, ogni lingua indica sé stessa come canonical. La pagina /de/kundendienst/ ha il canonical verso il proprio URL completo, e così le altre tre. Gli hreflang collegano poi le versioni tra loro.
In Svennis, quando impostiamo un sito multilingua, controlliamo pagina per pagina che canonical e hreflang puntino a URL esistenti e che ogni link abbia il suo ritorno. L'errore che incontriamo più spesso presso i clienti è una lingua aggiunta dopo il lancio senza aggiornare gli hreflang delle versioni già pubblicate.
Niente reindirizzamento automatico in base alla lingua o alla posizione del visitatore
Un sito multilingua non dovrebbe spostare il visitatore su un'altra lingua in automatico, in base all'indirizzo IP o al browser. Il motivo riguarda Googlebot. Il crawler arriva di solito da server negli Stati Uniti. Non dichiara alcuna lingua preferita, perché non imposta l'intestazione Accept-Language.
Un reindirizzamento basato su questi segnali tratta Googlebot sempre allo stesso modo. Lo manda ogni volta alla stessa versione, e le altre rischiano di non essere esplorate. Google precisa che non cambia l'origine del crawler per scoprire versioni diverse di una pagina.
La scelta della lingua va quindi lasciata all'utente, con un selettore di lingua visibile in ogni pagina. Ogni versione deve essere raggiungibile tramite un normale link. Se il sito ha una pagina di scelta della lingua, è quella a cui punta x-default.
La posizione del selettore di lingua si decide insieme alla struttura dei menu. Il metodo è descritto nella guida su architettura del sito e menu prima del design.
Traduzione e localizzazione: cosa rende ogni versione una pagina a sé
La localizzazione è il processo con cui il contenuto del sito viene tradotto e adattato alla lingua e al mercato di destinazione. Per Google conta il contenuto principale della pagina. Una versione localizzata è un duplicato solo se quel contenuto non è tradotto. Tradurre solo menu e piè di pagina lascia quindi la pagina nel caso che Google tratta come duplicato.
Il testo tradotto è anche ciò che Google legge per stabilire la lingua. Google non usa l'hreflang né l'attributo lang per riconoscere la lingua di una pagina. Usa invece un algoritmo che analizza il contenuto. L'hreflang collega le versioni, ma è il testo a dire in che lingua è scritta ciascuna.
Oltre al testo principale, conviene adattare tutto ciò che il visitatore legge. Didascalie, moduli e immagini con testo, come i banner, vanno tradotti. Per un e-commerce vanno adattate anche le valute. Il post-editing della traduzione automatica (MTPE) è la revisione, da parte di un traduttore o di un madrelingua, di un testo tradotto a macchina prima della pubblicazione.
Prima di tradurre conviene sapere quali pagine esistono e quali meritano ogni lingua. L'inventario è spiegato nella guida su come preparare i contenuti per il nuovo sito.
Cosa significa per un'azienda italiana che vende nel Regno Unito, in Germania e in Romania
Un'azienda italiana sceglie le lingue del sito in base ai clienti reali, non alla classifica delle lingue più parlate. Nell'esempio di questa guida significa inglese per il Regno Unito, tedesco per la Germania e rumeno per la Romania. Ogni lingua in più aggiunge pagine da tradurre, collegare e mantenere.
Ogni mercato estero chiede anche contenuti propri, non solo tradotti. Condizioni di vendita, metodi di pagamento e informative vanno verificati per ciascun paese prima della pubblicazione. Una pagina tradotta non contiene da sola le informazioni giuste per il paese di destinazione.
Tre dettagli tecnici riguardano da vicino questi tre mercati:
- per il Regno Unito il codice hreflang è
en-gb, perchéUKè un codice riservato senza effetto; - un dominio
.euè trattato da Google come generico e non indica un pubblico europeo; - domini nazionali separati, come un
.deper la Germania, sono possibili, ma l'hreflang deve collegarli tra loro.
Le traduzioni vanno poi mantenute nel tempo. Chi aggiorna la pagina italiana deve sapere chi aggiorna le altre tre, altrimenti le versioni divergono. Ruoli e approvazioni sono trattati nella guida su chi modifica il sito dopo il lancio.
Prossimi passi per impostare il sito multilingua della Sua azienda
Le decisioni sul sito multilingua si prendono in quest'ordine, prima del design e delle traduzioni:
- Scelga le lingue in base ai mercati in cui l'azienda vende davvero.
- Decida la struttura degli URL: sottocartelle, sottodomini o domini nazionali, mai parametri.
- Prepari l'elenco delle pagine da tradurre, con un URL per ogni versione.
- Faccia tradurre e localizzare il contenuto principale, non solo menu e piè di pagina.
- Imposti per ogni pagina il canonical verso sé stessa e gli hreflang reciproci, con
x-default. - Verifichi che nessun reindirizzamento automatico porti visitatori o Googlebot su una sola lingua.
Se le nuove lingue si aggiungono a un sito già indicizzato, il lavoro tocca URL esistenti. Va pianificato come una migrazione, con la checklist per un nuovo sito senza perdere traffico da Google.
Per affidare il progetto serve un documento con mercati, lingue e pagine. La guida su come scrivere il brief per il rifacimento del sito mostra come redigerlo, con un esempio.



