БонусБесплатный первый месяц абонентской поддержки при заказе разработки «под ключ»

Композитный сайт в 1С-Битрикс: как он ускоряет магазин

Композитный сайт в 1С-Битрикс: статическая часть страницы отдаётся мгновенно, динамика догружается отдельным запросом

Покупатель кликает по ссылке на товар и пару секунд смотрит на белый экран, пока сервер собирает страницу: запускает ядро, тянет данные из базы, склеивает шаблон. На сотне посетителей это терпимо, но в час пик и на большом каталоге задержка превращается в отказы — человек не дожидается и уходит. В 1С-Битрикс с этим борется отдельная технология ускорения — композитный сайт, которая отдаёт готовую страницу почти мгновенно, ещё до запуска тяжёлой логики.

Ниже — практический разбор: как устроен композит, что выносить в динамику, как включить его так, чтобы не сломать корзину и авторизацию, и как прогревать кэш после обмена с 1С. Это выжимка из наших проектов по разработке и ускорению интернет-магазинов на 1С-Битрикс — без теории ради теории.

Коротко

  • Композит делит страницу на статику (отдаётся мгновенно из кэша) и динамику (корзина, авторизация — догружается отдельным запросом).
  • Главный выигрыш — резкое снижение времени до первого экрана и улучшение Core Web Vitals на главной, в каталоге и карточках.
  • Перед включением нужно правильно вынести все персональные блоки в динамику, иначе посетитель увидит в кэше чужую корзину.
  • После большого обмена с 1С композит сбрасывают по тегам и прогревают ключевые страницы в часы низкой нагрузки.

Что такое композитный сайт и зачем он нужен

Композитный сайт (часто говорят просто «композит») — это штатная технология ускорения в 1С-Битрикс. Её идея в том, что большая часть страницы у разных посетителей одинакова: шапка, меню, тело раздела, карточка товара, подвал. Эту общую часть нет смысла пересобирать на каждый запрос — её можно один раз сохранить как готовый HTML и отдавать мгновенно, а персональные мелочи (корзина, имя пользователя) подгружать отдельно.

Без композита каждый клик по сайту запускает полный цикл: ядро Битрикса, пролог, отработку компонентов, эпилог, сборку шаблона. Даже при включённом кэшировании компонентов на это уходит время, и на тяжёлом каталоге или скромном хостинге задержка ощутима. Композит разрывает эту зависимость: статическая страница отдаётся ещё до того, как стартует тяжёлая часть платформы.

Какую проблему решает композит

Композит закрывает несколько связанных болей магазина одновременно:

Кому композит особенно полезен

Чем больше у сайта посещаемых страниц с объёмной статической частью, тем заметнее эффект. Композит окупается быстрее всего на магазинах с большим каталогом и высоким трафиком, на проектах с заметной долей мобильных посетителей (где медленные сети особенно «штрафуют» долгую загрузку) и на сайтах, которые в пики упираются в ресурсы хостинга. Небольшому сайту-визитке композит тоже не повредит, но драматического выигрыша там может и не быть — там обычно хватает обычного кэширования.

Как устроен композит: статика и динамика

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

Сценарий выглядит так: браузер запрашивает страницу, сервер мгновенно отдаёт сохранённый статический HTML (его видно почти сразу), а сразу за этим выполняется второй, быстрый запрос за динамикой, который «оживляет» корзину и персональные блоки. Для посетителя это выглядит как «страница открылась моментально, а корзина появилась через долю секунды».

Браузер Статика из кэша мгновенно, ~десятки мс Динамика отдельно корзина, авторизация Хранилище кэша Итог для посетителя: 1. Видит вёрстку, меню и контент почти сразу (статика). 2. Корзина и имя пользователя «оживают» через долю секунды (динамика).
Схема: статическая часть страницы отдаётся мгновенно из кэша, а персональная динамика догружается отдельным быстрым запросом поверх неё.

Чем композит отличается от обычного кэширования

