Многоязычные сайты становятся все более востребованными, особенно если ваш проект нацелен на международную аудиторию. В этой статье мы подробно рассмотрим, как создать многоязычный сайт на WordPress с использованием одного из самых популярных и бесплатных плагинов — Polylang. Вы узнаете, как настроить плагин, перевести страницы и записи, а также как оптимизировать сайт для поисковых систем.
Почему стоит выбрать Polylang для многоязычного сайта WordPress
Polylang — это мощный и в то же время легкий плагин для добавления многоязычности на ваш сайт WordPress. Он поддерживает неограниченное количество языков, позволяет переводить записи, страницы, категории и теги, а также меню и виджеты. В отличие от некоторых других решений, Polylang не требует создания отдельных сайтов для каждого языка, что упрощает управление.
Кроме того, Polylang совместим с большинством популярных тем и плагинов, что позволяет без проблем интегрировать многоязычность в существующий проект.
Основные преимущества:
- Простота в установке и настройке;
- Гибкость в добавлении новых языков;
- Удобный интерфейс для перевода контента;
- Хорошая SEO-оптимизация многоязычных страниц;
- Поддержка пользовательских типов записей и таксономий.
Шаг 1. Установка и базовая настройка Polylang
Для начала необходимо установить плагин Polylang. Это можно сделать через админ-панель WordPress:
- Перейдите в раздел Плагины > Добавить новый.
- В поиске введите «Polylang».
- Найдите плагин и нажмите Установить, затем Активировать.
После активации появится новый пункт меню Языки. Здесь добавьте все языки, которые планируете использовать на сайте. Для каждого языка можно указать название, код языка (например, ru, en, de), а также флаг для удобства.
В настройках плагина рекомендуем включить следующие опции:
- Автоматический выбор языка браузера пользователя;
- Использование поддоменов или папок для языков (зависит от вашей серверной конфигурации);
- Добавление языкового переключателя в меню или виджет.
Шаг 2. Перевод записей, страниц и таксономий
После настройки языков можно приступать к переводу контента. Polylang добавляет к каждому типу записи и таксономии возможность создавать версии на других языках.
Например, чтобы перевести страницу:
- Перейдите в Страницы.
- Откройте страницу, которую хотите перевести.
- В правой боковой панели вы увидите блок с языками и кнопками «+» для добавления перевода.
- Нажмите «+» напротив нужного языка и создайте перевод страницы.
Так же работает перевод записей и категорий. Для категорий и тегов перейдите в соответствующий раздел (например, Записи > Рубрики) и добавьте перевод прямо там.
Пример кода для вывода ссылок на языковые версии
Если вам нужно в шаблоне вывести ссылки на все языковые версии текущей записи, можно использовать следующий код с префиксом wptranslate для функции:
function wptranslate_get_language_links() {
if (function_exists('pll_the_languages')) {
pll_the_languages(array('dropdown' => 0, 'show_flags' => 1, 'show_names' => 1));
}
}Вызовите wptranslate_get_language_links() в нужном месте темы, чтобы отобразить переключатель языков с флагами и названиями.
Шаг 3. Оптимизация многоязычного сайта для SEO
Правильная SEO-настройка важна для того, чтобы поисковые системы правильно индексировали языковые версии сайта и не считали их дублирующим контентом.
Polylang автоматически добавляет атрибуты hreflang в заголовок страниц, что сообщает поисковикам, какие версии существуют для разных языков. Однако стоит проверить следующие моменты:
- Убедитесь, что структура URL соответствует выбранной стратегии (поддомены, папки или параметры).
- Используйте SEO-плагины, совместимые с Polylang, например, Yoast SEO или Rank Math. Они умеют работать с многоязычностью и правильно обрабатывать мета-теги.
- Добавьте sitemap, включающий все языковые версии, и отправьте его в Google Search Console.
- Проверьте файл robots.txt, чтобы убедиться, что языковые папки и поддомены не заблокированы для индексации.
Шаг 4. Перевод пользовательских типов записей и полей
Если ваш сайт использует кастомные типы записей (Custom Post Types) и пользовательские поля (Custom Fields), их тоже нужно перевести. Polylang поддерживает пользовательские типы, но их нужно зарегистрировать с поддержкой переводов.
Пример регистрации кастомного типа записи с поддержкой перевода:
function wptranslate_register_custom_post_type() {
$args = array(
'label' => 'Продукты',
'public' => true,
'supports' => array('title', 'editor', 'thumbnail'),
'show_in_rest' => true,
'pll_translate' => true // Добавляем поддержку Polylang
);
register_post_type('product', $args);
}
add_action('init', 'wptranslate_register_custom_post_type');Для пользовательских полей, созданных через ACF (Advanced Custom Fields), Polylang предлагает интеграцию, позволяющую создавать переводы значений полей.
Полезные плагины для работы с многоязычностью
Кроме Polylang, рекомендуем обратить внимание на следующие плагины, которые часто используются вместе с Polylang для расширения функционала:
- Polylang for WooCommerce — для создания многоязычных интернет-магазинов на WooCommerce.
- ACF Multilingual — интеграция ACF с Polylang для перевода пользовательских полей.
- Yoast SEO — для SEO-оптимизации многоязычного сайта.
- Polylang Connect for Elementor — для создания и перевода страниц с помощью конструктора Elementor.
Частые ошибки и как их избежать
При работе с многоязычностью часто возникают типичные ошибки, которые могут привести к проблемам с индексацией, отображением или работой сайта:
- Отсутствие перевода важных элементов: меню, виджетов, мета-тегов. Обязательно проверьте, что все элементы интерфейса имеют переводы.
- Дублирование контента: если не настроены правильные URL и
hreflang, поисковики могут воспринимать разные языковые версии как дубликаты. - Плохая интеграция с темой: некоторые темы не полностью совместимы с многоязычностью. Проверяйте, как тема работает с Polylang, и при необходимости вносите правки в шаблоны.
- Неоптимальное использование пользовательских типов записей: если кастомные типы не зарегистрированы с поддержкой Polylang, переводы будут недоступны.
Рекомендуется на этапе разработки тестировать все языковые версии и проверять корректность работы переключателя языков.