Когда клиент просит сделать многоязычный сайт на WordPress, первый вопрос не «какой плагин», а «как будет выглядеть URL для каждого языка». От этого решения зависит вся дальнейшая работа: индексация в Google и Яндексе, настройка hreflang, склейка дублей и даже то, сколько будет стоить поддержка сайта через год. Ниже - разбор двух главных плагинов для мультиязычности и вариантов структуры адресов, основанный на проектах, которые я делал для интернет-магазинов и корпоративных сайтов.
Когда нужен мультиязычный WordPress и какие есть варианты структуры
Мультиязычность нужна не только экспортёрам и туристическим компаниям. Из моей практики: интернет-магазины, которые продают на СНГ и Европу, IT-компании с англоязычной версией для инвесторов, региональные сайты с татарским или казахским разделом. У WordPress нет встроенной поддержки нескольких языков, поэтому всё держится на плагинах: они переводят интерфейс, дублируют записи и переключают URL в зависимости от языка.
Варианта структуры URL по сути три:
- подпапка - example.ru/en/, example.ru/de/
- поддомен - en.example.ru, de.example.ru
- отдельный домен для каждого языка - example.com и example.de
Выбор влияет на то, как поисковики видят языковые версии: как один сайт с разделами или как отдельные ресурсы. К этому вопросу вернусь ниже, а сначала о плагинах, потому что структура URL завязана на том, какой из них вы ставите.
WPML: возможности и стоимость
WPML - самый распространённый плагин для мультиязычности, из моих проектов он стоит примерно в 7 случаях из 10. Он переводит записи, страницы, произвольные типы записей, меню, виджеты и строки в теме. Есть модуль WPML WooCommerce Multilingual, который дублирует товары, категории и переводит письма заказа - без него мультиязычный магазин собирать почти бессмысленно.
Лицензия Multilingual CMS стоит около 99 долларов в год, для магазина понадобится тариф с модулем WooCommerce - там цена выше. Это разовый годовой платёж за обновления и поддержку плагина, я закладываю его в смету клиенту отдельной строкой, потому что это не моя услуга, а лицензия разработчика плагина.
Из плюсов: гибкая система перевода (можно переводить вручную, через переводчика в интерфейсе или подключить машинный перевод), нормальная работа с ACF-полями, поддержка RTL-языков вроде арабского. Из минусов: плагин тяжёлый, на слабом хостинге ощутимо просаживает админку, а при обновлении темы или конструктора страниц (особенно Elementor) иногда ломается синхронизация переводов - на одном проекте я потратил день на то, чтобы вернуть связь между русской и английской версией лендинга после апдейта.
Polylang: бесплатный путь и его ограничения
Polylang - вариант для тех, кому не нужна вся тяжёлая машинерия WPML. Базовая версия бесплатна и покрывает перевод записей, страниц, категорий, меню и виджетов. Для WooCommerce есть отдельное расширение Polylang for WooCommerce, платное, но заметно дешевле годовой лицензии WPML.
Разница на практике:
| Критерий | WPML | Polylang |
|---|---|---|
| Стоимость | от ~99 $/год за лицензию | бесплатно, Pro и WooCommerce-модуль платные |
| Нагрузка на сервер | заметная, особенно в админке | ниже, работает легче |
| Перевод ACF-полей | из коробки | нужна ручная настройка через фильтры |
| Совместимость с конструкторами | иногда конфликтует после обновлений | реже даёт сбои |
| Машинный перевод | встроенный модуль | только через сторонние интеграции |
Я ставлю Polylang на проекты, где языков два-три, бюджет ограничен и нет сложной кастомной структуры данных. Если у клиента интернет-магазин с десятками произвольных типов записей, вариациями товаров и сложными фильтрами, WPML отрабатывает свою цену за счёт меньшего числа ручных доработок.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Структура URL: подпапки, поддомены и отдельные домены
Это решение принимается один раз в начале проекта, потому что смена структуры URL после индексации сайта означает настройку редиректов на сотни страниц и временную просадку трафика на 3-6 недель, пока поисковики переиндексируют новые адреса.
Подпапки (example.ru/en/) - вариант, который я рекомендую в большинстве случаев. Все языковые версии наследуют ссылочный вес основного домена, единый SSL-сертификат, простая аналитика в Google Search Console и Яндекс.Вебмастере через один аккаунт. И WPML, и Polylang настраивают такую структуру буквально парой кликов.
Поддомены (en.example.ru) - имеет смысл, если языковые версии сильно различаются по контенту или ведутся разными командами. Технически поисковики иногда считают поддомен отдельным сайтом, поэтому вес не всегда передаётся полностью, а SSL и DNS настраиваются отдельно для каждого поддомена.
Отдельные домены (example.com, example.de) - самый дорогой вариант в поддержке: отдельная регистрация, отдельный хостинг или минимум отдельная настройка сервера, отдельная репутация в поиске с нуля. Оправдан, когда бренд реально выходит на рынок другой страны и там работает локальная команда со своим маркетингом, а не просто переведённая версия сайта.
Для 90% проектов, которые проходили через меня, подпапки - оптимальный баланс между SEO-эффектом и трудозатратами на поддержку.
Перевод меню, виджетов и hreflang для SEO
Плагин переводит записи и страницы, но забывает переключить контент внутри виджетов, подвал, тексты форм и уведомления от плагинов вроде контактной формы или калькулятора доставки. Это приходится дособирать вручную: в WPML - через раздел String Translation, в Polylang - через модуль перевода строк темы. На среднем сайте с кастомной темой это 2-4 часа работы, которые заказчики обычно не закладывают в смету заранее.
Отдельная тема - тег hreflang. Он сообщает поисковику, какая страница на каком языке предназначена для какой аудитории, и без него две языковые версии одной страницы конкурируют друг с другом в выдаче вместо того, чтобы показываться нужной аудитории. WPML и Polylang генерируют hreflang автоматически при правильной настройке языковых версий, но я всегда проверяю результат через просмотр исходного кода страницы или Google Search Console - раздел «Международный таргетинг» показывает ошибки соответствия сразу.
Если на сайте есть кастомные шаблоны или блоки, собранные в Elementor и не привязанные к стандартным полям WordPress, автоматика может их пропустить, и тогда часть текста на переведённой странице остаётся на языке оригинала. Для таких случаев логичнее сразу закладывать разработку под мультиязычность на этапе вёрстки шаблонов, а не чинить постфактум - за этим обычно обращаются на разработку и доработку сайта, когда стандартных настроек плагина уже не хватает.
Мультиязычный интернет-магазин: WooCommerce, оплата и доставка
Со связкой WordPress плюс WooCommerce мультиязычность усложняется: нужно переводить не только карточки товаров, но и письма о заказе, статусы в личном кабинете, тексты на странице оплаты. Модуль WPML WooCommerce Multilingual или Polylang for WooCommerce дублирует товары между языковыми версиями, но SKU, остатки и цены синхронизируются как один товар, что удобно для складского учёта.
Платёжные и логистические интеграции при этом остаются языконезависимыми на уровне кода: если магазин принимает оплату через эквайринг Т‑Банка, виджет подключается один раз и просто подхватывает текущий язык интерфейса WooCommerce. То же с доставкой: интеграция с СДЭК для расчёта стоимости по индексу получателя работает одинаково для всех языковых версий, разница только в переведённых названиях служб доставки в чекауте.
Из практики: на магазине с русской и английской версией расхождение в переводе статусов заказа («в обработке» вместо «processing») - частая причина обращений в поддержку от иностранных покупателей, которые не понимают, что происходит с заказом. Такие мелочи стоит проверять руками до запуска, автоматический перевод плагина их не ловит.
Частые ошибки при запуске многоязычного сайта
За несколько лет работы с мультиязычными проектами вижу одни и те же грабли:
- Забывают переключить язык у шаблонов писем WooCommerce и плагинов форм - клиент получает письмо на русском, хотя сайт смотрел на английском.
- Ставят Polylang, а потом решают добавить сложный кастомный тип записей с ACF-полями и упираются в то, что перевод полей требует ручной настройки фильтров в functions.php.
- Меняют структуру URL с подпапок на поддомены после того, как сайт уже проиндексирован, и теряют часть позиций на 1-2 месяца.
- Не проверяют hreflang после переезда на новый хостинг или смену темы - тег иногда перестаёт генерироваться из-за конфликта кэширующих плагинов.
- Дублируют контент через простое копирование без привязки языковых версий друг к другу, из-за чего поисковик видит две одинаковые страницы на разных языках как дубли.
Большинство этих проблем решается на этапе планирования: если сразу понятно, сколько языков, какая структура URL и нужен ли WooCommerce, выбор между WPML и Polylang делается за 15 минут, а не переигрывается через полгода.
Корпоративный сайт, каталог, блог
Фронтенд + Бэкенд
от 60 000 ₽
Подробнее →Частые вопросы
Какой плагин лучше для многоязычного сайта на WordPress - WPML или Polylang?
Если бюджет ограничен и языков два-три без сложной структуры данных, беру Polylang. Для интернет-магазина с большим каталогом и кастомными типами записей WPML экономит время за счёт готовых интеграций, несмотря на годовую лицензию.
Какая структура URL лучше для SEO - подпапки или поддомены?
Подпапки вида example.ru/en/ в большинстве случаев работают лучше: они наследуют ссылочный вес основного домена и проще в администрировании через один аккаунт Google Search Console. Поддомены оправданы, только если версии сайта ведутся разными командами с разным контентом.
Можно ли переехать с одной структуры URL на другую без потери позиций?
Полностью без потерь не получится: даже с корректными 301-редиректами поисковики переиндексируют новые адреса от 3 до 6 недель, и в этот период возможна просадка трафика. Переезд стоит планировать заранее, а не после того, как сайт уже набрал позиции.
Нужен ли hreflang, если на сайте всего два языка?
Нужен в любом случае. Без hreflang поисковик может показывать русскоязычному пользователю английскую версию страницы или наоборот, а также воспринимать языковые версии как дубли контента, что снижает видимость обеих страниц в выдаче.