После добавления второго языка сайт перестал находиться в поиске — дубли страниц, пропали 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. Мы гарантируем стабильную работу выбранного решения.
Чтобы не ошибиться с архитектурой, свяжитесь с нами. Мы оценим ваш проект и подберём оптимальное решение. Получите консультацию по настройке мультиязычности — мы подберём оптимальный подход для вашего проекта.







