Мультисайт 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 дні

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

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

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

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1467
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1317
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1014
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1276
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1019
  • Розробка веб-сайту для компанії ФІКСПЕР
    Розробка веб-сайту для компанії ФІКСПЕР
    1019

Уявіть: у вас три домени — 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.