MANTRA: три быстрых сайта под отдельные ЖК вместо одного тяжёлого на Tilda
Три лёгких сайта под отдельные ЖК вместо одного тяжёлого на Tilda: HTML главной в 45 раз меньше, а все три собраны из одного исходника.


Задача
MANTRA — московская студия дизайна интерьеров. Её основной сайт, mantra-design.ru, собран на Tilda и рассказывает обо всём сразу: портфолио, услуги, цены, команда. Одна только HTML-разметка главной весит 1,3 МБ, а сама страница тянет 73 файла с десяти доменов.
Но клиенты студии часто ищут не «дизайн интерьера» вообще, а ремонт в конкретном доме — «дизайн квартиры в ЖК Opus». На такой запрос общий сайт отвечает плохо: он не про этот дом, и он тяжёлый. Для улучшения SEO мы решили сделать под каждый жилой комплекс, где работает студия, отдельный небольшой сайт — целиком про этот дом и максимально быстрый.
Republic — первый сайт семейства


Один исходник — много сайтов
Сайты похожи внешне, но различаются контентом. Шаблоны, стили, скрипты, шрифты и API живут в отдельном репозитории mantra-kit. Каждый сайт — самостоятельная установка ProcessWire со своей базой, но своё у него только конфигурация, фирменные цвета, логотипы и контент. Всё остальное подключено из kit.
Подключение — ссылками на каталоги. Девять каталогов kit монтируются в сайт как NTFS junction. Файлы, которые ProcessWire открывает по точному пути, — init.php, ready.php и другие — это заглушки, которые подгружают своё тело из kit; .htaccess и файлы сборки копируются и сверяются при каждом запуске. Скрипт подключения можно запускать сколько угодно раз: то, что уже подключено правильно, он не трогает, старое сохраняет в резервную копию и отказывается заменять каталог с незакоммиченными правками.
Новый ЖК — это копия и контент. Каждая секция главной сама проверяет, есть ли у сайта для неё содержимое, и молча пропускает пустые. Поэтому один и тот же шаблон работает и на сайте с шестью секциями, и на сайте с девятью.
Opus и Voxhall






opus-design.ru и voxhall-design.ru: тот же kit, но свой дом, свои планировки и свой контент
Как сайт подключается к kit
# подключить сайт к kit: один раз, повторный запуск ничего не ломает
.\kit-link.ps1 -Sites voxhall-design.osp
# junction: каталог сайта → каталог mantra-kit
# webroot\site\templates → templates\
# webroot\site\shared → site-shared\
# webroot\site\assets\fonts → fonts\
# webroot\api → api\
# frontend\src\js, src\svg, src\css\_core …
# своё у сайта: site\config.php, frontend\src\css\_site\ (фирменные цвета),
# site\assets\svg\logo-*.svg и контент в базе Правка в kit сразу видна на всех подключённых сайтах — поэтому коммитить в него нужно аккуратно.
Скорость
Лёгкие по устройству. Без конструктора и сторонних CDN: все файлы главной грузятся со своего домена — от 11 до 29 запросов против 73 у основного сайта, а HTML-разметка весит 28−31 КБ вместо 1,3 МБ.
Новая сборка kit. CSS, JS и SVG-спрайт собираются одним проходом; в имени файла — хэш содержимого, поэтому браузер кэширует его на год и никогда не получает устаревшую версию, а на запросе посетителя ничего не компилируется. Шрифты урезаны до латиницы и кириллицы и переведены в woff2: было 387 КБ, стало 114. Картинка первого экрана отдаётся в AVIF или WebP. Первым на новую сборку переехал opus-design.ru.
Свои модули. Статический кэш StaticPages отдаёт готовый HTML без запуска PHP и базы, типограф OutputTransformer расставляет кавычки и неразрывные пробелы. Оба — наши модули ProcessWire, и подключены они к сайтам так же, как kit: исправление в модуле доходит до всех сайтов сразу.