Частый вопрос: «У меня же включён кэш компонентов — зачем ещё композит?». Разница принципиальная, и понять её — значит понять, почему композит даёт другой порядок скорости.

При кэшировании компонентов ускоряется сборка отдельных блоков: список товаров, меню, баннеры берутся из кэша, а не считаются заново. Но сама страница всё равно собирается на каждый запрос — запускается ядро, отрабатывают пролог и эпилог, склеиваются кэши всех компонентов в единый HTML. Это быстрее, чем без кэша, но это всё ещё полный цикл работы платформы.

Композит идёт дальше: он кэширует уже собранную целиком HTML-страницу и отдаёт её до запуска тяжёлой части ядра. Грубая аналогия: кэш компонентов экономит «изготовление деталей», а композит экономит ещё и «сборку изделия из деталей». Поэтому отдача статики измеряется десятками миллисекунд, а не сотнями.

КритерийКэш компонентовКомпозитный сайт
Что кэшируетсяОтдельные блоки страницыВся статическая HTML-страница целиком
Запуск ядра на запросДа, на каждый запросНет, статика отдаётся до тяжёлого ядра
Скорость отдачи статикиСотни миллисекундДесятки миллисекунд
Персональные блокиСчитаются в общем потокеВыносятся в отдельную динамику
Эффект на LCPУмеренныйЗначительный

Важно: композит не отменяет кэш компонентов, а надстраивается над ним. Динамическая часть страницы по-прежнему пользуется кэшем компонентов, поэтому грамотно настроенное кэширование — фундамент, на котором композит работает максимально эффективно.

Что выносить в динамику, а что оставить в статике

Главное проектное решение при внедрении композита — провести границу между статикой и динамикой. Ошибка здесь стоит дорого: если персональный блок останется в статике, его закэшированное значение увидят все посетители. Правило простое: в динамику выносится всё, что зависит от конкретного пользователя или быстро меняется.

БлокСлойПочему
Шапка, логотип, менюСтатикаОдинаковы для всех посетителей
Контент раздела, фото и описание товараСтатикаНе зависят от пользователя, меняются редко
Подвал, контакты, баннерыСтатикаОбщие для всех
Корзина в шапке (товары, сумма)ДинамикаПерсональна для каждого посетителя
Блок авторизации, имя пользователяДинамикаЗависит от того, кто вошёл
Персональные и оптовые ценыДинамикаРазличаются по группе клиента
«Купить / в корзине» на карточкеДинамикаЗависит от состава корзины
Последние просмотренные, рекомендацииДинамикаПерсональны или часто меняются

Особое внимание — ценам. Если у вас B2B-магазин с разными ценами для розницы и опта, цена обязана быть динамической: иначе авторизованный оптовик может увидеть закэшированную розничную цену или наоборот. Как устроены такие цены по группам клиентов, мы разбираем в материале про обмен с 1С по CommerceML — типы цен приходят из учётной системы, а на витрине их нужно аккуратно показать нужной группе, не закэшировав «для всех».

Пошаговое включение композита

Включение композита — это не одна «галочка», а последовательность шагов, где главная работа приходится на проверку динамических зон. Общий порядок такой:

  1. Наведите порядок с кэшированием. Убедитесь, что у компонентов включён кэш (лучше «Авто» / управляемый кэш). Композит надстраивается над кэшем, поэтому сначала фундамент.
  2. Составьте карту динамических зон. Пройдитесь по шаблону и выпишите все персональные блоки: корзина, авторизация, цены, кнопки покупки, личные рекомендации. Это будущая динамика.
  3. Пометьте динамику в шаблоне. Оберните персональные области как динамические — чтобы композит исключил их из статического кэша и подгружал отдельно.
  4. Включите композит на копии. Сначала на тестовой площадке, а не на боевом сайте: так вы спокойно отловите блоки, которые забыли вынести в динамику.
  5. Проверьте под разными пользователями. Зайдите как гость, как розничный и как оптовый клиент. Убедитесь, что каждый видит свою корзину и свои цены, а не закэшированные чужие.
  6. Замерьте скорость. Сравните время до первого экрана и метрики Core Web Vitals до и после. Так вы увидите реальный эффект, а не «кажется, стало быстрее».
  7. Перенесите на боевой сайт. Только после чистой проверки на копии включайте композит на проде и ещё раз прогоните сценарии корзины и авторизации.
