Metodi per rilevare la lingua dell'utente
- Header Accept-Language – impostazione lingua del browser (la più affidabile).
- Geolocalizzazione IP – paese dell'utente.
- Selettore lingua – scelta esplicita dell'utente (la più accurata).
- Cookie / localStorage – scelta persistente tra le sessioni.
Esempio di Accept-Language: Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7. Qui ru ha la priorità più alta dopo l'esatto ru-RU.
Esempio di implementazione (JavaScript)
javascript
const userLang = navigator.language || navigator.userLanguage;
const lang = userLang.split('-')[0];
if (!localStorage.getItem('language-selected')) {
if (lang === 'ru' && !window.location.pathname.startsWith('/ru/')) {
window.location.href = '/ru/';
}
}Implementazione SEO-safe del language targeting
- Non forzare il redirect – lascia la scelta all'utente (banner o pulsante).
- Conserva la scelta – usa cookie/localStorage per evitare redirect ripetuti.
- Mostra sempre un selettore lingua – in header o footer.
- Usa redirect 302 per il rilevamento automatico (temporaneo).
- Aggiungi Vary: Accept-Language – per un caching corretto.
- Tutte le versioni linguistiche devono essere accessibili a Googlebot – non bloccarle in robots.txt.
Per i siti multilingua usa sempre le annotazioni hreflang in aggiunta al language targeting. Aiutano Google a mostrare le versioni corrette nella ricerca.
FAQ
Devo usare redirect basati su geolocalizzazione?
Con cautela. Reindirizzare in base all'IP senza dare scelta può infastidire gli utenti che parlano un'altra lingua. Meglio mostrare un banner che suggerisce il cambio di versione.
Come gestisce Googlebot i redirect linguistici?
Googlebot invia di solito Accept-Language: en-US. Se lo reindirizzi a una versione russa, puoi confonderlo. Meglio non reindirizzare i bot: servi una versione predefinita con selettore.
Quale codice di stato devo usare per i redirect linguistici?
Usa il 302 (temporaneo). Un 301 potrebbe essere interpretato come permanente, e non vuoi legare per sempre un bot a una sola versione.