Логотип seo-prodvizhenie-biznesa.ru
+7 (921) 333-77-45

Мультиязычный сайт на WordPress: hreflang, поддомены и типичные ошибки

Мультиязычный сайт на WordPress: hreflang, поддомены и типичные ошибки
Анатолий Кузнецов
Анатолий Кузнецов
SEO-оптимизатор с 20-летним стажем. Автор блога seo-prodvizhenie-biznesa.ru о продвижении и доработке сайтов.

Английская версия готова, переводчику заплачено, плагин установлен — а по англоязычным запросам находится русская страница. Или наоборот: клиент из Москвы открывает ссылку из выдачи и попадает на английский текст. Причина почти всегда не в переводе, а в разметке. Мультиязычный сайт WordPress ломается на трёх вещах: неудачной структуре адресов, кривом hreflang и автоматическом редиректе по IP, который заодно перекидывает поискового робота.

Ниже — как выбрать между поддоменом, папкой и отдельным доменом, что делает hreflang и почему он молча не работает, какие классы плагинов существуют и чем отличаются по последствиям, и когда вторая языковая версия не нужна вообще.

Три способа организовать языки

Структуру адресов потом почти не меняют: смена схемы означает массовую перестановку редиректов и просадку на месяцы. Поэтому решают до запуска.

Схема Как выглядит Плюсы Минусы
Подпапка site.ru/en/ Весь ссылочный вес на одном домене, один сертификат Нельзя задать разную региональность в Вебмастере; одна база на все языки
Поддомен en.site.ru Свой регион для каждого поддомена, языки технически независимы Вес домена делится, отдельные сертификаты, настройка сложнее
Отдельный домен site.com и site.ru Максимум доверия в целевой стране, особенно с национальным доменом Два сайта, два бюджета, вес с нуля

Правило, которым я пользуюсь: языки нужны для разных языков, а не для разных стран — берите подпапку. Разные страны с разными ценами, доставкой и юрлицами — поддомен или отдельный домен. Подпапка выигрывает тем, что накопленный вес домена работает на обе версии, и новая ветка стартует не с нуля. Отдельный домен оправдан в одном сценарии: вы всерьёз выходите на зарубежный рынок, там будет свой контент, своя реклама и свои ссылки. В остальных случаях это способ получить два слабых сайта вместо одного нормального — а продвигать сайт на WordPress и так небыстро.

Что делает hreflang и чего он не делает

Атрибут hreflang сообщает поиску: у этой страницы есть версии на других языках, вот их адреса. Он не переводит, не влияет на позиции и не склеивает страницы. Его работа — помочь показать посетителю ту версию, которая соответствует его языку и региону.

Разметка выглядит так и ставится в <head> каждой страницы:

<link rel="alternate" hreflang="ru" href="https://site.ru/stranica/">
<link rel="alternate" hreflang="en" href="https://site.ru/en/page/">
<link rel="alternate" hreflang="x-default" href="https://site.ru/stranica/">

Есть два альтернативных места: HTTP-заголовок Link (для файлов вроде PDF) и XML-карта сайта. Карта удобна, когда языков много. Смешивать способы не запрещено, но дублирование усложняет отладку — выберите один.

Важная деталь. Google опирается на hreflang как на основной сигнал о языковых версиях. У Яндекса другая логика: он определяет язык страницы сам и ориентируется на региональность, заданную в Вебмастере для сайта или поддомена. Поэтому при выходе на зарубежный рынок hreflang нужен ради Google, а для разных регионов России основной инструмент — настройки региона, а не разметка.

Типичные ошибки разметки

hreflang не выдаёт ошибок: он либо учитывается, либо молча игнорируется целиком. Поэтому ошибки живут годами.

