Технология «Композитный сайт» делит страницу на статическую и динамическую части: статика отдаётся из кэша практически мгновенно, а изменяемые блоки подгружаются AJAX-запросом. Разберём базовую настройку, которая даёт заметный прирост скорости без вмешательства в код шаблона.
Как работает композитный сайт
Обычная страница Битрикс при каждом хите полностью проходит через ядро: инициализируются модули, выполняются запросы к базе, собирается вёрстка. Композит меняет схему отдачи.
- При первом визите страница генерируется как обычно, но её статическая часть (шапка, меню, футер, основной контент) сохраняется в кэш композита.
- Последующим посетителям статика отдаётся напрямую из кэша — быстро, минуя тяжёлую инициализацию ядра.
- Динамические блоки (корзина, авторизация, персональные данные) помечаются специальным образом и подгружаются отдельным AJAX-запросом уже после показа страницы.
В результате пользователь видит контент почти мгновенно, а показатель TTFB для статики стремится к значениям обычного статического HTML.
Включение технологии
Базовое включение занимает пару минут.
- Перейдите в Настройки → Настройки продукта → Композитный сайт.
- На вкладке «Композитный режим» установите «Автоматический стандарт» — это рекомендуемый режим для большинства сайтов.
- Отметьте сайты, для которых включается технология (если их несколько).
- Сохраните настройки.
После сохранения система начнёт формировать композитный кэш при обращениях к страницам. Никаких правок в шаблоне для базового варианта не требуется — Битрикс сам определяет статические и динамические зоны.
Проверить, что страница отдаётся из композита, можно по HTTP-заголовку X-Bitrix-Composite в ответе (значение Cache (200) означает отдачу из кэша).
Режимы работы и хранилище данных
Композит поддерживает несколько режимов. В большинстве случаев подходит автоматический, ручной применяют, когда нужен полный контроль над динамическими областями через API.
| Режим | Когда использовать |
|---|---|
| Автоматический стандарт | Типовой сайт на стандартных компонентах — оптимальный выбор по умолчанию. |
| Автоматический без изменения ядра | Сильно кастомизированные проекты, где нежелательно вмешательство в вывод. |
| Ручной | Разработчик сам размечает динамику через CMain::setPageProperty и функции композита. |
Отдельно настраивается хранилище данных композита (вкладка «Хранилище данных»). Доступны файлы, а также внешние хранилища — memcached и Redis. На нагруженных проектах хранение композита в памяти заметно снижает нагрузку на диск; настройка memcached описана в отдельной статье Базы знаний.
Динамические области и исключения
Персональные блоки нельзя кэшировать одинаково для всех — их нужно исключить из статической части.
- Стандартные компоненты (корзина в шапке, блок авторизации, «Мои заказы») уже помечены как динамические и работают из коробки.
- Свои динамические блоки в вёрстке оборачивают вызовом
<?$APPLICATION->IncludeComponent(...)?>с включённым режимом композита или через API динамических областей. - Целые страницы можно исключить из композита на вкладке «Композитный режим» в поле масок URL — например, личный кабинет
/personal/или страницы оформления заказа.
Важно: если персональный блок случайно попал в статическую часть, разные пользователи увидят чужие данные. После настройки всегда проверяйте страницы под авторизованным и анонимным пользователем.
Проверка и измерение эффекта
Убедитесь, что композит реально работает и ускоряет отдачу.
- Откройте страницу в браузере, затем в панели разработчика (вкладка Network) посмотрите заголовки ответа: должен присутствовать
X-Bitrix-Composite: Cache (200). - Первое обращение к странице даёт
X-Bitrix-Composite: BANили отсутствие заголовка — это нормально, кэш ещё формируется. Обновите страницу. - Сравните
TTFBдо и после включения — для статики он должен упасть в разы. - Оцените долю страниц, отдаваемых из композита, в разделе статистики на странице настроек модуля.
Для комплексной оценки скорости используйте штатный «Монитор производительности» — он покажет общую картину и узкие места, которые композит не закрывает.
Частые ошибки
- Персональные данные в статике. Забыли пометить блок динамическим — авторизованные пользователи видят чужое имя или корзину. Решение: вынести блок в динамическую область или исключить страницу по маске URL.
- Композит не включается на нужных страницах. Проверьте маски исключений: слишком широкая маска (например,
/) может отключить композит для всего сайта. - «Прыгающая» вёрстка. Динамический блок подгружается с задержкой и сдвигает контент. Задайте фиксированные размеры контейнеров в CSS.
- Композит и незакрытое автокэширование компонентов. Если у компонентов отключён кэш, ядро всё равно отрабатывает тяжело при формировании композита. Включайте автокэширование параллельно.
- Хранилище на файлах при высокой нагрузке. На посещаемом сайте это создаёт нагрузку на диск — переведите хранилище композита в memcached или Redis.
Итог
Базовая настройка композитного сайта сводится к трём шагам: включить автоматический стандартный режим, проверить корректность динамических областей и убедиться в отдаче из кэша по заголовку X-Bitrix-Composite.
Композит даёт максимальный эффект на страницах с большим объёмом статики — каталоге, разделах, посадочных. Для полного результата сочетайте его с автокэшированием компонентов, тегированным кэшем и хранением данных в memcached. Тогда сайт остаётся быстрым даже под нагрузкой.