Содержание
Мультиязычный сайт должен давать каждой языковой версии собственный адрес, связывать версии разметкой hreflang и не перенаправлять пользователей принудительно по языку браузера. Для большинства проектов удобнее всего структура с языковыми папками — /en/, /de/ — на одном домене: она проще в поддержке и наследует авторитет основного сайта.
Разберём, как выбрать структуру адресов, как правильно разметить hreflang, как определять язык и как организовать перевод.
Какую структуру адресов выбрать?
Структуру выбирают из трёх вариантов: папки на одном домене, поддомены или отдельные домены для стран. Папки проще всего в поддержке и SEO, отдельные домены оправданы, когда бизнес в странах действительно разный — свои цены, юрлица и ассортимент.
| Структура | Пример | Плюсы | Минусы |
|---|---|---|---|
| Папки | site.ru/en/ | Один домен, общий авторитет, проще поддержка | Сложнее разместить версии в разных странах |
| Поддомены | en.site.ru | Можно разнести по серверам | Поисковики частично воспринимают как отдельные сайты |
| Отдельные домены | site.de, site.fr | Сильный сигнал для страны | Дорого: каждый домен продвигается отдельно |
| Параметр в адресе | site.ru/?lang=en | — | Плохо индексируется, не рекомендуется |
Основной язык обычно живёт без префикса, а остальные — в своих папках. Главное — у каждой версии страницы должен быть свой постоянный адрес.
Как правильно разметить hreflang?
Hreflang — это ссылки в коде страницы или в карте сайта, которые говорят поисковику: «у этой страницы есть версии на таких-то языках, вот их адреса». Разметка должна быть взаимной — каждая версия ссылается на все остальные и на себя — и указывать только существующие переводы.
<link rel="alternate" hreflang="ru" href="https://example.ru/blog/multiyazychnyj-sajt" />
<link rel="alternate" hreflang="en" href="https://example.ru/en/blog/multilingual-website" />
<link rel="alternate" hreflang="x-default" href="https://example.ru/blog/multiyazychnyj-sajt" />
<link rel="canonical" href="https://example.ru/en/blog/multilingual-website" />
Правила разметки:
- Каждая языковая версия указывает все версии, включая саму себя.
x-default— версия для тех, чей язык не поддерживается.- Canonical каждой версии указывает на неё саму, а не на основной язык.
- В hreflang не попадают страницы без перевода.
Про остальные технические требования — в статье техническое SEO перед запуском сайта.
Фото: Unsplash
Как определять язык пользователя?
Язык лучше не навязывать: поисковик сам показывает человеку версию на языке его запроса, а сайт может мягко предложить переключиться, если язык браузера отличается. Принудительный редирект по языку или IP мешает и пользователям, и поисковым роботам, которые после такого редиректа могут не увидеть часть версий.
Что делать:
- открывать ту версию, по адресу которой пришёл пользователь;
- показывать ненавязчивую плашку «Есть версия на вашем языке» вместо редиректа;
- запоминать выбор пользователя и не переспрашивать;
- держать переключатель языка на видном месте и вести на ту же страницу, а не на главную.
Как организовать перевод контента?
Перевод организуют так, чтобы у каждой сущности — статьи, товара, страницы — были поля на всех языках, включая адрес, заголовок и мета-теги. Переводить нужно не только текст, но и слаги, описания картинок, письма и сообщения об ошибках.
- слаги на языке страницы:
/en/blog/multilingual-website, а не транслитерация; - мета-теги и описания для поисковиков на каждом языке;
- форматы — даты, валюты, единицы измерения, формат телефона;
- интерфейс — кнопки, ошибки, письма, уведомления;
- процесс — кто переводит, кто вычитывает и как узнать, что перевод устарел.
Если сайт работает на JavaScript-фреймворке, важно, чтобы все языковые версии отдавались с сервера уже готовыми — подробнее в статьях SEO для сайтов на JavaScript и Nuxt или Next.js.
Какие ошибки встречаются чаще всего?
Чаще всего ошибаются с hreflang и с неполными переводами: разметка ссылается на несуществующие страницы, версии не ссылаются друг на друга, а наполовину переведённые страницы смешивают языки и выглядят как дубли.
- принудительный редирект по языку браузера или IP;
- одна и та же страница под одним адресом меняет язык в зависимости от cookie;
- canonical всех версий указывает на основной язык;
- переведён только интерфейс, а контент остался на русском;
- переключатель языка ведёт на главную вместо текущей страницы.
Коротко
- Каждой языковой версии — свой постоянный адрес; удобнее всего папки на одном домене.
- Hreflang взаимный, включает x-default и только существующие переводы.
- Не перенаправляйте по языку принудительно — предлагайте переключиться.
- Переводите слаги, мета-теги, форматы и интерфейс, а не только текст.
- Страницы без перевода не показывайте в языковой версии.
Частые вопросы
Можно ли использовать автоматический перевод?
Как черновик — да, современные модели переводят хорошо. Но ключевые страницы, юридические тексты и маркетинговые формулировки стоит вычитывать носителем языка: ошибки в них стоят доверия и конверсии.
Что делать со страницами, у которых нет перевода?
Не показывать их в языковой версии и не указывать в hreflang. Пустая страница или страница на другом языке под иностранным адресом хуже, чем её отсутствие.
Нужны ли отдельные карты сайта для каждого языка?
Не обязательно. Можно указать языковые версии прямо в общей карте сайта через альтернативные ссылки или сделать отдельный файл на язык — важно, чтобы все версии были перечислены и ссылались друг на друга.



