Мультиязычный WordPress — это не просто установка переключателя языка. Чтобы русская и английская версии сайта работали нормально для пользователей и поисковых систем, нужно связать переводы страниц, меню, рубрик, форм, URL и SEO-метаданных.
Polylang подходит для такой архитектуры, потому что каждая языковая версия остаётся отдельной WordPress-записью, связанной с переводами. Это даёт контроль над контентом, но одновременно требует аккуратной настройки структуры. Официальная документация проекта доступна на Polylang Documentation.
Как должна выглядеть структура RU/EN
Сначала определяется модель URL. Для большинства корпоративных сайтов понятна структура с языковыми префиксами, например /ru/ и /en/, либо основной язык без префикса и второй язык в отдельной директории. Важно выбрать схему до массового наполнения, потому что последующая смена URL потребует редиректов и повторной проверки индексации.
Каждая страница должна иметь логическую пару перевода. Если на русском есть услуга, а на английском её версии нет, переключатель языка не должен вести пользователя на случайную главную страницу без объяснения.
Что нужно переводить кроме текста страницы
- название и содержимое страниц;
- меню и подписи пунктов навигации;
- категории, теги и другие таксономии, если они выводятся публично;
- виджеты, шаблонные блоки и элементы footer/header;
- формы, сообщения об ошибках и thank-you состояния;
- SEO title и description;
- alt-тексты изображений, когда они зависят от языка страницы;
- системные строки темы и плагинов, которые видит пользователь.
Частая ошибка — перевести только основной контент Elementor или Gutenberg и забыть про меню, формы и шаблонные блоки. В результате сайт визуально выглядит мультиязычным, но пользователь регулярно встречает смесь языков.
Как Polylang связывает переводы
В Polylang страницы разных языков существуют как отдельные записи, а плагин хранит связь между ними. Такой подход удобен для SEO: у каждой версии собственный URL, заголовки и контент. Но редактору нужно соблюдать соответствие между языковыми версиями и не создавать вручную независимые копии без связи.
Если сайт уже существует и перевод добавляется позже, я сначала провожу инвентаризацию типов контента: страницы, записи, товары WooCommerce, шаблоны, ACF-поля, формы и кастомные post types. Это позволяет понять, что должно переводиться и где нужна дополнительная доработка WordPress.
Hreflang и canonical
Для поисковой системы языковые версии — самостоятельные URL. Между ними должны быть корректные языковые связи, а canonical не должен ошибочно указывать со всех переводов на одну русскую страницу.
После настройки я проверяю исходный HTML: какие hreflang выведены, куда ведёт canonical, совпадает ли язык документа и нет ли циклических или отсутствующих связей. Полагаться только на визуальный переключатель языка недостаточно.
Почему возникают дубли
Дубли появляются, когда одинаковый контент доступен по нескольким языковым URL, языковые архивы индексируются неправильно или перевод страницы фактически содержит исходный текст без изменений. Ещё один источник проблем — параметры URL и фильтры интернет-магазина.
Если речь идёт о WooCommerce, мультиязычность нужно рассматривать вместе с индексацией каталога, фильтров и карточек. Базовые принципы структуры описаны в материале про WooCommerce SEO.
Меню и переключатель языка
Для каждого языка обычно создаётся собственное меню. Это позволяет не только перевести подписи, но и скрывать пункты, у которых пока нет соответствующей страницы. Сам переключатель лучше размещать там, где он одинаково доступен на десктопе и мобильной версии.
После переключения пользователь должен попадать на перевод текущей страницы, а не каждый раз на главную. Это кажется мелочью, но именно такая логика определяет, ощущается ли сайт как единая система.
Формы на двух языках
Форма должна переводить не только labels, но и placeholders, согласия, сообщения валидации и текст после успешной отправки. При этом backend-логика может оставаться общей: одна CRM, один Telegram-чат или единая база заявок.
Полезно добавлять к заявке язык страницы. Тогда менеджер понимает, на каком языке пользователь взаимодействовал с сайтом, и может продолжить коммуникацию корректно.
Мультиязычный WooCommerce
Для магазина задача сложнее: нужно связать товары и категории, проверить вариации, атрибуты, корзину, checkout, письма и системные страницы. Кроме Polylang могут понадобиться дополнительные совместимые модули в зависимости от архитектуры магазина.
Перед внедрением я проверяю тему и используемые плагины, потому что кастомные фильтры, AJAX-каталог или нестандартная карточка товара могут потребовать отдельной адаптации. При необходимости это входит в доработку WooCommerce.
Что проверяю после настройки Polylang
- у каждой ключевой страницы есть корректная языковая пара;
- переключатель ведёт на перевод текущей страницы;
- меню соответствуют выбранному языку;
- формы и сообщения не смешивают RU и EN;
- canonical и hreflang корректны;
- нет ненужных дублей URL;
- SEO title и description заданы отдельно для языков;
- мобильная версия не ломает переключатель;
- кэш не отдаёт страницу на неправильном языке.
Можно ли добавить второй язык на уже работающий сайт
Да. Но безопаснее делать это поэтапно: сначала определить URL-структуру и типы переводимого контента, затем настроить Polylang и несколько тестовых страниц, проверить SEO и только после этого переносить весь объём.
На большом сайте полезно заранее составить таблицу соответствий URL RU → EN. Она упрощает контроль полноты переводов и помогает увидеть страницы, которые остались без пары.
Что нужно для оценки
Для оценки достаточно ссылки на сайт, списка нужных языков и понимания, какие разделы должны переводиться: только страницы услуг или также блог, WooCommerce, формы и кастомные типы записей.
Если нужно настроить мультиязычный WordPress с Polylang, исправить уже существующую RU/EN структуру или проверить SEO после перевода, напишите в A.S Groups. Сначала проверю текущую архитектуру, затем можно определить точный объём работ.
Обсуждение
Вопросы и комментарии
Можно уточнить детали статьи или поделиться своим опытом. Первый комментарий проходит проверку.