Мультимовність Drupal: налаштування без дублів та з hreflang

Чому мультимовність Drupal втрачає трафік?

Розробка та обслуговування будь-яких видів сайтів:

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

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

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1418
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    983
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1243
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    998

Чому мультимовність 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 та відсутність дублів. Зв'яжіться з нами для аудиту вашого проєкту — ми безкоштовно оцінимо поточну ситуацію та запропонуємо оптимальне рішення. Замовте налаштування мультимовності, щоб уникнути типових помилок та втраченого трафіку.