Мультиязычный сайт: hreflang, URL и типичные ошибки
Мультиязычный сайт без явной схемы URL и корректного hreflang часто теряет трафик: поисковик путает версии, показывает чужой язык или считает страницы дублями. Ниже - как выбрать структуру адресов, как настроить связь локалей и какие ошибки встречаются чаще всего в 2026 году.
- hreflang - сигнал поисковику, какая языковая/региональная версия для какой аудитории
- URL - префикс, поддомен или отдельный домен; схема должна быть единой и предсказуемой
- Canonical - не должен ломать связку локалей
- Контент - перевод или локализация, а не копипаст с автопереводом без правки
- Правило - каждая локаль указывает на все остальные и на себя
Зачем hreflang и схема URL
Пользователь из Германии должен видеть немецкую версию, из Бразилии - португальскую, из США - английскую. Без явных сигналов поисковик угадывает по IP, языку браузера и ссылкам - и часто ошибается.
hreflang не ранжирует страницу сам по себе. Он помогает выбрать правильную версию среди равноправных. Схема URL решает, как люди и боты будут находить эти версии: через /de/, de.example.com или example.de.
Схемы URL для мультиязычности
| Схема | Пример | Плюсы | Минусы |
|---|---|---|---|
| Префикс пути | example.com/de/blog/ |
Один домен, проще аналитика и сертификаты | Нужна дисциплина в роутинге и sitemap |
| Поддомен | de.example.com/blog/ |
Гибкость по хостингу и командам | Сложнее общий «вес» домена, больше инфраструктуры |
| Отдельный домен | example.de/blog/ |
Сильный локальный сигнал | Дороже поддержка, отдельные SEO-кампании |
Для большинства корпоративных сайтов и блогов в 2026 удобнее префикс пути: один стек, одна аналитика, проще деплой. Поддомены и ccTLD оправданы при сильном локальном бренде, разных юрлицах или отдельной команде на рынок.
Важно зафиксировать язык по умолчанию: либо корень без префикса (/), либо явный /en/. Смешивать «иногда с префиксом, иногда без» - путь к дублям.
Как правильно настроить hreflang
- На каждой странице перечислите все доступные эквиваленты:
hreflang="ru",hreflang="en",hreflang="de"и т.д. - Добавьте self-reference: страница указывает и на себя.
- Связка должна быть взаимной: если A ссылается на B, B ссылается на A.
- Используйте коды BCP 47: язык (
en) или язык-регион (en-GB,pt-BR). - При необходимости укажите
x-default- страница по умолчанию для несовпавшей локали (часто селектор языка или EN). - Дублируйте те же аннотации в HTML
<link rel="alternate" hreflang="...">и/или в XML sitemap.
Пример фрагмента в <head>:
<link rel="alternate" hreflang="ru" href="https://example.com/blog/post/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/blog/post/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/blog/post/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/en/blog/post/" />
Типичные ошибки
1. Нет взаимности
На русской странице есть ссылка на EN, а на английской - нет обратной на RU. Поисковик может проигнорировать всю группу.
2. Canonical указывает на «главный» язык
Canonical русской страницы ведёт на английскую «как на оригинал». Тогда локали выглядят не как альтернативы, а как дубли. Canonical должен указывать на себя (или на канонический URL той же локали), а не на чужой язык.
3. Авторедирект по IP / Accept-Language
Пользователь и бот не могут стабильно открыть нужную версию. Лучше: отдельный URL на каждую локаль + переключатель языка, без принудительного редиректа с корня на «угаданный» язык для всех.
4. Неполный набор локалей
В меню 5 языков, в hreflang - 2. Или для одной статьи перевод есть, для соседней - нет, но в карте всё равно торчат битые альтернативы. Лучше честный набор: только реально существующие URL.
5. Путать язык и регион
de - немецкий язык. de-AT - немецкий для Австрии. Если контент один и тот же для DE/AT/CH, не плодите три почти идентичные страницы без реальной локализации цен, доставки и юртекстов.
6. Разный смысл под одним «переводом»
URL «переведён», а оффер, валюта и CTA остались от другого рынка. Для SEO это уже не эквивалент, а другая страница - hreflang здесь может навредить.
7. Забыли sitemap и внутренние ссылки
Теги в <head> есть, но в XML sitemap нет xhtml:link, а в футере язык ведёт всегда на главную, а не на эквивалент текущей статьи. Внутренняя перелинковка локалей усиливает сигнал.
Чек-лист перед запуском
- Единая схема URL на всём сайте.
- У каждой индексируемой страницы есть полный взаимный набор hreflang + self.
- Canonical не склеивает разные языки.
- Нет агрессивного geo-redirect, который режет индексацию.
- Sitemap содержит все локали и аннотации.
- Переключатель языка ведёт на эквивалент, а не только на homepage.
- 404 и «страница ещё не переведена» обработаны явно (мягкий fallback или честный 404), без тихого показа чужого языка под тем же URL.
Итог
Мультиязычный сайт работает, когда у каждой аудитории свой стабильный URL, а hreflang честно связывает эквиваленты. Выберите одну схему адресов, держите взаимность аннотаций, не ломайте локали через canonical и geo-redirect - и поисковик перестанет угадывать язык за вас.
Если нужно спроектировать схему URL, hreflang и sitemap для вашего стека или проверить текущий сайт на типичные ошибки - свяжитесь со мной.
Часто задаваемые вопросы
Нужен ли hreflang, если языков всего два?
Да, если обе версии должны находиться в поиске для своей аудитории. Даже пара RU/EN без взаимных аннотаций часто даёт неправильный язык в выдаче или ощущение дублей.
Что лучше: /en/ в пути или поддомен?
Для большинства проектов - префикс пути. Поддомен имеет смысл при отдельном хостинге, команде или сильной изоляции рынка. Отдельный ccTLD - когда бренд и юрлицо реально локальные.
Обязателен ли x-default?
Не обязателен, но полезен. Обычно указывает на селектор языка или на основную международную версию (часто EN). Без него поисковик сам выбирает fallback.
Можно ли ставить hreflang только в sitemap?
Да, Google понимает аннотации в sitemap. На практике надёжнее дублировать и в HTML, и в sitemap - проще отлаживать и меньше риск рассинхрона при частичных деплоях.
Почему после настройки hreflang язык в выдаче всё ещё неверный?
Часто виноваты не теги, а сигналы вокруг: canonical на другой язык, редиректы, тонкий/машинный «перевод», битые URL в связке или отсутствие внутренних ссылок на эквивалент. Проверьте взаимность и то, что обе страницы реально индексируются.