Правило копии: никогда не включайте композит первый раз сразу на боевом магазине. Незамеченная персональная зона в статике — это риск показать одному посетителю корзину или цены другого. На копии такая ошибка стоит минут, на проде — репутации.

Как не сломать корзину и авторизацию

Самый частый страх перед композитом — «а вдруг сломается корзина». Страх обоснован ровно настолько, насколько небрежно проведена граница статики и динамики. Разберём типичные риски и как их закрыть.

Корзина в шапке

Корзина — персональный блок номер один. Если она попала в статику, первый посетитель «запечатает» в кэше своё содержимое, и следующие увидят его товары и сумму. Лечится однозначно: блок корзины помечается как динамический и подгружается отдельным запросом. Тогда у каждого посетителя своя корзина, а статическая страница остаётся общей.

Авторизация и имя пользователя

То же касается блока входа. Гость должен видеть «Войти», авторизованный — своё имя и кабинет. В статике это смешается. Поэтому область авторизации всегда динамическая. Заодно проверьте все места, где есть условие «для авторизованных» — скрытые цены, кнопки «оптовый заказ», персональные ссылки.

Кнопки «купить» и состояние товара

На карточке и в списке кнопка может менять вид в зависимости от того, лежит ли товар уже в корзине («Купить» против «В корзине»). Это состояние персональное, поэтому сама кнопка-действие — динамическая, а описание и фото товара спокойно остаются в статике. Граница проходит точно по линии «общее для всех / зависит от пользователя».

Проверка под тремя ролями. Минимальный тест после включения композита — пройти сайт гостем, розничным покупателем и оптовиком, добавляя товары в корзину. Если каждая роль видит своё, граница проведена верно. Если кто-то видит чужую корзину или цену — ищите персональный блок, оставшийся в статике.

Хранилище композитного кэша и прогрев

Скорость композита зависит не только от того, что закэшировано, но и от того, где это хранится и насколько кэш «тёплый». Композитный HTML можно хранить по-разному, и выбор влияет на отдачу.

Отдельная тема — прогрев. «Холодная» страница, которой ещё нет в кэше, собирается обычным тяжёлым способом — и первый посетитель ловит ту самую задержку, ради устранения которой композит и ставили. Чтобы этого избежать, ключевые страницы прогревают: после сброса кэша по ним проходят заранее (по расписанию или ботом-прогревом), чтобы к приходу живых посетителей статика уже лежала готовой.

Прогрев особенно важен для главной, верхних разделов каталога и популярных карточек — тех страниц, куда приходит основной трафик. Прогревать весь каталог из десятков тысяч страниц разом смысла нет; разумнее прогреть «горячую» верхушку и дать остальным страницам собраться по первому обращению.

Композит и обмен с 1С: сброс по событию

Композитный кэш не вечен — иначе посетитель видел бы вчерашние цены и остатки. Он сбрасывается по двум причинам: по истечении времени жизни (TTL) и по тегам инфоблоков при изменении данных. Когда товар правят через интерфейс, связанные страницы помечаются на пересборку автоматически — это работает «из коробки».

Сложности начинаются при массовом обмене с 1С. Обмен заливает в базу тысячи позиций пакетно, и если он идёт в обход стандартных событий, тегированный сброс может не сработать как нужно — на витрине останется устаревшая статика. Поэтому после планового обмена композит удобно дополнительно сбросить и прогреть по расписанию, в часы низкой нагрузки.

