Мультиязычный сайт: как не сломать SEO на hreflang
Мультиязычный сайт — это не перевод меню и кнопка «EN» в шапке. Hreflang — атрибут в коде страницы, который сообщает поиску: вот эта страница на русском, а вот её пара на английском. Canonical — указание основного адреса страницы, чтобы поиск не считал похожие адреса разными документами. Без этих двух вещей /ru/uslugi/ и /en/services/ выглядят для поиска как два конкурента, а не как одна услуга на двух языках.
Ниже — порядок настройки и проверки до того, как поиск начнёт индексировать вторую версию: как развести языки по адресам, как разметить пары страниц и что смотреть перед запуском рекламы. Разработка под ключ: сайт в СПб; контент под нейровыдачу: SEO-контент для LLM.
Почему перевод без разметки роняет обе версии
Обычно история одинаковая. Компания заказывает перевод текстов, разработчик добавляет переключатель языков, и вторая версия уезжает в индекс как есть. Через месяц английская страница показывается в русской выдаче, русская — в английской, а часть адресов поиск выкидывает как дубли. Переводчик здесь не виноват: поиску просто не сказали, какие адреса образуют пару.
Карта языков и URL
- Один URL — один язык; переключатель ведёт на эквивалентную страницу, не на главную другого языка.
- Коды hreflang по ISO: ru, en, en-US — без опечаток.
- Страницы без перевода — либо noindex, либо осознанный fallback, не пустая заглушка в индексе.
- Sitemap отдельно или с hreflang внутри — но карта симметрична.
Три способа развести языки по адресам
| Структура адресов | Когда подходит | Что усложняет |
|---|---|---|
| Папки site.ru/en/ | Одна система управления сайтом и одна команда на все языки | Все языки живут на одном хостинге и падают вместе |
| Поддомены en.site.ru | Разные команды или разные серверы по регионам | Каждый поддомен подтверждается в Вебмастере отдельно |
| Отдельные домены site.de | Своё юридическое лицо или сильный местный бренд | Авторитет каждого домена придётся наращивать с нуля |
Правила разметки hreflang
- На каждой языковой версии — полный набор alternate на все языки + self.
- Добавить x-default на версию по умолчанию.
- Разметка в head или в sitemap — один канонический способ на проект.
- Проверить в Вебмастере / Search Console отчёт по hreflang.
- После редизайна — прогнать карту заново: новые slug часто рвут пары.
Где ломается canonical
Canonical на главную с других языковых страниц — классическая ошибка после автоперевода. Параметры ?lang= без каноникала на чистый URL дают дубли. Hreflang на 404 или редирект — поиск игнорирует всю группу.
Проверка перед запуском
- 50 пар URL — выборочно: hreflang взаимный.
- Canonical каждой страницы — на себя.
- Языковой переключатель не создаёт циклических редиректов.
- Robots не закрывает одну версию целиком без причины.
Четыре узла, где ломается мультиязычность
ФактМультиязычность без hreflang — технический долг: чинить дороже после просадки, чем заложить карту при разработке.
Частые вопросы
Зачем нужен hreflang?
Атрибут hreflang говорит поиску, какая URL — версия для какого языка и региона. Без него русская и английская страница могут конкурировать друг с другом в выдаче.
Что такое x-default?
Версия по умолчанию для пользователей, чей язык не перечислен в hreflang. Обычно — главная или языковой селектор, не случайная копия.
Каноникал и hreflang — как связаны?
Каждая языковая версия указывает canonical на себя, а hreflang — на все альтернативы включая себя. Каноникал на другой язык ломает логику.