БесплатноБесплатный аудит сайта и кода на 1С-Битрикс при заказе доработки или поддержки

Как ускорить загрузку каталога с тысячами товаров

Ускорение большого каталога на 1С-Битрикс: кэш компонентов, композитный сайт, фасетный индекс фильтра и оптимизация изображений

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

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

Коротко

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

Почему тормозит большой каталог

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

Если всё это выполняется заново при каждом заходе, база и PHP работают на пределе, а пользователь ждёт. Ускорение — это, по сути, «не делать заново то, что можно взять готовым».

Сначала диагностика, потом лечение

Главная ошибка при ускорении — хвататься за все советы разом, не понимая, что именно тормозит. У одного проекта узкое место — фильтр, у другого — картинки, у третьего — база или хостинг. Поэтому начинают с измерения.

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

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

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

Кэширование компонентов каталога

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

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

Композитный сайт для раздела

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

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

Умный фильтр и фасетный индекс

Умный фильтр (catalog.smart.filter) — одно из самых тяжёлых мест большого каталога. При каждом запросе он считает, какие значения свойств доступны и сколько товаров под каждым, чтобы показывать корректные счётчики и отсекать пустые варианты. На каталоге с тысячами товаров и десятками свойств это дорого.

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

Оптимизация запросов и индексы базы

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

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

Пагинация и подгрузка товаров

Сколько товаров показывать на странице раздела — вопрос и удобства, и скорости. Вывод сотен позиций разом замедляет всё: генерацию на сервере, передачу, отрисовку в браузере и загрузку изображений. Разумный размер страницы — 24–48 товаров.

СпособПлюсыКогда использовать
Классическая пагинацияПредсказуемо, дружит с SEOКаталоги, где важна индексация страниц
Кнопка «Показать ещё»Меньше кликов, контроль пользователяСредние разделы
Бесконечная прокруткаПлавный просмотрМобильные витрины, но осторожно с SEO

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

Изображения: WebP и ленивая загрузка

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

Наличие и цены без потери скорости

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

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

Инфраструктура и кэш-хранилища

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

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

Частые ошибки

Чек-лист ускорения

  1. Диагностика. Монитор производительности и профилирование выявили узкое место.
  2. Кэш компонентов. Список раздела и фильтр кэшируются с тегированием.
  3. Композитный сайт. Статика отдаётся из кэша, персональные данные догружаются.
  4. Фасетный индекс. Умный фильтр работает через индекс, а не запросы на лету.
  5. Запросы и индексы. Выборки оптимизированы, нужные поля проиндексированы.
  6. Пагинация. На страницу 24–48 товаров, остальное — постранично.
  7. Изображения. WebP, превью, ленивая загрузка, адаптивные размеры.
  8. Инфраструктура. Быстрый кэш-бэкенд и достаточные ресурсы сервера.

Вывод

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

Ключ — действовать по данным: сначала измерить узкое место, потом устранять его в правильном порядке. Тогда каталог открывается за доли секунды, фильтр отвечает мгновенно, а наличие и цены остаются актуальными за счёт связки с 1С. Это и есть быстрый каталог, который не теряет покупателя на загрузке.

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

Почему большой каталог на 1С-Битрикс тормозит?

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

Что даёт композитный сайт для каталога?

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

Нужно ли кэшировать умный фильтр?

Да, кэширование фильтра — один из ключевых факторов скорости раздела. Компонент catalog.smart.filter при каждом запросе считает доступные значения и количество товаров по свойствам, что тяжело для большого каталога. Кэш и фасетный индекс фильтра снимают эту нагрузку, и раздел с фильтром перестаёт «задумываться».

Сколько товаров выводить на страницу раздела?

Разумный размер страницы — 24–48 товаров. Вывод сотен позиций разом замедляет и генерацию страницы, и её отрисовку в браузере, и загрузку изображений. Больше товаров показывают через пагинацию или подгрузку по мере прокрутки, а не одной огромной страницей.

Как изображения влияют на скорость каталога?

Сильно: в разделе десятки картинок товаров, и если они тяжёлые и без адаптивных размеров, страница грузится долго, особенно на мобильном. Помогают формат WebP, генерация превью нужного размера, ленивая загрузка (lazy loading) и корректные размеры под сетку каталога.

Помогает ли фасетный индекс умного фильтра?

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

С чего начать ускорение существующего каталога?

С диагностики: монитор производительности 1С-Битрикс и профилирование покажут, что именно тормозит — база, PHP, кэш или фронтенд. Сначала включают кэширование компонентов и композитный сайт, затем оптимизируют запросы и фильтр, потом изображения. Действовать вслепую по «всем советам сразу» неэффективно.

Поделиться:

Каталог открывается медленно?

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

Аудит и оптимизация

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

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

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