Мультисайт Craft CMS: настройка, локализация и управление контентом

Представьте: у вас три домена — mysite.ru, mysite.com, mysite.de. Раздельные установки Craft CMS на каждом приводят к дублированию кода, рассинхронизации контента и лишним затратам на поддержку. Наша команда с 10+ лет опыта внедрила мультисайты для 30+ проектов — от 2 до 8 языков. Экономия ресурсов

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Мультисайт Craft CMS: настройка, локализация и управление контентом
Средний
~2-3 дня

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

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

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

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

Представьте: у вас три домена — mysite.ru, mysite.com, mysite.de. Раздельные установки Craft CMS на каждом приводят к дублированию кода, рассинхронизации контента и лишним затратам на поддержку. Наша команда с 10+ лет опыта внедрила мультисайты для 30+ проектов — от 2 до 8 языков. Экономия ресурсов заказчиков составила 40–60% по сравнению с раздельными установками. Мы предлагаем проверенное решение — мультисайтовую установку Craft CMS. Гарантируем стабильную работу и корректную индексацию. В этой статье разберём архитектуру, настройку Project Config, управление контентом и локализацию полей.

Архитектура мультисайта: группы, сайты и домены

Настройка начинается с создания групп сайтов и сайтов. Группы объединяют сайты по смыслу (например, «Основные сайты» и «Микросайты»). В каждой группе можно задать несколько сайтов с разными языками, доменами и URL-путями. Стандартная конфигурация включает три сайта для русского, английского и немецкого языков. Для каждого указывается полный URL, что позволяет поисковым системам корректно индексировать все версии.

Для описания конфигурации используйте Project Config — файлы YAML в config/project/sites/. Пример для трёхязычного сайта (все три файла объединены в один блок для краткости):

# config/project/sites/mysite-ru.yaml name: 'My Site RU' handle: mySiteRu language: ru-RU primary: true enabled: true hasUrls: true baseUrl: 'https://mysite.ru/' # config/project/sites/mysite-en.yaml name: 'My Site EN' handle: mySiteEn language: en-US primary: false enabled: true hasUrls: true baseUrl: 'https://mysite.com/' # config/project/sites/mysite-de.yaml name: 'My Site DE' handle: mySiteDe language: de-DE primary: false enabled: true hasUrls: true baseUrl: 'https://mysite.de/' 

После создания сайтов настройте веб-сервер. Все домены должны указывать на один корень:

server { server_name mysite.ru mysite.com mysite.de; root /var/www/mysite/web; # стандартный Craft Nginx конфиг } 

Теперь в каждой секции укажите, как контент распространяется по сайтам. Сравнение методов:

Метод Описание Когда использовать
all Запись создаётся для всех сайтов Контент единый, нужны только переводы текстовых полей
none Только для сайта, где создана Уникальный контент для каждого домена
siteGroup Для сайтов из той же группы Например, отдельная группа для промо-сайтов
language Для сайтов с тем же языком Если несколько сайтов на одном языке, но в разных регионах

Правильный выбор propagationMethod экономит до 40% времени на управлении записями. Пример конфигурации секции с propagationMethod: all:

# config/project/sections/blog.yaml propagationMethod: all siteSettings: mySiteRu: hasUrls: true uriFormat: 'blog/{slug}' template: blog/_entry mySiteEn: hasUrls: true uriFormat: 'en/blog/{slug}' template: blog/_entry mySiteDe: hasUrls: true uriFormat: 'de/blog/{slug}' template: blog/_entry 

Как управлять локализацией полей?

Каждое поле в Craft CMS имеет свойство translationMethod. Для мультисайта это ключевой инструмент. Правильная настройка translationMethod сокращает время на обновление контента на 30–40%. Например, заголовки могут быть разными для каждого сайта, а изображения — общими. Сравнение типичных полей:

Поле translationMethod Описание
title site Свой заголовок для каждого сайта
publishDate none Общая дата публикации
heroImage none Общее изображение для всех версий
body site Уникальный текст для каждого языка
slug site Свой URL для каждого сайта

Такой подход позволяет переиспользовать медиа и служебные поля, сохраняя уникальность текстового контента.

Переключатель языков в шаблоне

Чтобы посетитель мог переключаться между версиями, добавьте в шаблон блок со ссылками на локализованные записи:

{# Список всех версий текущей страницы #} <nav class="language-switcher"> {% for site in craft.app.sites.getAllSites() %} {% set localeEntry = entry.getLocalized().site(site).one() %} {% if localeEntry %} <a href="{{ localeEntry.url }}" lang="{{ site.language | slice(0, 2) }}" {% if site.id == currentSite.id %}aria-current="page"{% endif %}> {{ site.language | upper | slice(0, 2) }} </a> {% endif %} {% endfor %} </nav> {# Контент текущего сайта (автоматически) #} {% set posts = craft.entries().section('blog').all() %} {# Явное указание сайта #} {% set enPosts = craft.entries().section('blog').site('mySiteEn').all() %} 

Переводы интерфейсных строк

Статические строки переводятся через файлы в translations/:

// translations/ru/site.php return [ 'Read more' => 'Читать далее', 'Published on {date}' => 'Опубликовано {date}', ]; 

В Twig используйте фильтр t:

{{ "Read more" | t('site') }} {{ "Published on {date}" | t('site', { date: entry.postDate | date('d.m.Y') }) }} 

Преимущества мультисайта на Craft CMS перед раздельными инсталляциями

Сравнение с альтернативами: мультисайт Craft CMS экономит до 60% времени на обновлениях и снижает риск рассинхронизации контента. Как указано в документации Craft CMS: Project Config позволяет синхронизировать настройки между средами. Процесс развёртывания нового языка занимает от 2 до 4 часов вместо нескольких дней при раздельных установках. Индексация всех версий в поисковых системах происходит в течение 1–2 недель. Для масштабирования вашего интернет-проекта внедрите мультисайтовость — свяжитесь с нами для детальной оценки вашего проекта. Наши инженеры подготовят индивидуальное решение. Закажите консультацию по настройке Craft CMS.

Что входит в настройку мультисайта под ключ?

Комплексная настройка включает:

  • Создание Project Config для всех сайтов и групп
  • Привязку доменов и настройку веб-сервера
  • Конфигурацию секций с оптимальным propagationMethod
  • Локализацию полей и настройку переводов
  • Реализацию переключателя языков
  • Тестирование и фиксацию конфигурации
  • Интеграцию с внешними сервисами (переводчики, CDN) для ускорения загрузки локализованных версий
  • Документацию по добавлению новых языков
  • Поддержку после запуска

Процесс настройки под ключ

Мы выполняем настройку мультисайта за 5 этапов:

  1. Проектирование архитектуры — выбор групп, доменов, языков. Учитываем доменную структуру и языковые предпочтения аудитории.
  2. Создание Project Config для всех сайтов и секций.
  3. Настройка веб-сервера и интеграция с хостингом.
  4. Локализация полей и конфигурация propagationMethod.
  5. Разработка переключателя языков и тестирование.

Project Config позволяет развернуть новые сайты за минуты, а не часы — в 2–3 раза быстрее ручного ввода.

Свяжитесь с нашими инженерами для аудита вашего проекта. Получите консультацию по настройке мультисайта на Craft CMS.