Композитный сайт в 1С-Битрикс: ускорение без случайных поломок

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

Композит полезен, когда его проверили на реальных сценариях. Включить галочку и сразу считать задачу закрытой — рискованно.

Что можно кэшировать

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

  • корзина;
  • избранное;
  • блок авторизации;
  • персональные цены;
  • регион пользователя;
  • уведомления и счетчики.

Такие блоки нельзя бездумно оставлять в статической HTML-части.

Проверить динамические области

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

$frame = $this->createFrame()->begin();
?>
    <div class="header-cart">
        <?= $cartCount ?>
    </div>
<?php
$frame->end();

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

Корзина и авторизация

После включения композита обязательно нужно пройти сценарии:

  1. Гость открывает каталог.
  2. Добавляет товар в корзину.
  3. Переходит на другую страницу.
  4. Авторизуется.
  5. Проверяет шапку, корзину, личный кабинет.
  6. Выходит из аккаунта.

Если после этих действий видны старые счетчики или блоки от предыдущего состояния, значит динамические области настроены не полностью.

Исключения из композита

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

Лучше исключить несколько сложных страниц, чем получить быстрый, но неправильный сайт.

Проверить HTML и заголовки

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

curl -I https://example.ru/catalog/

Если подключён CDN или серверный кэш, важно не перепутать его с композитом. Иначе можно лечить не тот слой.

Кэш компонентов внутри композита

Композит не отменяет обычный кэш компонентов. Если список товаров устарел, причина может быть в параметрах компонента, а не в композите. Нужно отдельно смотреть CACHE_TYPE, CACHE_TIME и managed cache.

'CACHE_TYPE' => 'A',
'CACHE_TIME' => 36000000,

Если после очистки компонентного кэша данные обновились, композит был не главным источником проблемы.

Производительность

После включения композита нужно сравнить скорость до и после. Не только главную страницу, но и каталог, карточку товара, статью, раздел услуг. Иногда тяжёлые динамические блоки продолжают тормозить страницу даже при композите.

  • замерить TTFB до включения;
  • включить композит на тесте;
  • проверить пользовательские сценарии;
  • замерить повторные открытия страниц;
  • проверить логи ошибок JavaScript и PHP.

Чек-лист

  1. Определить страницы, где композит безопасен.
  2. Проверить корзину, авторизацию и персональные блоки.
  3. Обернуть динамические блоки в динамические области.
  4. Исключить сложные персональные страницы.
  5. Проверить компонентный кэш отдельно.
  6. Проверить работу с мобильной версией.
  7. Сравнить скорость до и после.
  8. Проверить сайт под гостем и авторизованным пользователем.

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

Комментарии (0)

Пока нет комментариев. Будьте первым!