# Мультиязычный сайт WordPress: Polylang и WPML

> Мультиязычный сайт на WordPress: чем Polylang отличается от WPML, как настроить языки и перевести меню, виджеты и мета-теги.

Мультиязычный сайт на WordPress строится на плагине, который хранит перевод каждой записи как отдельный пост и связывает версии между собой. Два основных варианта — Polylang и WPML. Разберем разницу между ними и порядок настройки на примере сайта с русской, украинской и английской версией.

## Чем отличаются Polylang и WPML

Polylang бесплатен в базовой версии и покрывает перевод записей, страниц, рубрик и меню. Платная версия Polylang Pro добавляет перевод произвольных типов записей и слагов URL. WPML — полностью платный плагин с более широким охватом «из коробки»: перевод строк темы без правки кода, встроенный сервис машинного перевода и совместимость почти со всеми крупными билдерами страниц.

На практике для блога или корпоративного сайта с 2–3 языками достаточно Polylang. WPML оправдан, если нужен перевод сложного функционала WooCommerce или у редакторов нет доступа к файлам темы для правки строк.

## Как настроить языки в Polylang

После активации плагина мастер настройки запросит список языков сайта. Добавьте нужные локали в разделе «Языки → Языки» с кодом по стандарту ISO 639-1: `ru`, `uk`, `en`. Каждому языку назначается свой флаг и порядок в переключателе.

```
wp pll lang create ru "Русский" ru_RU
wp pll lang create uk "Українська" uk
wp pll lang create en "English" en_US
```

Команды WP-CLI работают, если на сайт установлен пакет `polylang-cli`; без него языки добавляются только через интерфейс.

## Как перевести записи, меню и виджеты

У каждой записи в редакторе появляется блок «Языки» с флагами: клик по плюсу у нужного языка создает связанную копию записи для перевода. Слаг, заголовок и содержимое переводятся независимо, а связь между версиями сохраняется по внутреннему ID перевода.

Меню переводятся отдельно в разделе «Внешний вид → Меню» — под каждый язык нужно собрать свою версию меню и назначить ее в настройках темы. Виджеты, если тема их поддерживает, размещаются через встроенный виджет Polylang «Переключатель языков», который сам подставляет ссылки на переведенные версии.

## Как настроить SEO для многоязычного сайта

Polylang сам добавляет атрибут `hreflang` на каждую страницу, помечая связанные переводы для поисковых систем. Мета-теги (заголовок, описание) переводятся через плагин Yoast SEO отдельно для каждой языковой версии записи — подробная настройка описана в статье [про Yoast SEO](https://www.zevshost.net/ru/kb/wordpress-yoast-seo/). Структуру URL стоит выбрать заранее: с префиксом языка (`/en/page/`) или на отдельных поддоменах — смена схемы после запуска требует настройки редиректов.

## Polylang и WPML: сравнение возможностей

| Возможность | Polylang (бесплатный) | WPML |
| --- | --- | --- |
| Перевод записей и страниц | да | да |
| Перевод строк темы без кода | нет (только Pro) | да |
| Машинный перевод | нет | да, платный сервис |
| Поддержка WooCommerce | частично, нужны доп. плагины | да, отдельный модуль |

## Частые проблемы после установки

Дубли страниц в поисковой выдаче почти всегда означают, что `hreflang` настроен неверно или отсутствует связь между переводами — проверьте это в блоке «Языки» каждой записи. Падение скорости сайта после установки WPML — известная особенность плагина при большом числе записей: включите кэш переводов в настройках модуля String Translation. Если сайт до этого переносился на новый адрес, порядок действий описан в статье про [смену домена WordPress](https://www.zevshost.net/ru/kb/wordpress-smena-domena-url/).

## Чек-лист запуска мультиязычного сайта

- Выбран плагин: Polylang для типового сайта, WPML — для сложного функционала и перевода строк темы.
- Настроены все языковые версии с корректными кодами ISO 639-1.
- Переведены меню, виджеты и мета-теги через Yoast SEO для каждого языка.
- Проверен атрибут `hreflang` на связанных страницах.
- Структура URL выбрана заранее и не потребует смены схемы после запуска.

---

Источник: https://www.zevshost.net/ru/kb/wordpress-multilang-polylang/
