B2BPRO.KZ | Рекламное агентство в Алматы

Мультиязычный сайт на WordPress: казахский и русский без дублей в поиске

Разработчица за ноутбуком с двумя версиями страницы, рядом объёмные буквы «WordPress» на столе

Чтобы казахская и русская версии сайта на WordPress не дублировали друг друга в поиске, у каждой версии должен быть свой адрес, свой переведённый текст и разметка hreflang, где каждая страница ссылается на себя и на свой перевод. Google принимает такую разметку в коде страницы, в заголовке или в XML-карте сайта, а Яндекс читает только теги в коде страницы. Остальное (плагин, структура адресов, перевод меню) решается под вашу задачу, и ниже по порядку, что выбирать и как проверить результат.

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

Зачем нужен hreflang и что он делает?

Hreflang: это атрибут в теге <link rel="alternate">, который сообщает поисковой системе: у этой страницы есть версии на других языках, и вот их адреса. Он помогает показывать человеку страницу на его языке, а не заменяет перевод и не улучшает позиции сам по себе.

Важная деталь из документации Google о локализованных версиях страниц: язык страницы Google определяет алгоритмами, а не по hreflang или атрибуту lang. Hreflang нужен для связи между версиями. Там же сказано, что локализованные версии считаются дублями только тогда, когда основной контент остаётся непереведённым. Это главный аргумент в пользу честного перевода: полностью переведённая казахская страница не конкурирует с русской, а недопереведённая выглядит как копия.

Какую структуру адресов выбрать для казахской и русской версий?

Для большинства сайтов компаний подходит структура с языковыми каталогами: русская версия на главном адресе, казахская в подкаталоге вроде /kk/. Она проще в поддержке, потому что работает на одном домене, одной установке WordPress и одном сертификате.

Вариант Пример Плюсы Минусы
Подкаталоги site.kz и site.kz/kk/ Одна установка, одна панель, проще настройка и обслуживание Версии делят общие настройки и плагины
Поддомены kk.site.kz Можно разделить серверные настройки Сложнее администрирование, нужна отдельная настройка каждого поддомена
Отдельные домены site.kz и site.com Полная независимость, привязка к стране Дороже в поддержке, нужны отдельные домены и продвижение каждого

Яндекс в своей справке подчёркивает, что структура сайта не влияет на обработку hreflang: версии могут лежать на разных поддоменах, доменах или в каталогах. То есть выбор структуры это вопрос удобства поддержки, а не позиций. Это подтверждает справка Яндекс Вебмастера о страницах для разных языков и регионов.

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

Как правильно указать hreflang для казахской и русской версий?

Для каждой страницы в блоке head добавляют по одной строке на каждую версию, включая саму страницу, с полным адресом и кодом языка. Код языка задаётся по ISO 639-1: для русского ru, для казахского kk. При необходимости добавляют регион по ISO 3166-1 Alpha 2, например kk-KZ и ru-KZ. Один регион без языка указывать нельзя.

Пример для страницы услуги, у которой есть две версии:

  1. <link rel="alternate" hreflang="ru" href="https://site.kz/uslugi/">
  2. <link rel="alternate" hreflang="kk" href="https://site.kz/kk/uslugi/">
  3. <link rel="alternate" hreflang="x-default" href="https://site.kz/uslugi/">

Одинаковый набор строк должен быть на обеих страницах. Google требует, чтобы связь была двусторонней: если русская страница ссылается на казахскую, а казахская не ссылается обратно, аннотации игнорируются. Ссылки должны быть полными, с протоколом https, а не относительными.

Значение x-default указывает резервную страницу для пользователей, чей язык не совпадает ни с одной версией. Оно особенно полезно, если сайт определяет язык автоматически или у вас есть страница выбора языка. Яндекс тоже советует добавлять x-default, если язык определяется автоматически по IP или заголовку Accept-Language.

Где размещать разметку: в коде страницы или в XML-карте сайта?

Самый надёжный вариант для сайта, который должны видеть и Google, и Яндекс, это теги в блоке head каждой страницы. Google принимает три способа (теги в HTML, заголовок Link и XML-карту) и считает их равнозначными, а Яндекс, согласно справке, больше не поддерживает файл Sitemap для языковых версий и читает разметку в коде страницы.

Способ Google Яндекс
Теги link в head страницы Поддерживается Поддерживается
HTTP-заголовок Link Поддерживается (удобен для PDF) В справке не упомянут
XML-карта сайта Поддерживается Не поддерживается для языковых версий

Поэтому для казахстанского сайта выбор понятен: теги в head. Использовать несколько способов одновременно Google не советует, достаточно одного.

Какой плагин для мультиязычности на WordPress выбрать?

Плагин для перевода нужен, чтобы вести две версии в одной админке, связывать записи-переводы и выводить переключатель языков. Мы кратко сравнили два распространённых решения по данным их страниц на wordpress.org, и учтите, что функции и условия меняются, поэтому перед выбором откройте актуальные страницы плагинов.

