Внедрение композитной технологии

Мы занимались доработками на крупном интернет-магазине, и среди задач были ускорение работы и внедрение композита.

Любой сайт, разработанный на платформе «1С-Битрикс: Управление сайтом», можно перевести в композитный режим работы. Как указано на официальном сайте Битрикс, главные достоинства технологии таковы:

  • Отклик сайта в 100 раз быстрее;
  • Лучшее ранжирование сайтов в Google и Яндекс;
  • И, как следствие, значительный рост конверсии интернет-магазина.

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

обычный сайт


Композитный сайт


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

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

Ниже мы опишем несколько подводных камней, возникающих при включении композита:

  • Если на сайте присутствуют кастомизированные компоненты, они будут блокировать композит на страницах, где они используются. Такие компоненты нужно будет дорабатывать, адаптируя под композитный режим.
  • Часть JS скриптов и вёрстки сайта, сделанных без учета композита, придётся подстраивать под композитный режим, потому что при включении композита меняется логика отработки функции готовности HTML страницы, на которую обычно подвязано много JS скриптов.
  • Если в организации структуры URL и навигации присутствуют проблемы или нестандартные для Битрикса решения, может возникнуть проблема переполнения композитного кеша и его неконтролируемого роста, при котором композит становится неэффективным.
  • Если на сайте присутствуют страницы с измененными URL (такие страницы часто возникают при подключении различных SEO-модулей, например, модуль ASEO, либо другие модули, такие как ЧПУ умного фильтра и т.д.), это тоже может вызвать проблемы в работе композита, который при генерации кеша ориентируется на URL страниц.

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

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