Language Targeting (Языковой таргетинг)
Определение языка пользователя и показ соответствующей версии сайта для улучшения UX и международного SEO.
Кратко
Language Targeting — это набор методов, позволяющих сайту определять предпочтительный язык посетителя (через заголовок Accept-Language, геолокацию или явный выбор) и показывать контент на этом языке. Правильная реализация улучшает пользовательский опыт и не вредит SEO.
Методы определения языка пользователя
- Accept-Language header — язык, установленный в браузере (наиболее надёжен).
- Геолокация по IP — язык страны, откуда пришёл пользователь.
- Языковой переключатель — явный выбор пользователя (самый точный).
- Cookie / localStorage — сохранение выбора между сессиями.
Пример Accept-Language: `Accept-Language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7`. Здесь `ru` имеет наивысший приоритет (0.9 после точного ru-RU).
Реализация на сайте (пример на 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/';
}
}SEO-безопасная реализация языкового таргетинга
- Не форсируйте редирект — дайте пользователю выбор (баннер или кнопка).
- Сохраняйте выбор — используйте cookie или localStorage, чтобы не перебрасывать каждый раз.
- Языковой переключатель всегда доступен — в хедере или футере.
- Используйте 302 редирект для автоопределения (временный).
- Добавьте Vary: Accept-Language — для корректного кэширования.
- Все языковые версии должны быть доступны Googlebotу — не блокируйте их в robots.txt.
Для многоязычных сайтов обязательно используйте hreflang аннотации в дополнение к языковому таргетингу. Они помогут Google правильно показывать версии в поиске.
FAQ
Частые вопросы
С осторожностью. Редирект по IP без возможности выбора может разозлить пользователей, которые говорят на другом языке. Лучше показывать баннер с предложением переключиться.
Googlebot обычно отправляет Accept-Language со значением en-US. Если вы редиректите бота на русскую версию, это может запутать его. Лучше не редиректить ботов, а показывать версию по умолчанию с переключателем.
302 временный редирект. 301 может быть воспринят как постоянный, а вы же не хотите навсегда привязать бота к одной версии.
Прямые контакты
Обсудим ваш проект?
Расскажите о целях и сайте — предложу формат работы и следующий шаг.