-10%Переходите к нам от другого подрядчика — дадим скидку на первый этап работ

Бандлинг и code splitting во фронтенде интернет-магазина

Бандлинг и code splitting во фронтенде интернет-магазина на 1С-Битрикс для ускорения загрузки

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

Эта статья — о двух связанных приёмах, которые решают проблему: бандлинге (объединении файлов) и code splitting (разумном разделении кода по страницам). Разберём, как это работает в 1С-Битрикс, что дают штатные механизмы объединения, когда нужен сборщик и как всё это влияет на Core Web Vitals. Если вы взвешиваете переезд на другую платформу ради скорости, сначала загляните в разбор конструкторов и no-code-платформ — часто выигрыш даёт правильная сборка, а не смена движка.

Коротко

  • Бандлинг объединяет файлы, чтобы браузер делал меньше запросов; code splitting делит код по страницам.
  • В 1С-Битрикс есть штатное объединение CSS и JS — базовый бандлинг без сторонних сборщиков.
  • Тяжёлые и редкие блоки выносят в ленивую загрузку, чтобы не грузить их на первом экране.
  • Разумная сборка напрямую улучшает Core Web Vitals — LCP и отзывчивость интерфейса.

Почему фронтенд магазина тяжелеет

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

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

Что такое бандлинг

Бандлинг — это объединение множества отдельных файлов в один или несколько крупных. Вместо того чтобы браузер делал десятки запросов за мелкими скриптами и стилями, он получает несколько собранных файлов. Каждый сетевой запрос имеет накладные расходы, поэтому сокращение их числа само по себе ускоряет загрузку.

Важно понимать границу: бандлинг уменьшает число запросов, но сам по себе не убирает лишний код. Если собрать в один бандл вообще всё, страница получит меньше запросов, но тот же объём ненужного кода. Поэтому бандлинг работает в паре с разделением.

От номенклатуры до витрины каталога Номенклатуратовары из 1ССвойства и SKUхарактеристикиКарточкафото, описаниеИндекспоиск и фильтрКаталогвитрина клиенту
Схема: номенклатура из 1С обрастает свойствами и торговыми предложениями, наполняется контентом карточки и индексируется — так формируется витрина, по которой ищут и фильтруют.

Что такое code splitting

Code splitting — это обратная сторона медали: разумное разделение кода так, чтобы на каждую страницу грузилось только то, что ей действительно нужно. Это не противоречит бандлингу, а дополняет его: сначала код собирают в логичные группы, а затем разбивают по маршрутам и условиям загрузки.

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

ПриёмЧто делаетЭффект
БандлингОбъединяет мелкие файлыМеньше запросов, лучше кэш
Code splittingДелит код по страницам и условиямМеньше лишнего веса на экране
Ленивая загрузкаГрузит код по требованиюБыстрее интерактивность
МинификацияУбирает пробелы и сокращает именаМеньше размер файлов

Вместе эти приёмы дают то, что нужно: минимум запросов и минимум лишнего кода на каждой конкретной странице.

Штатное объединение CSS и JS в Битрикс

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

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

Ленивая загрузка тяжёлых блоков

Ленивая загрузка — отложенная подгрузка кода и ресурсов в момент, когда они реально нужны, а не сразу при открытии страницы. Это один из самых эффективных приёмов для магазина, потому что львиная доля интерфейса на первом экране не задействована.

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

Стратегия загрузки по страницам

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

  1. Общий слой. Код шапки, меню, корзины в шапке — нужен везде, идёт в базовый бандл.
  2. Каталог и фильтр. Скрипты умного фильтра и листинга — только на страницах каталога.
  3. Карточка товара. Галерея, выбор торговых предложений, отзывы — только на карточке.
  4. Корзина и оформление. Логика заказа — только на соответствующих страницах.
  5. Контент. Статьи и информационные страницы обходятся минимумом кода.

Такая карта показывает, что тащить на первый экран каждой страницы, а что грузить условно. Это и есть code splitting на практике — без него сборка превращается в один огромный бандл на все случаи жизни.

Сборщик или штатные механизмы

Частый вопрос: нужен ли современный сборщик или хватит штатных возможностей 1С-Битрикс. Ответ зависит от сложности фронтенда, а не от моды.