Ошибка В чём проблема Как правильно
Нет обратной ссылки Русская указывает на английскую, английская на русскую — нет. Связка не подтверждена, разметка отброшена Каждая версия перечисляет все остальные
Нет ссылки на себя Страница не указывает hreflang на собственный адрес В наборе обязательно присутствует сама страница
Неверный код en-UK вместо en-GB, регион на месте языка Сначала язык по ISO 639-1, потом при необходимости регион по ISO 3166-1
Относительные адреса /en/page/ без домена и протокола не обрабатывается Только абсолютные URL с указанием протокола
Ссылка на редирект или 404 Указанный адрес отдаёт 301 или ошибку Все адреса отдают 200 и открыты для индексации
Конфликт с canonical Английская страница указывает canonical на русскую Canonical каждой версии ведёт на себя
Разметка только на главной На остальных страницах связки нет hreflang нужен на каждой паре страниц

Отдельно про самую дорогую ошибку — автоматический редирект по IP или языку браузера. Логика кажется разумной: определяем страну и перекидываем. Но робот тоже приходит с определённого IP, получает редирект и видит ровно одну версию. Остальные языки в индекс не попадают. Вместо редиректа делайте заметный переключатель, а предложение перейти — баннером, а не принудительно.

Плагины как класс решений

Плагинов много, но по устройству они делятся на четыре класса с разными последствиями. Разбираться нужно в классе, а не в названии.

Класс Как работает Что получаете Риск
Перевод внутри одной базы (Polylang, WPML) Каждая запись получает языковую пару в той же базе Контроль над текстом, свои метатеги, hreflang из коробки Рост базы; при удалении плагина связки теряются
Перевод поверх вывода (TranslatePress) Подменяет строки при отдаче страницы, переводы в своих таблицах Переводится всё, включая темы и плагины Сложнее править исходник, зависимость от плагина полная
Отдельный сайт на язык (Multisite) Каждый язык — самостоятельный сайт сети со своей базой Независимость версий, разные структуры и наборы страниц Администрировать сложнее; hreflang настраивается вручную
Машинный перевод на лету (внешние сервисы) Текст переводится скриптом в браузере или через прокси Запуск за час Перевода часто нет в HTML, значит нет и в индексе

Четвёртый класс — та самая ловушка, из-за которой приходят с вопросом «сделали пять языков, а трафика нет». Если перевод подставляется скриптом после загрузки, для поиска сайт по-прежнему одноязычный. Проверяется за минуту: откройте исходный код и поищите переведённый текст. Нет в коде — нет в индексе.

Второй момент — вес. Любой переводчик добавляет запросы к базе и свои стили, а переключатель часто тянет флаги картинками. На сайте с двумя десятками плагинов это заметно: я писал о том, сколько плагинов WordPress нужно на самом деле и какие из них действительно помогают оптимизировать сайт. Перед установкой мультиязычного решения стоит сначала разобраться со скоростью WordPress, иначе вторая версия окажется вдвое медленнее первой.

Порядок запуска второй языковой версии

  1. Определить цель. Язык для иностранцев внутри России или выход на рынок другой страны? От ответа зависит структура.
  2. Выбрать схему адресов и зафиксировать её. Менять потом дорого.
  3. Снять копию сайта перед установкой плагина. Такие плагины лезут в структуру постов и таксономий глубже остальных, и критическая ошибка WordPress после активации — не редкость.
  4. Определить, что переводится. Обычно не весь сайт: главная, услуги, контакты, несколько ключевых статей. Блог целиком на старте переводить не нужно.
  5. Перевести смыслы, а не слова. Дословный перевод русского заголовка редко совпадает с тем, как люди ищут.
  6. Задать каждой версии свои title и description на её языке. Это пропускают чаще всего, и в выдаче получается английская страница с русским сниппетом.
  7. Проверить lang у тега <html> — он должен меняться вместе с языком страницы.
  8. Настроить hreflang и проверить взаимность на трёх-четырёх страницах через исходный код.
  9. Добавить версии в Вебмастер и Search Console: поддомены и отдельные домены подтверждаются как самостоятельные сайты.
  10. Проверить карту сайта: адреса обеих версий, без дублей и страниц под noindex.

