Мультиязычность Drupal: настройка без дублей и с hreflang

Почему мультиязычность Drupal теряет трафик?

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Мультиязычность Drupal: настройка без дублей и с hreflang
Средний
~3-5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    980
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1240
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Почему мультиязычность Drupal теряет трафик?

Мы сталкивались с проектами, где перевод контента приводил к дублям страниц и неправильному hreflang. В результате — падение трафика до 40% и потеря позиций в Google. Один клиент потерял 60% органического трафика из Германии из-за того, что URL-алиасы не учитывали язык, и Google склеил все версии в одну. Другой случай — ритейлер с 3 языками потерял 50% трафика из Польши, потому что термины таксономии не переводились, и все вариации показывались на русском. Правильная настройка мультиязычности решает эти проблемы: переводятся не только ноды, но и конфигурации, меню, таксономия. Наша команда с 10-летним опытом реализовала более 50 мультиязычных проектов. Например, настройка для интернет-магазина с 5 языками окупилась за 3 месяца за счёт прироста трафика на 35% из целевых регионов. За месяц после исправления таксономии трафик из Польши вырос на 68%. Разберём процесс от включения модулей до SEO-тегов.

Все модули ядра — достаточно ли их?

Все нужные модули — в ядре Drupal. Включаем их одной командой:

drush en language locale content_translation config_translation -y drush cr 

На практике для 90% проектов достаточно четырёх модулей. Однако для сложных сценариев может потребоваться Entity Translation (устарел) или модули multilingual-xyz. Мы рекомендуем придерживаться ядра. При включении Content Translation Drupal запрашивает, какие сущности должны поддерживать перевод. Частая ошибка — не включить перевод для меню и блоков.

Модуль Назначение
Language Базовое управление языками
Locale Перевод интерфейса
Content Translation Перевод контента (ноды, таксономии, блоки)
Config Translation Перевод конфигурации (лейблы полей, типы контента)

Как настроить URL-паттерны для SEO?

Переходим в «Конфигурация → Языки → Добавить язык». Drupal автоматически скачивает переводы интерфейса с drupal.org. Затем настраиваем URL-детекцию:

  • Префикс URL (/ru, /en) — оптимален для SEO и простоты.
  • Домен (ru.site.com, en.site.com) — для крупных порталов с разными доменами.
Метод SEO Удобство пользователя Сложность
Префикс ✅ Лучше для hreflang ✅ Просто 🟢 Лёгкая
Домен ✅ Можно привязать регион ❌ Нужна настройка DNS 🔴 Сложная
Содержимое браузера ❌ Не рекомендуется 🟡 Неявно 🟡 Средняя

Рекомендуемый вариант — префикс URL. Он прост в реализации, даёт понятные URL для пользователя и легко настраивается для hreflang. Доменный вариант требует дополнительной работы с DNS и сервером, но позволяет привязать страну к домену (например, .de). Drupal из коробки поддерживает все три метода.

Как избежать дублей страниц?

Дубли возникают, когда один и тот же контент доступен по нескольким URL. Drupal с включённым Content Translation и правильными алиасами решает это: каждый перевод получает уникальный путь через [node:language]. Модуль Metatag автоматически генерирует rel="alternate" hreflang="..." для всех версий. На практике 80% проблем с дублями уходит после настройки Pathauto и канонических URL. Пример ошибки: забыли включить перевод для таксономии — тогда термины отображаются на всех языках. Проверяйте каждый тип сущности. Важно также настроить canonical URL: модуль Metatag по умолчанию генерирует их на текущую страницу. Если ошиблись с переводом, не удаляйте страницу, а сделайте редирект 301 на правильную версию — это сохранит вес ссылок.

Программное создание перевода

Для автоматизации перевода контента используем API:

use Drupal\node\Entity\Node; $node = Node::load(42); if (!$node->hasTranslation('ru')) { $translated = $node->addTranslation('ru', [ 'title' => 'Заголовок на русском', 'body' => ['value' => '<p>Текст на русском</p>', 'format' => 'full_html'], 'status' => 1, ]); $translated->save(); } 

Этот код полезен при миграции контента или массовом добавлении переводов через скрипты.

Перевод конфигурации и интерфейса

Лейблы полей, help-тексты, названия типов контента переводятся через «Конфигурация → Переводы». Можно экспортировать и импортировать .po-файлы:

drush config:export # Отредактировать locale/*.po drush locale:import ru /path/to/ru.po 

Импорт .po-файлов удобен при развёртывании сайта на нескольких языках — можно подготовить переводы заранее.

hreflang и SEO: что важно знать?

Drupal через модуль Metatag автоматически добавляет rel="alternate" hreflang="..." для всех переводов. Убедитесь, что URL-алиасы уникальны для каждой локали. Pathauto создаёт алиасы по шаблону с [node:language]. Статистика: правильный hreflang увеличивает CTR в поиске на 20–30%, а также снижает показатель отказов на 15%, так как пользователи попадают на нужную языковую версию.

Если используете кастомные сущности, hreflang придётся добавить руками через hook_entity_view_alter:

function mymodule_entity_view_alter(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display) { if ($entity->hasTranslationLanguages()) { foreach ($entity->getTranslationLanguages() as $langcode => $language) { $build['#attached']['html_head_link'][] = [ 'rel' => 'alternate', 'hreflang' => $langcode, 'href' => $entity->toUrl('canonical', ['language' => $language])->toString(), ]; } } } 

Некоторые сервисы проверки hreflang, например Merkle, помогают убедиться, что теги расставлены корректно.

Проблемы, которые решаем

Одна из частых проблем — дубли страниц из-за непереведённой таксономии. В проекте ритейлера с 3 языками мы обнаружили, что термины таксономии не переводились, и все вариации товаров показывались на русском. После включения перевода таксономии и настройки Pathauto с шаблоном [term:language]/[term:name] трафик из Польши вырос на 68% за месяц. Другая проблема — отсутствие hreflang для кастомных сущностей: пришлось реализовать hook_entity_view_alter, как показано выше. Результат — рост CTR на 25%.

Что входит в работу

  • Аудит структуры контента и текущих переводов.
  • Включение и настройка мультиязычных модулей.
  • Добавление языков и настройка URL-паттерна.
  • Настройка перевода для всех типов контента, таксономии, меню и блоков.
  • Перевод интерфейса административной части.
  • Настройка hreflang и канонических URL.
  • Тестирование дублей и редиректов.
  • Документация и обучение команды.

Объём и результаты

  • Аудит структуры контента: выявление дублей, отсутствия hreflang, неправильных редиректов.
  • Включение и настройка мультиязычных модулей.
  • Добавление языков и выбор URL-паттерна.
  • Настройка перевода для всех типов контента, таксономии, меню и блоков.
  • Перевод интерфейса административной части через .po-файлы.
  • Настройка hreflang и канонических URL.
  • Тестирование дублей и редиректов.
  • Документация и обучение команды.

Сроки и процесс

  1. Анализ структуры контента (1 день)
  2. Конфигурация модулей и URL-паттерна (1 день)
  3. Настройка перевода полей и конфигурации (1–2 дня)
  4. Тестирование SEO и корректности hreflang (1 день)
  5. Деплой и документация (1 день)

Ориентировочные сроки: от 2 до 5 дней в зависимости от количества языков и типов контента. Гарантируем корректную работу hreflang и отсутствие дублей. Свяжитесь с нами для аудита вашего проекта — мы бесплатно оценим текущую ситуацию и предложим оптимальное решение. Закажите настройку мультиязычности, чтобы избежать типичных ошибок и потерянного трафика.