Для многих магазинов достаточно штатного объединения CSS и JS, аккуратного подключения ресурсов и ленивой загрузки тяжёлых блоков. Это закрывает базовые проблемы без усложнения инфраструктуры. Сборщик оправдан, когда фронтенд действительно сложный: собственный JavaScript-слой, много интерактивных компонентов, потребность в минификации, хешировании имён файлов и тонком разделении кода по маршрутам.

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

Если сборщик всё же нужен, его встраивают в процесс выкладки кода. Как выстроить надёжный и повторяемый деплой, мы разбираем в статье про CI/CD и деплой Битрикс.

Связь с Core Web Vitals

Оптимизация сборки — это не абстрактная «чистота кода», а прямое влияние на измеримые метрики скорости, которые учитывает поиск. Разберём связь по показателям:

Иными словами, бандлинг и code splitting — это инструменты не только субъективной скорости, но и объективных метрик. Улучшая их, вы одновременно улучшаете пользовательский опыт и технические сигналы для поиска.

Порядок внедрения без поломок

Оптимизация сборки — область, где легко сломать работающий сайт, если действовать резко. Безопасный порядок такой:

  1. Замерьте базу. Зафиксируйте текущие метрики скорости и вес страниц до изменений.
  2. Включите штатное объединение. CSS и JS — первый и самый безопасный шаг, с проверкой ключевых страниц.
  3. Уберите лишние подключения. Отключите компоненты и виджеты, которые грузятся, но не используются.
  4. Добавьте ленивую загрузку. Начните с самых тяжёлых и редких блоков.
  5. Разделите код по страницам. Постепенно, по карте из раздела о стратегии загрузки.
  6. Проверяйте сценарии. Каталог, карточка, корзина, оформление — после каждого изменения.

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

Частые ошибки оптимизации

Чек-лист внедрения

  1. База замерена. Есть цифры скорости и веса страниц до оптимизации.
  2. Объединение включено. Штатное объединение CSS и JS работает, ключевые страницы проверены.
  3. Лишнее отключено. Неиспользуемые компоненты и виджеты не подключаются.
  4. Ленивая загрузка настроена. Тяжёлые и редкие блоки грузятся по требованию.
  5. Код разделён по страницам. На первый экран каждой страницы идёт только нужный код.
  6. Сценарии протестированы. Каталог, карточка, корзина, оформление работают корректно.
  7. Метрики выросли. LCP и отзывчивость улучшились по замерам после внедрения.

Вывод

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

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

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

Что такое бандлинг простыми словами?

Бандлинг — это объединение множества отдельных файлов скриптов и стилей в один или несколько крупных. Раньше каждый компонент подключал свои файлы, и браузер грузил десятки мелких запросов. Бандлинг собирает их вместе, чтобы браузер сделал меньше запросов и быстрее получил нужный код. В 1С-Битрикс есть штатные механизмы объединения CSS и JS, которые делают базовый бандлинг без сторонних сборщиков.

Чем code splitting отличается от бандлинга?

Бандлинг стремится объединить код, а code splitting — наоборот, разумно разделить его так, чтобы на каждую страницу грузилось только то, что ей нужно. Это не противоречие: сначала код собирают в логичные бандлы, а затем разбивают по маршрутам и условиям загрузки. Например, скрипт корзины не нужен на странице статьи, а код галереи товара — на главной. Разделение убирает лишний вес с первого экрана.

Помогает ли объединение файлов в 1С-Битрикс?

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

Что такое ленивая загрузка и когда её применять?

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

Влияет ли сборка фронтенда на Core Web Vitals?

Напрямую. Лишний и заблокированный JavaScript ухудшает время до интерактивности и отзывчивость, а тяжёлые бандлы задерживают отрисовку основного контента. Разумный бандлинг и code splitting уменьшают объём кода на первом экране, убирают блокирующие скрипты и улучшают показатели LCP и INP. Поэтому оптимизация сборки — это не только про скорость субъективно, но и про измеримые метрики, которые учитывает поиск.

Нужен ли современный сборщик для магазина на 1С-Битрикс?

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

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

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

Поделиться:

Фронтенд магазина тормозит и портит метрики?

Разберём, где реальный резерв скорости — в сборке на 1С-Битрикс или в смене платформы, и предложим план без лишнего усложнения.

Разбор платформ

Игорь Воскресенский

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

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