Siti multilingue e hreflang
Modulo 3: La base tecnica di una pagina · Tempo di lettura: 12 minuti
Obiettivo della lezione: Dopo questa lezione saprà configurare correttamente hreflang per un sito in più lingue o per più paesi e verificare che i riferimenti siano reciproci.
Concetti chiave: versione linguistica, hreflang, codice lingua (ISO 639-1), codice paese (ISO 3166-1 alpha-2), codice di scrittura (ISO 15924), x-default, reciprocità (riferimento di ritorno), riferimento a sé stessa, HTML, intestazione HTTP o sitemap, indirizzi separati per lingua, nessun reindirizzamento automatico in base alla lingua, attributo lang
Il problema: quale versione mostrare?
Bloemenatelier Lotte, una fioreria di Amersfoort, cresce. Arriva una versione inglese del sito per turisti ed expat e una tedesca per i clienti appena oltre il confine. La stessa pagina con i bouquet da sposa ora esiste tre volte:
https://www.example.com/bruidsboeketten (olandese)
https://www.example.com/en/bridal-bouquets (inglese)
https://www.example.com/de/brautstraeusse (tedesco)Per ogni ricerca un motore di ricerca deve scegliere quale delle tre mostrare. Chi si trova a Colonia e cerca in tedesco dovrebbe ricevere la versione tedesca, non quella olandese. Con hreflang Lei indica al motore di ricerca quali pagine sono versioni linguistiche l'una dell'altra e a quale lingua o a quale paese è destinata ciascuna versione.
hreflang non è un trucco per il posizionamento. Serve solo a far comparire la versione giusta nel posto giusto. E non è un riconoscimento della lingua: Google scrive che non usa hreflang né l'attributo lang dell'HTML per stabilire la lingua di una pagina; lo fa da sé, a partire dal testo. Imposti comunque correttamente l'attributo lang (<html lang="nl">), per i browser, i programmi di traduzione e i lettori di schermo.
Prima la base: indirizzi separati
Google consiglia un indirizzo proprio per ogni versione linguistica e sconsiglia di cambiare lingua con cookie o impostazioni del browser sullo stesso indirizzo. Il motivo è pratico: Googlebot di solito esegue la scansione dagli Stati Uniti. Se il contenuto di un unico indirizzo cambia a seconda di chi lo guarda, Googlebot potrebbe vedere una sola versione.
Per lo stesso motivo: non reindirizzi automaticamente i visitatori a un'altra versione linguistica in base alla loro lingua o posizione. Google lo sconsiglia espressamente. Un olandese in vacanza in Germania vuole il sito olandese; preferisca un selettore di lingua ben visibile sulla pagina e lasci che tutti possano raggiungere tutte le versioni.
Se usa i paesi invece delle lingue, con domini separati come example.de ed example.nl, vale lo stesso. Le versioni non devono trovarsi sullo stesso dominio.
Come si presenta hreflang
Nella <head> di ogni versione linguistica si trova lo stesso gruppo di righe:
<link rel="alternate" hreflang="nl" href="https://www.example.com/bruidsboeketten">
<link rel="alternate" hreflang="en" href="https://www.example.com/en/bridal-bouquets">
<link rel="alternate" hreflang="de" href="https://www.example.com/de/brautstraeusse">
<link rel="alternate" hreflang="x-default" href="https://www.example.com/bruidsboeketten">Quattro regole da conoscere:
- Ogni versione cita sé stessa e tutte le altre. La pagina inglese ha quindi esattamente le stesse quattro righe, compresa la riga per
enche punta a sé stessa. - I riferimenti devono essere reciproci. Se la pagina olandese punta a quella tedesca, la tedesca deve puntare di ritorno a quella olandese. Google afferma: se due pagine non puntano entrambe l'una all'altra, i riferimenti vengono ignorati. È l'errore più frequente, ed è per questo che l'esercizio di questa lezione lo controlla.
- Indirizzi completi. Con
https://incluso. Un percorso come/en/bridal-bouquetso//www.example.com/en/...non vale. - In una
<head>pulita. Le righe si trovano nella<head>dell'HTML. Se qualcosa interrompe la head prima, per esempio un<img>o un<div>isolato che lì non dovrebbe stare, un motore di ricerca può considerare la head chiusa e perdere il resto.
I codici
Il valore di hreflang è un codice lingua, eventualmente seguito da un codice paese:
| Codice | Significato |
|---|---|
nl | Olandese, per chiunque parli olandese |
nl-BE | Olandese per il Belgio |
de-AT | Tedesco per l'Austria |
en-GB | Inglese per il Regno Unito |
zh-Hant | Cinese in scrittura tradizionale (codice di scrittura ISO 15924) |
x-default | La pagina di riserva: per tutti coloro a cui non si adatta nessun'altra versione |
Il codice lingua proviene da ISO 639-1 (due lettere), il codice paese da ISO 3166-1 alpha-2. Maiuscole e minuscole non contano, ma per consuetudine la lingua si scrive in minuscolo e il paese in maiuscolo. Tre insidie:
- Il solo paese non è ammesso.
hreflang="be"significa bielorusso (il codice linguabe), non Belgio. Un paese segue sempre una lingua:nl-BEofr-BE. en-UKnon esiste. Il codice paese del Regno Unito èGB. Google scrive che codici comeEU,UNoUKnon hanno alcun effetto.- Usi un paese solo se le versioni differiscono davvero (prezzi, valuta, consegna, ortografia diversi). Se ha un'unica versione tedesca per tutti, usi semplicemente
de.
x-default
x-default è facoltativo. Con esso indica la pagina per i visitatori a cui non si adatta nessuna delle Sue versioni, per esempio chi parla francese. Spesso è la Sua lingua principale o una pagina in cui il visitatore sceglie da sé la lingua.
Tre modi, ne scelga uno
Google prevede tre modi equivalenti per indicare hreflang:
- Nell'HTML, con righe
<link>nella head, come sopra. È il modo più usato. Come intestazione HTTP
Link, utile per file senza HTML, come un pdf:Link: <https://www.example.com/en/price-list.pdf>; rel="alternate"; hreflang="en"- Nella sitemap, con righe
xhtml:linkper ogni<url>. Utile per i siti grandi, perché così le pagine non diventano più pesanti.
Non è necessario combinarli. Se ne usa più di uno, devono dire esattamente la stessa cosa.
hreflang e canonical insieme
hreflang e canonical (lezione 3.5) lavorano insieme, ma non li confonda:
- Ogni versione linguistica ha un canonical verso sé stessa. La pagina inglese non è una copia di quella olandese, quindi non punta alla pagina olandese come indirizzo canonico. Se lo fa, sta dicendo "la pagina inglese in realtà non esiste", e la pagina esce dall'indice.
- Gli indirizzi in hreflang sono gli indirizzi canonici delle versioni. Se hreflang punta a un indirizzo che reindirizza, restituisce un 404, ha noindex o ha un canonical verso un'altra pagina, il gruppo si rompe.
Quando stabilisce l'indirizzo canonico, Google preferisce gli indirizzi che fanno parte di un gruppo hreflang. Un gruppo ben fatto aiuta quindi anche la Sua canonicalizzazione.
In pratica: lasci fare al sistema
Gestire hreflang a mano è soggetto a errori: con dieci lingue e cento pagine sono mille righe che devono essere tutte corrette. Lasci che se ne occupi il Suo sistema per siti web. In un sito multilingue l'AI Builder di WebOké inserisce in ogni pagina riferimenti hreflang alla stessa pagina nelle altre lingue, più un x-default verso la lingua principale, ed esclude volutamente dal gruppo una pagina senza controparte tradotta. In WordPress i plugin multilingue fanno lo stesso. In altri strumenti per creare siti lo trova sotto nomi come "lingue" o "internazionale". Verifichi poi personalmente che i riferimenti di andata e ritorno siano corretti; è ciò che fa l'esercizio.
Riepilogo
- hreflang indica quali pagine sono versioni linguistiche o nazionali l'una dell'altra; non riconosce la lingua e non è un trucco per il posizionamento.
- Ogni versione ha un proprio indirizzo, nessun reindirizzamento automatico in base alla lingua o alla posizione.
- Ogni versione cita sé stessa e tutte le altre, con indirizzi completi, e ogni riferimento deve avere un ritorno; altrimenti Google lo ignora.
- Codici: lingua da ISO 639-1, eventualmente con paese da ISO 3166-1 alpha-2 (
en-GB, nonen-UK);x-defaultper tutto il resto. - Ogni versione ha un canonical verso sé stessa; hreflang punta solo a indirizzi canonici che restituiscono 200.
Quiz
Esercizio
Esercizio A3.6: I Suoi riferimenti hreflang sono reciproci? Inserisca l'indirizzo di una pagina che esiste in più lingue. Il programma raccoglie i riferimenti hreflang dalla head e dall'intestazione Link, controlla i codici e il riferimento a sé stessa, recupera ogni altra versione linguistica e verifica che punti di ritorno, restituisca 200, non abbia noindex e abbia un canonical verso sé stessa. Non ha un sito multilingue? Usi https://european-union.europa.eu/index_nl.
Per approfondire
- Google Search Central, Indicare a Google le versioni localizzate della pagina: https://developers.google.com/search/docs/specialty/international/localized-versions
- Google Search Central, Gestire siti multiregionali e multilingue: https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites
- Google Search Central, Consolidare gli URL duplicati: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Codici lingua ISO 639 (Library of Congress): https://www.loc.gov/standards/iso639-2/php/code_list.php
