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 правильно показывать версии в поиске.

Частые вопросы

С осторожностью. Редирект по IP без возможности выбора может разозлить пользователей, которые говорят на другом языке. Лучше показывать баннер с предложением переключиться.
Googlebot обычно отправляет Accept-Language со значением en-US. Если вы редиректите бота на русскую версию, это может запутать его. Лучше не редиректить ботов, а показывать версию по умолчанию с переключателем.
302 временный редирект. 301 может быть воспринят как постоянный, а вы же не хотите навсегда привязать бота к одной версии.
Прямые контакты

Обсудим ваш проект?

Расскажите о целях и сайте — предложу формат работы и следующий шаг.

Language Targeting (Языковой таргетинг) — что это такое?