Плагин Структура адресов Что в бесплатной версии Что платно
Polylang Код языка в адресе либо отдельный поддомен или домен на язык Перевод меню, виджетов, категорий и меток Перевод slug категорий и типов записей, DeepL, синхронизация переводов
TranslatePress Подкаталоги, можно отключить каталог для основного языка; отдельные домены через платный аддон Автоперевод с ограничением 2000 слов в AI Free или через Google Translate со своим ключом Перевод SEO-полей и slug (пакет SEO Pack), DeepL

На страницах обоих плагинов не описано, как именно они выводят hreflang, поэтому не принимайте это на веру. После установки откройте исходный код страницы и посмотрите, появились ли теги link rel="alternate" hreflang с правильными адресами. Если нет, разметку нужно добавлять отдельным плагином или кодом.

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

Как не получить дубли страниц в поиске?

Дубли возникают в трёх случаях: страница существует на двух адресах без перевода, версии не связаны hreflang или у казахской страницы canonical указывает на русскую. Все три случая проверяются и исправляются.

  • Не публикуйте казахские адреса, пока текст на них не переведён. Страница с русским текстом под казахским адресом выглядит как дубль, ведь Google считает дублями версии, у которых основной контент не переведён.
  • Для каждой языковой версии задайте canonical на саму себя. Это наша рекомендация: если на казахских страницах canonical указывает на русские, поисковик получает противоречивые сигналы.
  • Следите за служебными страницами: поиск по сайту, метки и архивы автора должны переводиться или закрываться, иначе плодят похожие адреса.
  • Переключатель языков должен вести на соответствующую страницу перевода, а не на главную.

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

Можно ли переводить сайт автоматически?

Автоперевод годится для черновика, но не для публикации без вычитки, особенно в казахском языке. Страница TranslatePress сообщает, что данные могут отправляться в сервис автоперевода при посещении сайта посетителем, а не только при работе в админке, и это стоит учесть при оценке рисков и скорости.

Практический порядок: сначала переведите ключевые страницы вручную или у профессионального переводчика, затем оцените остальные. Для коммерческих страниц (услуги, цены, контакты) перевод должен вычитывать носитель языка: ошибка в названии услуги или в обращении к клиенту стоит дороже, чем задержка запуска. Для блога допустим постепенный перевод по мере приоритета, но не публикуйте промежуточные версии с непереведёнными блоками.

Чек-лист запуска двуязычного сайта

  1. Определите структуру адресов и зафиксируйте её, потому что менять её позже дорого.
  2. Выберите плагин и проверьте, какие функции вам нужны в бесплатной версии, а какие в платной.
  3. Переведите ключевые страницы: главную, услуги, контакты, форму заявки.
  4. Переведите меню, подвал, формы, сообщения об ошибках и письма-уведомления.
  5. Убедитесь, что у каждой страницы есть пара в другом языке и она связана с оригиналом.
  6. Проверьте исходный код: теги hreflang есть на обеих версиях и указывают друг на друга и на себя.
  7. Добавьте обе версии в Google Search Console и Яндекс Вебмастер, отправьте карту сайта.
  8. Проверьте переключатель языков на каждом типе страниц.
  9. Через две-три недели посмотрите в отчётах, какие версии попали в индекс.

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

Что переводить в первую очередь?

В первую очередь переводят страницы, которые приводят заявки: главную, основные услуги, контакты и форму обратной связи. Блог, новости и архив лучше переводить во вторую очередь, когда основа уже работает и вы видите, какие страницы казахскоязычные посетители открывают чаще.

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

Отдельно переведите элементы, которые часто забывают: название сайта в шапке, подписи кнопок, всплывающие окна, сообщения после отправки формы, письмо-подтверждение клиенту, страницу 404 и политику конфиденциальности. Клиент, который прошёл весь путь на казахском и получил письмо на русском, воспринимает это как недоделку.

Как переключатель языка и меню влияют на удобство?

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

Несколько практических правил. Подписывайте языки их собственными названиями, чтобы человек находил свой язык, не читая чужой. Не определяйте язык принудительно по браузеру, без возможности вернуться: пользователь с русским интерфейсом может искать казахскую версию, и наоборот. Меню на каждом языке должно быть переведено полностью, а порядок пунктов остаться тем же, чтобы человек, переключившись, не терялся. Если у страницы нет перевода, лучше скрыть пункт в переключателе или вести на ближайшую переведённую страницу, чем показывать ошибку.

Как проверить результат в Google и Яндексе?

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

  1. Откройте исходный код русской страницы и найдите теги hreflang: там должны быть адреса русской и казахской версий и значение x-default.
  2. Откройте исходный код казахской страницы: набор тегов должен быть таким же. Если там другой набор, связь односторонняя и не работает.
  3. Проверьте, что адреса в тегах полные, с https, и открываются без перенаправлений.
  4. Добавьте сайт в Google Search Console и Яндекс Вебмастер, отправьте карту сайта с адресами обеих версий.
  5. Через две-три недели посмотрите, какие страницы каждой версии попали в индекс, и сравните с планом.

