Після додавання другої мови сайт перестав знаходитися в пошуку — дублі сторінок, зникли hreflang, а контент вручну переносити втомився. Типова ситуація для MODX: без правильної архітектури мультимовність перетворюється на пекло.
Ми реалізували безліч мультимовних проєктів і знаємо, як уникнути цих грабель. Нижче — два перевірені підходи: Babel (контексти) та LangRouter (один контекст). Babel надійніший за LangRouter у 2–3 рази для великих проєктів, але не завжди потрібен.
Як вибрати між Babel і LangRouter?
Коли потрібні контексти з Babel?
Контексти з Babel — стандарт для сайтів з об'ємним контентом: інтернет-магазини, портали, новинні стрічки. Кожна мова отримує окреме дерево ресурсів, свої шаблони та налаштування. Babel пов'язує відповідні сторінки різних контекстів, щоб перемикач працював коректно.
Економія на підтримці — до 40% завдяки чіткому розділенню. Наприклад, на одному з проєктів з трьома мовами (російська, англійська, німецька) ми скоротили час на додавання нового контенту на 35% після впровадження Babel.
Коли достатньо LangRouter?
LangRouter підходить, якщо контент однаковий на всіх мовах — наприклад, корпоративний сайт з кількома сторінками. Він працює в одному контексті, перемикає мову через префікс URL і змінює cultureKey. Мінус: усі ресурси змішані, складніше керувати перекладами. Окупність налаштування — за 2–3 місяці.
Чому Babel кращий для SEO?
Babel дозволяє задати точні hreflang-посилання для кожної пари ресурсів. Це критично для ранжування в різних регіонах: без правильного hreflang пошукові системи бачать дублікати й знижують сайт. Babel також підтримує x-default, що вказує на основну версію.
LangRouter не дає такої гнучкості — hreflang доводиться налаштовувати вручну через чанки. Як зазначено в документації Babel, Babel автоматично генерує hreflang для пов'язаних ресурсів, що знижує ризик помилок на 60%.
Покрокове налаштування Babel
- Встановіть Babel через Package Manager.
- Налаштуйте системні параметри — укажіть контексти, їх префікси.
- Створіть ресурси в кожному контексті та зв'яжіть їх через Babel.
- Додайте перемикач мов за допомогою BabelLinks.
- Налаштуйте hreflang для SEO.
Встановлення та конфігурація
// Package Manager → Babel
Системні налаштування Babel:
babel.sites = web,en,de babel.contextPrefix_en = en/ babel.contextPrefix_de = de/ babel.contextPrefix_web =
Виведення перемикача мов
[[!BabelLinks? &tpl=`@INLINE <a href="[[+url]]" hreflang="[[+cultureKey]]" class="lang-switch [[+active:is=`1`:then=`lang-switch--active`]]"> [[+cultureKey:upper]] </a> ` &activeCls=`active` ]]
BabelLinks автоматично створює посилання на пов'язані ресурси в інших контекстах.
hreflang для SEO
[[!BabelLinks? &tpl=`@INLINE <link rel="alternate" hreflang="[[+cultureKey]]" href="[[+url]]">` &toPlaceholder=`hreflang` ]]
<head>
[[+hreflang]]
<link rel="alternate" hreflang="x-default" href="[[++site_url]]">
</head>
Типові помилки при налаштуванні мультимовності
- Відсутність зв'язку ресурсів у Babel. Якщо не зв'язати ресурси різних контекстів, перемикач мов буде вести на головну або 404. Завжди перевіряйте зв'язки після створення нового ресурсу.
- Неправильні префікси контекстів. Якщо префікс не відповідає фактичному URL, hreflang зламається. Переконайтеся, що префікси збігаються з налаштуваннями сервера.
- Ігнорування x-default. Без x-default пошуковик може сам вибрати мову для регіону, що знижує релевантність. Обов'язково додайте link з hreflang="x-default" на основну версію.
Порівняння Babel і LangRouter
| Параметр | Контексти + Babel | LangRouter |
|---|---|---|
| Розділення контенту | Повне (власні ресурси) | Одне дерево (TV або лексикони) |
| Підходить для | Великі сайти, інтернет-магазини | Невеликі проєкти, корпоративні сайти |
| Надійність | Висока (різні контексти) | Середня (один контекст) |
| Складність налаштування | Середня (контексти + зв'язки) | Низька (один пакет) |
| Гнучкість | Максимальна (власні шаблони та налаштування) | Обмежена |
Терміни налаштування (орієнтовно)
| Підхід | Терміни (робочі дні) | Складність |
|---|---|---|
| Контексти + Babel | 2–3 | Середня |
| LangRouter | 1–2 | Низька |
Що входить у роботу з налаштування мультимовності
- Аналіз архітектури — вибір підходу (Babel/LangRouter), оптимізація.
- Налаштування контекстів (якщо Babel): створення, прив'язка доменів.
- Встановлення та конфігурація Babel/LangRouter.
- Створення зв'язків ресурсів (для Babel).
- Розробка перемикача мов.
- Налаштування hreflang, sitemap для кожної мови.
- Документація та навчання: передача інструкцій щодо додавання нових мов.
- Гарантія: виправлення помилок протягом 30 днів після здачі.
Терміни та гарантії
Налаштування двох мов через Babel з перемикачем і hreflang — від 2 до 3 робочих днів. При використанні LangRouter — швидше, від 1 дня. Рекомендуємо Babel (GitHub) для проєктів з високими вимогами до SEO. Ми гарантуємо стабільну роботу обраного рішення.
Щоб не помилитися з архітектурою, зв'яжіться з нами. Ми оцінимо ваш проєкт і підберемо оптимальне рішення. Отримайте консультацію щодо налаштування мультимовності — ми підберемо оптимальний підхід для вашого проєкту.