Что нужно кроме перевода текста

Частая недоработка — перевели статьи и забыли остальное. Человек видит английский текст и русскую форму заявки с подписью «Ваше имя».

  • Формы и кнопки: подписи полей, тексты ошибок, сообщение после отправки.
  • Меню и футер. У большинства плагинов меню — отдельная сущность, его легко пропустить.
  • Товары и характеристики. Не только названия, но и атрибуты, единицы измерения, способы доставки.
  • Юридические страницы — политика обработки данных и оферта на языке версии.
  • Форматы. Даты, разделитель дробной части, валюта, телефон с кодом страны.
  • Alt у картинок и подписи — так же, как текст.
  • Письма с сайта. Автоответ приходит на языке, на котором человек оставил заявку.

Когда мультиязычность НЕ нужна

Половина запросов на вторую языковую версию заканчивается решением её не делать. Когда я отговариваю:

  • Русская версия ещё не приносит заявок. Вторая версия удваивает объём работы и не исправляет причину, по которой не работает первая.
  • Английский нужен «чтобы солиднее». Достаточно одной страницы-визитки, без плагина и второй структуры.
  • Услуга оказывается в одном городе. Клиент из другой страны не купит монтаж окон в Екатеринбурге.
  • Некому поддерживать перевод. Через год у вас двадцать актуальных русских страниц и двадцать устаревших английских. Устаревшая версия хуже отсутствующей.
  • Бюджет только на машинный перевод без правки. Текст, не вычитанный носителем, читается как мусор и оценивается соответственно.

И обратная ситуация, где мультиязычность не сработает даже при идеальной настройке: на целевом рынке у вас нет ни ссылок, ни упоминаний, ни отзывов. Разметка помогает показать нужную версию тому, кто вас уже нашёл, но спрос не создаёт. Если задача — вырасти в русской выдаче, это отдельная работа: с ней я помогаю в рамках вывода сайта в топ Яндекса, и почти всегда она приносит больше, чем вторая языковая версия.

Как проверить, что всё работает

  • Перевод в HTML. Открыть исходный код страницы: переведённый текст виден в коде, а не подставляется скриптом.
  • Взаимность hreflang. Сверить наборы link на обеих версиях.
  • Атрибут lang в первой строке кода меняется вместе с языком.
  • Ответ сервера. Все адреса из hreflang отдают 200, без редиректов и noindex.
  • Метатеги. Title и description на языке версии, а не скопированные из оригинала.
  • Нет принудительного редиректа: английский адрес открывается напрямую.
  • Индексация: страницы второй версии в индексе, а не дубль.

Если что-то не сходится и непонятно, где рвётся связка, это разбирается за один заход технической проверки — тот же набор действий, что входит в SEO-аудит сайта. Гадать по симптомам дороже.

Коротко

  • Разные языки — подпапка. Разные страны с разными ценами и доставкой — поддомен или отдельный домен.
  • hreflang не переводит и не поднимает позиции, он помогает показать нужную версию. Работает только при взаимности и ссылке на себя.
  • Google опирается на hreflang, Яндекс — на региональность в Вебмастере.
  • Автоматический редирект по IP убивает индексацию всех версий кроме одной. Делайте переключатель.
  • Машинный перевод скриптом в браузере в индекс не попадает.
  • Переводятся не только статьи: формы, меню, письма, alt, форматы дат и валют.
  • Устаревшая языковая версия хуже отсутствующей. Нет того, кто будет её поддерживать — не начинайте.

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

Считается ли вторая языковая версия дублем?

Нет, если это действительно другой язык и связка размечена. Дубль получается, когда «английская» версия содержит тот же русский текст или когда две версии на одном языке отличаются только регионом без разметки.

Нужен ли hreflang, если я работаю только в России?