Если казахские страницы долго не индексируются, обычно причина в закрытом доступе, слабом содержании или отсутствии внутренних ссылок на них. Добавьте ссылки с русских страниц и из переключателя языков, проверьте файл robots.txt и убедитесь, что страницы не закрыты от индексации настройками плагина.

Что делать, если русский сайт уже работает и нужно добавить казахский?

Если сайт уже в индексе и приносит заявки, добавляйте казахскую версию отдельным каталогом и не меняйте адреса русских страниц. Любая смена адресов существующих страниц риск потерять позиции, поэтому русская версия должна остаться там, где была.

Порядок действий такой. Сначала установите плагин на тестовой копии сайта и проверьте, что он не меняет адреса русских страниц. Затем создайте переводы ключевых страниц в казахском каталоге и свяжите их с оригиналами. После этого добавьте разметку hreflang на обе версии и проверьте исходный код. Только потом переносите изменения на рабочий сайт и отправьте обновлённую карту сайта. Если после запуска адреса русских страниц изменились (например, появился префикс языка), настройте постоянные перенаправления со старых адресов на новые, иначе поисковик посчитает их новыми страницами.

Что ещё менять на сайте, кроме текста?

Кроме перевода страниц, в двуязычном проекте нужно проверить рекламу, аналитику и формы. Эти части легко упустить, а они напрямую влияют на заявки.

Для рекламы создайте отдельные объявления на казахском и ведите их на казахские страницы. Если реклама на казахском ведёт на русскую страницу, человек уйдёт, не дочитав. В аналитике настройте разделение по языку страницы, чтобы видеть, откуда приходят заявки с каждой версии: иначе вы не поймёте, окупился ли перевод. Формы заявок должны иметь казахский вариант с понятными подписями полей, а письмо-подтверждение должно приходить на том языке, на котором человек заполнял форму. Если заявки попадают в CRM, добавьте поле языка обращения, чтобы менеджер отвечал клиенту на его языке.

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

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

Технически запуск двух языков на WordPress укладывается в несколько дней: установка плагина, настройка структуры адресов, разметка и проверка. Основное время уходит на перевод и вычитку, и оно зависит от числа страниц. Для небольшого сайта услуг из десятка страниц разумно закладывать от одной до трёх недель, для крупного каталога срок растёт пропорционально.

Это оценка по нашему опыту, а не данные из документации поисковых систем. Чтобы сроки не сдвигались, соберите перед стартом все тексты и договоритесь о переводчике заранее. Самая частая причина задержки: проект остановился в ожидании вычитки, хотя технически всё готово. Поэтому лучше сразу разделить работу: пока переводчик готовит тексты, разработчик настраивает структуру и разметку на тестовой копии.

Типичные ошибки при запуске казахской версии

Первая ошибка: опубликовали пустые или полупереведённые страницы, чтобы «заполнить структуру». Вторая: забыли перевести элементы, которые видит клиент, например кнопки, формы, подтверждение отправки и письма. Третья: разметили hreflang только на одной стороне, и связь не работает. Четвёртая: оставили автоматическое перенаправление по языку браузера без возможности вернуться, из-за чего поисковый робот видит только одну версию. Пятая: не учли, что у части аудитории казахский язык основной для запросов, и перевели только то, что показалось важным.

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

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

Нужен ли hreflang, если сайт на двух языках всего из пяти страниц?

Да, нужен, если у страниц есть версии на разных языках. Hreflang связывает переводы и помогает показывать человеку нужную версию. Для небольшого сайта достаточно тегов в блоке head, и настройка занимает немного времени.

Как указать казахский и русский язык в hreflang?

Для казахского используйте код kk, для русского ru, при желании с регионом, например kk-KZ и ru-KZ. Код региона без языка недопустим. Добавьте также x-default для резервной страницы, и пусть обе версии содержат одинаковый набор тегов.

Читает ли Яндекс hreflang из XML-карты сайта?

Нет, согласно справке Яндекс Вебмастера, файл Sitemap для языковых версий больше не поддерживается. Яндекс читает теги link rel=»alternate» hreflang в блоке head страницы. Google принимает и теги, и карту сайта, поэтому надёжнее разместить теги в коде.

Будут ли казахская и русская версии считаться дублями?

Нет, если основной контент переведён. Google считает локализованные версии дублями только когда текст остаётся непереведённым. Поэтому не публикуйте казахские адреса с русским текстом и связывайте версии через hreflang.

Какой плагин лучше для двуязычного сайта на WordPress?

Универсального ответа нет: Polylang и TranslatePress решают задачу по-разному и отличаются набором бесплатных функций. Выбор зависит от структуры адресов, потребности в переводе slug и SEO-полей. После установки проверьте исходный код: hreflang должен быть на обеих версиях.

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