Canonical autoreferenziale per le versioni linguistiche
Quando usi hreflang per indicare le alternative linguistiche e regionali, è fondamentale che ogni versione della pagina abbia un canonical che punta a se stessa. Cioè: su https://example.com/en/page devi avere <link rel="canonical" href="https://example.com/en/page" />, e sulla versione russa vale lo stesso principio. Questo dice a Google che ogni versione linguistica è la versione canonical (principale) per la sua lingua.
Esempio di implementazione corretta
<!-- On https://example.com/en/page -->
<link rel="canonical" href="https://example.com/en/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />
<!-- On https://example.com/ru/page -->
<link rel="canonical" href="https://example.com/ru/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />Nota: il canonical punta alla stessa pagina in cui si trova. hreflang collega le due versioni tra loro.
Cosa non fare
<!-- ERROR: Russian version points to English -->
<!-- On https://example.com/ru/page -->
<link rel="canonical" href="https://example.com/en/page" />
<link rel="alternate" hreflang="en" href="https://example.com/en/page" />
<link rel="alternate" hreflang="ru" href="https://example.com/ru/page" />Con questa configurazione Google tratterà la pagina russa come un semplice duplicato di quella inglese. Risultato: la versione russa verrà deindicizzata e perderai tutto il traffico dal segmento di lingua russa.
Eccezioni
Sono poche le situazioni in cui puntare il canonical a un'altra versione linguistica è accettabile:
- Contenuto del tutto identico (non tradotto): per esempio il sito ha due versioni linguistiche ma alcune pagine non hanno traduzione e mostrano lo stesso articolo in inglese. Come misura temporanea puoi puntare il canonical alla lingua principale.
- Versione temporanea in attesa della traduzione: hai creato una pagina russa ma non è ancora compilata. Finché la traduzione è in corso puoi puntare il canonical all'inglese, ma appena la traduzione è pronta il canonical deve tornare autoreferenziale.
Come verificare
Puoi verificare il canonical con curl o con gli strumenti del browser. Per una pagina russa:
curl -I https://example.com/ru/page | grep -i canonicalOutput atteso: Link: <https://example.com/ru/page>; rel="canonical". Se vedi un URL diverso (soprattutto in un'altra lingua), è un errore da correggere.