
Продвижение мультиязычных сайтов ломается почти всегда в одном месте: версии сделаны, переводы оплачены, а поисковая система показывает русскому пользователю английскую страницу и наоборот. Причина обычно не в качестве перевода и не в структуре меню, а в том, что языковым версиям не объяснили, что они — версии одной и той же страницы, а не разные документы, конкурирующие между собой. Объясняется это атрибутом hreflang, и именно вокруг него сосредоточена основная часть ошибок.
В SEO я с 2005 года и разбирал такие проекты не раз. Картина повторяется: чем крупнее сайт, тем изящнее ошибка. На маленьком проекте атрибут просто забыли поставить, на большом он расставлен автоматически шаблоном — и потому неверно на всех тридцати тысячах страниц сразу. Ниже разбор механики: что этот атрибут делает, чего он не делает, как выбрать структуру сайта и какие ошибки встречаются чаще прочих.
Когда языковые версии действительно нужны
Перед разговором о технике стоит проверить саму задачу. Языковая версия — это не переключатель в шапке, а отдельный сайт со своим содержанием, своими посадочными страницами, своими условиями доставки и своей поддержкой. Стоимость владения растёт кратно, а отдача появляется только там, где есть реальный спрос.
- Версия оправдана, когда в целевой стране есть подтверждённый спрос, компания способна обслужить заказ оттуда и есть кому отвечать на письма на этом языке.
- Версия оправдана, когда внутри одной страны говорят на нескольких языках и обе аудитории — ваши покупатели.
- Версия не нужна, если это машинный перевод основного сайта, сделанный «на всякий случай». Такие страницы редко получают трафик и создают проблемы с оценкой качества всего домена.
- Версия не нужна, если товар физически не может быть доставлен в регион, для которого она создана.
- Мультиязычный сайт на WordPress: hreflang, поддомены и типичные ошибки
Отдельно про региональные версии на одном языке. Английская страница для Великобритании и для США отличается валютой, ценами, единицами измерения, орфографией и юридическими оговорками. Если отличий нет вообще, две версии не нужны — они станут двумя почти идентичными документами, и вся работа сведётся к тому, чтобы поисковик не считал их дублями.
Структура сайта: домены, поддомены или папки
Решение принимается один раз и переигрывается тяжело, поэтому его стоит принимать осознанно. Вариантов три, и универсально правильного среди них нет.
| Схема | Пример | Плюсы | Минусы |
|---|---|---|---|
| Отдельные национальные домены | site.de, site.fr | Максимальное доверие в стране, явный сигнал геопривязки, независимость версий | Каждый домен продвигается с нуля, отдельный хостинг и юридические требования, дорого |
| Поддомены | de.site.com | Легко разделить хостинг и команды, гибкая привязка к региону | Авторитет домена делится хуже, чем в папках, часть работ дублируется |
| Папки на одном домене | site.com/de/ | Весь авторитет копится на одном домене, дешевле в поддержке, проще аналитика | Нельзя разнести по серверам в разных странах, единая судьба при санкциях |
| Параметры в адресе | site.com/?lang=de | Быстро внедряется | Плохо индексируется, порождает дубли, разделять версии таким образом не стоит |
Для большинства проектов рабочий выбор — папки на одном домене. Отдельные национальные домены имеет смысл заводить, когда в стране есть юридическое лицо, склад и поддержка: тогда домен в местной зоне действительно повышает доверие покупателей. Схему с параметром в адресе в качестве основной использовать не стоит ни при каких условиях.
Отдельно про смену схемы на действующем сайте. Переход с поддоменов на папки или обратно — это переезд, со всеми его последствиями: массовыми перенаправлениями, временной просадкой и месяцами восстановления. Браться за него стоит, только если текущая схема мешает бизнесу, а не потому, что другая теоретически лучше. Если вопрос стоит на этапе проектирования — решайте по тому, будут ли версии жить самостоятельной жизнью с отдельными командами и серверами. Будут — поддомены или домены. Не будут — папки.
Что делает атрибут hreflang и чего он не делает
Атрибут сообщает поисковой системе: у этой страницы есть аналоги на других языках или для других регионов, вот их адреса. Дальше система выбирает, какую из версий показать конкретному человеку, ориентируясь на язык интерфейса, регион и историю запроса.
Что он даёт:
Тему разбирал отдельно: «Региональное продвижение сайтов».
- Нужная версия показывается нужной аудитории, а не случайная.
- Похожие страницы на одном языке для разных стран не считаются дублями друг друга.
- Накопленные сигналы не размазываются между версиями, а учитываются как относящиеся к одному документу в разных вариантах.
- Мультиязычный сайт на WordPress: hreflang, поддомены и типичные ошибки
Чего он не делает — и здесь основной источник разочарований. Атрибут не поднимает позиции: страница, не попадающая в топ на своём языке, от него туда не попадёт. Он не заменяет перевод: если содержимое одинаковое, разметка ничего не исправит. Он не переключает пользователя принудительно и не является командой — это рекомендация, которую система может проигнорировать, если её сигналы противоречивы.
Здесь же полезно развести два похожих понятия. Атрибут lang в теге html описывает язык конкретного документа для браузеров, скринридеров и переводчиков. Атрибут hreflang в ссылке описывает связь между документами. Первый ничего не сообщает о существовании других версий, второй — не описывает язык текущей страницы. Нужны оба, и они не взаимозаменяемы.
Помогу с продвижением: продвижение сайта в поисковых системах — вывожу сайты в топ Яндекса белыми методами.
Ещё одно частое заблуждение — считать, что разметка избавляет от необходимости работать с каждой версией отдельно. Не избавляет. Семантика на разных языках не переводится дословно: то, что в русском звучит как «купить», в другом языке может выражаться совсем иной формулировкой, и запросы там строятся по-своему. Собирать ядро приходится заново, средствами, которые видят спрос в нужном регионе. Перевод русского списка ключевых фраз на английский даёт набор словосочетаний, которые никто не ищет.
Про выделенный IP и его влияние на продвижение:
Три способа отдать атрибут
Реализаций существует три, и выбор зависит от размера сайта и от того, что вообще нужно связать.
| Способ | Где размещается | Когда выбирать | Риск |
|---|---|---|---|
| Теги в head страницы | Внутри секции head каждой версии | Небольшое число языков и страниц | Раздувает код при десятке версий, ошибки повторяются на всех страницах шаблона |
| Карта сайта | Отдельный файл sitemap с блоками альтернатив | Крупные каталоги, много языков, частые изменения | Файл легко рассинхронизируется с реальным составом страниц |
| Заголовок ответа сервера | HTTP-заголовок Link | Файлы без HTML: документы, изображения, выгрузки | Не виден при просмотре кода, о нём забывают при переезде |
Для интернет-магазинов почти всегда удобнее карта сайта: связи генерируются из базы, не засоряют код и меняются одним пересбором файла. Для сайта услуг на двадцать страниц проще теги в head. Смешивать способы можно, но тогда обязательно нужно следить, чтобы они не противоречили друг другу — при расхождении система обычно предпочтёт разметку в коде страницы.
Правила, которые нарушают чаще всего
Атрибут капризен: он работает целиком или не работает вовсе. Пять правил, невыполнение любого из которых обнуляет всю разметку.
Смежный материал по теме — «Продвижение сайтов в США».
- Взаимность. Если русская страница ссылается на английскую, английская обязана ссылаться на русскую. Односторонняя связь игнорируется целиком. Это самая частая поломка: версии добавляют по одной, и новая ссылается на старые, а старые о ней не знают.
- Самоссылка. Каждая версия включает в набор саму себя. Комплект из трёх языков означает три записи на каждой из трёх страниц, а не две.
- Абсолютные адреса. Указывается полный адрес с протоколом и доменом. Относительные пути не работают.
- Согласие с каноническим адресом. Каждая версия каноникализируется сама на себя. Канонический адрес, ведущий с немецкой страницы на английскую, отменяет весь набор: система считает немецкую версию неосновной и выбрасывает её из рассмотрения.
- Указываются только индексируемые страницы. Ссылаться на закрытые от индексации адреса, на страницы с перенаправлением или на ошибку 404 нельзя — связь рвётся.
Отдельное правило про значение x-default. Оно обозначает версию по умолчанию — ту, что показывают человеку, чей язык и регион не совпали ни с одним из перечисленных. Обычно это международная английская версия или страница выбора языка. Указывать её полезно, но она не заменяет обычные записи: набор всё равно должен включать все версии плюс саму себя.
Коды языков и регионов: где ошибаются
Значение атрибута состоит либо из кода языка, либо из кода языка и кода региона через дефис. Первый — двухбуквенный языковой код, второй — двухбуквенный код страны. Порядок обратный интуиции: сначала язык, потом страна, и только в таком порядке.
| Записано | Верно? | Пояснение |
|---|---|---|
| ru | Да | Русский язык без привязки к стране |
| ru-KZ | Да | Русский для Казахстана |
| en-GB | Да | Английский для Великобритании |
| en-UK | Нет | Такого кода страны не существует, нужен GB |
| KZ | Нет | Указан только регион, язык обязателен |
| es-LA | Нет | Латинская Америка не страна; для континента кода нет |
| en-EU | Нет | Евросоюз не страна, такой код не поддерживается |
| x-default | Да | Специальное значение для версии по умолчанию |
Регистр значения не имеет, но общепринято писать язык строчными, а регион прописными — так ошибки заметнее при беглом чтении кода. И главное: указывать регион нужно только тогда, когда версии действительно различаются под этот регион. Если сайт один и он на английском для всего мира, достаточно кода языка.
Что учитывает Яндекс, а что Google
Подходы систем к многоязычности различаются, и работать приходится сразу с двумя логиками.
Если нужна помощь по теме — обучение SEO-продвижению.
Google строит выбор версии именно на связях между страницами: атрибут для него основной инструмент, а привязка к стране задаётся доменом или структурой сайта. Отдельного отчёта по международному таргетингу в интерфейсе давно нет, так что проверять корректность приходится своими силами.
Яндекс определяет регион иначе — прежде всего через настройки в Вебмастере, содержимое страниц, адреса и телефоны, а также доменную зону. Разметку языковых версий он воспринимает как дополнительную подсказку, а не как главный источник истины. Практический вывод: для русскоязычного рынка сначала настраивается регион сайта в Вебмастере, а разметка версий делается вдобавок, а не вместо.
Если нужны детали, смотрите «Создание сайтов под продвижение».
Что одинаково вредно для обеих систем — автоматическое перенаправление посетителя по определённому адресу его провайдера. Робот приходит с адресов одной страны и видит только одну версию, остальные для него недоступны. Правильное поведение — показывать ненавязчивое предложение сменить язык, оставляя человеку выбор и оставляя обе страницы доступными по своим адресам.
Как проверять разметку и что смотреть в отчётах
Проверка делится на две части: синтаксис и связность. Синтаксис ловится глазами и валидатором, связность — только обходом сайта.
- Прогнать сайт краулером с включённой проверкой языковых альтернатив. Отчёт покажет односторонние связи, отсутствующие самоссылки и ссылки на неиндексируемые адреса.
- Проверить выборочно десяток страниц вручную, открыв исходный код: часто шаблон подставляет один и тот же набор альтернатив на все страницы раздела вместо адресов конкретной страницы.
- Сверить канонические адреса: на каждой версии он должен указывать на неё саму.
- В Вебмастере посмотреть, какие страницы попали в индекс, а какие исключены как дубли или малоценные — исключение целой языковой папки почти всегда означает поломку разметки или машинный перевод.
- В аналитике сравнить язык браузера посетителей с языком страниц, которые они открывают из поиска. Массовое несовпадение — прямой признак того, что версии выбираются неверно.
- Мультиязычный сайт на WordPress: hreflang, поддомены и типичные ошибки
Полезная привычка: после каждого изменения шаблона выборочно проверять пять страниц из разных типов — карточку, категорию, статью, страницу услуги и главную. Разметка ломается обычно не на всём сайте, а на одном типе шаблона, и заметить это через месяц дороже, чем проверить сразу.
Отдельного упоминания заслуживает симптоматика. По внешним признакам можно с высокой точностью угадать, что именно сломано, ещё до обхода краулером.
| Что видно | Вероятная причина |
|---|---|
| Целая языковая папка отсутствует в индексе | Канонический адрес ведёт на основную версию либо папка закрыта в robots |
| В выдаче по иностранному запросу показывается русская страница | Разметка односторонняя или отсутствует самоссылка |
| Версии для двух стран на одном языке склеены в одну | Содержимое различается слишком мало, регион в разметке не указан |
| Индексируется только одна версия из всех | Автоматическое перенаправление по адресу посетителя |
| Разметка есть, но система её игнорирует | Относительные адреса, ссылки на перенаправления или несуществующие коды |
Частые вопросы
Нужно ли переводить адреса страниц? Желательно, если аудитория читает на этом языке и алфавит латинский. Транслитерация кириллицы в английской версии выглядит бессмысленно для иностранца. Но переводить адреса задним числом на живом сайте — это массовые перенаправления, и делать это стоит только вместе с другими крупными работами.
Что делать, если переведена только часть сайта? Связывать между собой только те страницы, у которых есть пара. Ссылаться с непереведённой страницы некуда, и это нормально. Плохой вариант — указывать в качестве альтернативы главную страницу другой версии: система увидит несоответствие содержимого и проигнорирует связь.
Можно ли обойтись машинным переводом с последующей вычиткой? Можно, если вычитка настоящая, а не косметическая. Критерий простой: носитель языка не должен спотыкаться о формулировки. Непроверенный машинный перевод даёт страницы, которые не ранжируются и тянут вниз оценку раздела.
Как быть с ценами и валютой? Показывать в валюте региона и указывать её явно рядом с числом. Пересчёт на лету по курсу без указания валюты — источник претензий и отказов, а для поисковой системы ещё и причина считать страницы одинаковыми.
Сколько ждать эффекта после исправления разметки? Первые изменения в выдаче видны через несколько недель — ровно столько нужно, чтобы робот обошёл обе версии и переоценил связь. На крупном сайте полный пересмотр занимает пару месяцев.
Коротко
- Языковая версия оправдана только при реальном спросе и возможности обслужить заказ — машинный перевод «на всякий случай» вредит домену.
- Для большинства проектов рабочая схема — папки на одном домене; отдельные национальные домены нужны там, где есть юрлицо и склад в стране.
- Атрибут hreflang связывает версии между собой, но не поднимает позиции и не заменяет перевод: это подсказка о выборе версии, а не фактор ранжирования.
- Разметка работает только целиком: обязательны взаимность связей, самоссылка на каждой версии, абсолютные адреса и канонический адрес, указывающий страницу саму на себя.
- Коды пишутся в порядке «язык-регион», регион указывается только при реальных различиях; несуществующих кодов вроде обозначения Евросоюза или Латинской Америки не бывает.
- Яндекс опирается прежде всего на региональные настройки в Вебмастере, а автоматическое перенаправление по адресу провайдера вредит обеим поисковым системам.
- Мультиязычный сайт на WordPress: hreflang, поддомены и типичные ошибки
Если у вас несколько языковых версий и есть подозрение, что поиск показывает их не тем людям, приходите на SEO-консультацию — проверим связность разметки, канонические адреса и региональные настройки и найдём, где рвётся цепочка.
Увеличьте позиции и продажи вашего сайта
Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:
Остались вопросы по продвижению?
Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.
Связаться со мной →
Комментарии
Анна Верещагина
У нас три языка в папках, разметку ставил разработчик по шаблону. Полезла проверять после статьи — оказалось, на всех карточках товара в альтернативах указана главная страница соответствующего языка, а не сама карточка. То есть полтора года это не работало вообще.
Анатолий Кузнецов автор
Очень распространённая поломка, и её причина техническая: шаблон подставляет статичный набор адресов вместо того, чтобы брать соответствие из базы. Чинится это добавлением поля связи между карточками разных языков — обычно там уже есть общий идентификатор товара, просто им не пользовались. Пока разработчик делает, проверьте заодно канонические адреса на карточках: в такой конфигурации они часто тоже указывают на основную языковую версию, и тогда весь неосновной каталог выпадает из индекса. И не ждите мгновенного эффекта после исправления: роботу нужно переобойти все карточки.
Владислав Кубасов
Спорный для меня момент про автоматическое перенаправление. Мы определяем страну и сразу открываем нужную версию, пользователям удобно. Отказываться от этого ради робота как-то странно.
Анатолий Кузнецов автор
Удобство здесь мнимое, и проверяется это легко. Ваш посетитель в поездке получит версию страны пребывания вместо своей, человек за корпоративным шлюзом — версию по расположению шлюза, а тот, кто пришёл по прямой ссылке от коллеги, попадёт не туда, куда его звали. При этом робот действительно видит один вариант из всех, и остальные версии в индекс не попадают. Компромисс рабочий: определяйте регион, но не перенаправляйте, а показывайте предложение перейти на подходящую версию с явными кнопками и запоминайте выбор. Тогда и человек получает то, что хочет, и все адреса остаются доступны.
Мария Гринберг
Вопрос по кодам. У нас сайт на русском для России, Казахстана и Беларуси, отличается только раздел с доставкой и телефонами. Стоит ли разводить на ru-RU, ru-KZ, ru-BY или это перебор при таких различиях?
Николай Опалев
Полезная таблица со структурой. Мы в своё время выбрали поддомены, потому что версии вели разные подрядчики. Оглядываясь назад — стоило делать папки, потому что немецкий поддомен три года не мог набрать никакого веса, хотя основной домен вполне сильный.
Гульнара Ахметшина
Про x-default так и не поняла до конца. Если у нас русская и английская версии, и большинство иностранцев всё равно попадёт на английскую, нужно ли отдельно писать это значение или достаточно двух обычных записей?
Анатолий Кузнецов автор
В вашем случае значение по умолчанию поставить стоит, и указать на английскую версию. Логика такая: обычные записи говорят системе, кому показывать русскую и кому английскую, а значение по умолчанию отвечает на вопрос, что делать со всеми остальными — с французом, турком, бразильцем. Без него система решает сама и иногда решает не в вашу пользу. Важно только не подменять им обычные записи: набор на каждой странице будет состоять из трёх строк — русская, английская и значение по умолчанию, ведущее на тот же английский адрес. Дублирование адреса здесь нормально и ошибкой не считается.
Денис Хрусталёв
Прогнал сайт краулером, как советуете. Нашлось около двухсот односторонних связей — все на страницах, которые добавляли в последний год. Старые версии о новых просто не знают, ровно как описано.
Татьяна Молодцова
А что делать со страницами, которых в другой версии нет и не будет? У нас в русской части есть блог со ста статьями, переводить его никто не собирается. Просто не указывать альтернативы или как-то помечать?
Роман Слуцкий
Мы выбрали отдельные национальные домены пять лет назад, о чём сильно жалею. Каждый домен приходится тащить с нуля, а бюджет один. Совет из статьи про юрлицо и склад стоило бы прочитать тогда.
Евгения Барановская
Уточните, пожалуйста, про карту сайта с альтернативами. Если у нас уже есть обычные карты по разделам, нужно делать отдельную с языковыми связями или дописывать блоки в существующие?
Анатолий Кузнецов автор
Дописывать в существующие. Отдельная карта только для языковых связей — лишняя сущность, которая быстро расходится с реальностью. Правило такое: каждый адрес присутствует в карте один раз, и внутри его записи перечисляются все альтернативные версии, включая его самого. То есть если у вас три языка, одна и та же группа из трёх записей повторится внутри трёх адресов. Файл вырастет в объёме, и здесь пригодится ограничение: не более пятидесяти тысяч адресов и десяти мегабайт до сжатия на файл, иначе придётся разбивать на части и собирать индексный файл карт.
Алексей Понизовкин
Про машинный перевод соглашусь на сто процентов. Сделали автоперевод на четыре языка, за год ни одна из этих папок не набрала и сотни визитов, зато в Вебмастере половина страниц ушла в малоценные. Убрали всё, оставили один нормально переведённый язык.
Динара Юсупова
Про Яндекс и регион в Вебмастере — а как быть, если версии в папках на одном домене? Регион ведь назначается всему сайту целиком, отдельно для папки его не выставить.
Анатолий Кузнецов автор
Вы правы, и это одно из немногих мест, где папки проигрывают поддоменам. В Вебмастере регион задаётся для сайта целиком, отдельной настройки под каталог нет. Обходится это содержимым: на страницах региональной папки указывается местный адрес и телефон в местном формате, добавляется карточка организации в справочнике с этим же адресом, а в разметке организации проставляются те же данные. Дальше система определяет привязку по совокупности признаков. Если региональность для вас важнее, чем общий вес домена, поддомен с собственной настройкой региона действительно даёт более прямой результат — но переезжать на него ради этого стоит только на этапе проектирования, а не на живом сайте.
Фёдор Мещанинов
Добавлю наблюдение из практики. После того как привели разметку в порядок, заметный эффект дала не она сама, а побочный результат: пока сверяли связи, нашли триста страниц английской версии, закрытых от индексации ещё при разработке. Их никто не открыл после запуска.