Если версия одна — нет. Разметка нужна там, где есть несколько версий на разных языках или для разных стран. Для регионов России внутри одного языка работает региональность в Вебмастере.

Можно ли перенести двуязычный сайт с конструктора?

Можно, но сразу с решением по схеме адресов и с картой соответствия старых и новых URL, иначе потеряете обе версии одновременно. Порядок я описывал отдельно: как перенести сайт на WordPress.

Увеличьте позиции и продажи вашего сайта

Профессиональное SEO-продвижение с гарантией результата. Выберите подходящую услугу:

Анатолий Кузнецов — SEO-оптимизатор

Остались вопросы по продвижению?

Меня зовут Анатолий Кузнецов, я SEO-оптимизатор с 20-летним стажем. Разберу ваш сайт, отвечу на вопросы и подскажу, что улучшить для роста позиций в Яндексе и Google.

Связаться со мной →

Комментарии

Павел

Поставил плагин с автопереводом на шесть языков, прошло четыре месяца — из зарубежного поиска ноль. В админке всё красиво, версии есть. Где смотреть причину?

Анатолий Кузнецов автор

Откройте английскую страницу и посмотрите исходный код — не то, что на экране, а именно код. Если английского текста там нет, перевод подставляется скриптом, и для поиска сайт одноязычный. Это самая частая причина.

Ирина

А почему нельзя редирект по стране? Все крупные сайты так делают, и ничего у них не отваливается.

Анатолий Кузнецов автор

У крупных сайтов роботы уже знают все версии и обходят их с разных адресов, плюс редирект обычно не жёсткий. На новом сайте робот приходит один раз, получает 301 и про остальные версии не узнаёт. Начинайте с переключателя.

Станислав

Подтверждаю про метатеги. Английские страницы полгода были в выдаче с русскими описаниями: плагин копировал их из оригинала. Нашли случайно.

Guzel

Нужно две версии: русская и татарская. Подпапка или поддомен? Страна одна.

Анатолий Кузнецов автор

Подпапка. Страна одна, региональность одна, разделять домен нечем — значит незачем терять вес. Плюс проще администрировать и один сертификат на всё.

Михаил

Не согласен насчёт «не начинайте, если некому поддерживать». Пусть лучше будет устаревшая версия, чем никакой — хоть что-то человек прочитает.

Анатолий Кузнецов автор

Проблема не в том, что человек прочитает старьё, а в том, что он прочитает устаревшие цены и напишет вам претензию. Плюс версия с половиной непереведённых блоков оценивается как слабая страница. Компромисс — одна аккуратная страница на английском вместо копии сайта.

Алексей

Подскажите, hreflang в карте сайта и в head одновременно — это ошибка или нормально?

Дмитрий В.

Алексей, формально не ошибка, но если наборы расходятся, разбираться будете долго. Я оставил только head — отлаживать проще, всё видно в коде.

Оксана

У нас магазин, перевели названия товаров, а фильтры и атрибуты остались на русском. Покупатели пишут, что ничего не понятно. Про характеристики очень к месту.

Тимур

А x-default обязателен? У нас три языка и нет отдельной страницы выбора.

Анатолий Кузнецов автор

Не обязателен, но полезен: он говорит, какую версию показывать, когда язык посетителя ни с одной не совпал. Страница выбора для этого не нужна — укажите основную версию, обычно русскую.

Елена

Добавлю про письма. Автоответ приходил на русском всем, включая иностранцев, три месяца никто не замечал. Проверяйте и письма из форм.

Владислав

Пробовал Multisite под каждый язык. Независимость классная, но hreflang пришлось прописывать руками через фильтр в теме — плагины сеть не видят.

Нина

Полезный пункт про дословный перевод заголовков. Перевели «услуги по остеклению» буквально, а искали совсем другое. Пришлось переделывать структуру английской версии.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

 Нажимая «оставить комментарий» вы принимаетеправила конфиденциальности 

Прокрутить вверх