Логика здесь ровно та же, что и с фасетным индексом умного фильтра: после массовых операций кэш надо обновить и прогреть, иначе данные на витрине разойдутся с учётом. Мы подробно разбирали этот механизм в статье про умный фильтр и фасетный индекс — там та же дисциплина «обмен → перестроение → прогрев». Композит и фильтр удобно обновлять одной ночной процедурой после обмена.

Связка с обменом. Поставьте на агент или планировщик сценарий: после ночного обмена с 1С — сброс композита по нужным разделам и прогрев главной и верхних категорий. Тогда днём витрина всегда работает на свежей и тёплой статике.

Композит и Core Web Vitals

Скорость — это не только ощущение, но и измеримые метрики Core Web Vitals, которые учитывает поиск. Композит влияет на них напрямую, и полезно понимать, на какие именно.

Важно не переоценивать композит: он лечит «медленный бэкенд и долгую сборку страницы», но не чинит тяжёлый JavaScript, неоптимизированные картинки или сдвиги вёрстки. Это разные источники проблем, и Core Web Vitals улучшают комплексно. Как именно проседают LCP, CLS и INP в магазине на Битриксе и чем их лечить по отдельности — тема нашего материала про Core Web Vitals для интернет-магазина. Композит там — один из инструментов, и очень мощный, но не единственный.

Каким страницам магазина композит нужнее всего

Композит даёт максимум там, где много трафика и большая статическая часть. Разложим по типам страниц.

Тип страницыЭффект композитаПочему
ГлавнаяВысокийМного трафика, большая статика, мало персонального
Разделы каталогаВысокийТяжёлые в сборке, посещаются часто, статика преобладает
Карточка товараВысокийОписание и фото статичны, динамична лишь кнопка и цена
Посадочные и статьиВысокийПочти полностью статичный контент
КорзинаНизкий / исключаютПочти целиком персональна и динамична
Оформление заказаИсключаютПолностью динамический сценарий с личными данными
Личный кабинетИсключаютВсе данные персональные, кэшировать нечего

Вывод практичный: композит включают на «витринных» страницах, где статика преобладает, и исключают на «персональных» — корзине, оформлении, кабинете. Такое разделение даёт максимум скорости там, где она нужна, и не создаёт рисков там, где всё равно всё персональное.

Частые ошибки при внедрении композита

Большинство проблем с композитом повторяются из проекта в проект. Зная их заранее, вы сэкономите дни отладки.

Чек-лист перед включением композита

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

Когда композита недостаточно

Композит — мощный, но не единственный инструмент скорости. Бывают ситуации, где он маскирует проблему, а не решает её, и нужен более глубокий разбор архитектуры:

В таких случаях скорость лечат комплексно: оптимизация запросов и кэширования, работа с фронтендом, при необходимости — пересмотр инфраструктуры, и только поверх всего — композит как финальный ускоритель. Если магазин стабильно тормозит и непонятно, где узкое место, разумно начать с аудита: посмотреть смежные услуги в каталоге всех услуг B2Bsite или сразу заняться ускорением сайта на 1С-Битрикс, где композит — лишь часть набора инструментов. На уже работающем магазине ускорение нередко идёт рука об руку с технической поддержкой: композит, кэш и прогрев нужно не только включить, но и поддерживать в актуальном состоянии после каждого обмена и обновления.

Вывод

Композитный сайт в 1С-Битрикс — это не «волшебная кнопка», а аккуратное разделение страницы на статику и динамику. Статическая часть отдаётся посетителю мгновенно из кэша, а персональные блоки — корзина, авторизация, цены — догружаются отдельным быстрым запросом. В результате витрина «открывается сразу», улучшаются Core Web Vitals, а сервер легче переживает пики трафика.

Главное при внедрении — честно провести границу динамических зон, проверить сайт под всеми ролями, наладить прогрев и сброс кэша после обмена с 1С. Сделайте эти вещи как следует — и композит станет самым заметным ускорителем магазина при минимуме рисков.

Частые вопросы

Что такое композитный сайт в 1С-Битрикс простыми словами?

Композитный сайт — это технология ускорения, при которой страница делится на две части: статическую (шапка, меню, тело страницы, подвал) и динамическую (корзина, авторизация, личные данные). Статическую часть Битрикс кэширует целиком и отдаёт посетителю мгновенно, ещё до запуска тяжёлой логики PHP, а динамику догружает отдельным быстрым запросом. Покупатель видит готовую страницу почти сразу, что заметно улучшает воспринимаемую скорость и Core Web Vitals.

Чем композит отличается от обычного кэширования компонентов?

Кэширование компонентов ускоряет отдельные блоки, но страница всё равно собирается на каждый запрос: запускается ядро, отрабатывают пролог и эпилог, склеиваются кэши компонентов. Композит кэширует уже собранную HTML-страницу целиком и отдаёт её до запуска тяжёлой части ядра. Грубо: кэш компонентов экономит «сборку деталей», а композит экономит ещё и саму «сборку страницы» — поэтому отдача статики измеряется десятками миллисекунд.

Не сломает ли композит корзину, авторизацию и личный кабинет?

Не сломает, если правильно вынести персональные блоки в динамику. Корзина в шапке, имя авторизованного пользователя, его цены и кнопки «купить» помечаются как динамические области и подгружаются отдельным запросом поверх статической страницы. Ошибки возникают, когда персональный блок забыли вынести в динамику — тогда один посетитель может увидеть в кэше чужую корзину. Поэтому состав динамических зон проектируют до включения композита и обязательно проверяют под разными пользователями.

Каким страницам магазина композит помогает больше всего?

Сильнее всего выигрывают часто посещаемые и тяжёлые в сборке страницы с большой статической частью: главная, разделы каталога, посадочные и карточки товара. На них статика занимает основную площадь экрана, а персонального — немного, поэтому композит отдаёт почти всю страницу мгновенно. Страницы оформления заказа, корзины и личного кабинета почти полностью динамические, их обычно из композита исключают.

Нужно ли перестраивать композитный кэш после обмена с 1С?

Композитный кэш живёт по времени жизни (TTL) и по тегам инфоблоков: при изменении товара связанные страницы помечаются на пересборку. После большого обмена с 1С удобно дополнительно сбросить композит по расписанию и прогреть ключевые страницы, чтобы первый посетитель не попал на «холодную» сборку. Это та же логика, что и с фасетным индексом умного фильтра: после массовых операций кэш стоит обновить и прогреть в часы низкой нагрузки.

Композит ускорит сайт, если он тормозит из-за тяжёлого хостинга?

Частично. Композит снимает повторную сборку страниц и резко сокращает время до первого байта для статики, поэтому даже на скромном хостинге витрина начинает «открываться мгновенно». Но если узкое место — медленная база, нехватка памяти или тяжёлый необработанный код, композит замаскирует проблему лишь до первого динамического запроса. Правильный порядок: сначала навести порядок с кэшированием и запросами, затем включить композит как финальный ускоритель.

Чем композит помогает SEO и продвижению?

Скорость загрузки — фактор ранжирования и поведения. Композит улучшает метрики Core Web Vitals (особенно LCP и в связке с правильной вёрсткой — CLS), снижает отказы из-за долгой загрузки и помогает поисковому роботу быстрее обходить большой каталог. Это не «магия для топа», а устранение технического тормоза, который иначе тянет вниз и позиции, и конверсию.

Поделиться:

Хотите, чтобы магазин открывался мгновенно?

Настроим кэширование и композитный сайт, разнесём статику и динамику без поломки корзины, наладим прогрев и сброс после обмена с 1С. Рассчитаем работу по вашему магазину.

Услуга «Ускорение сайта»

Редакция B2Bsite

Команда студии B2Bsite. С 2014 года разрабатываем, ускоряем и поддерживаем интернет-магазины на 1С-Битрикс: кэширование, композитный сайт, Core Web Vitals и обмен с 1С для среднего и крупного бизнеса.

← Все статьи блога