СезонГотовим магазин к высокому сезону и Чёрной пятнице: скорость, нагрузка, акции

Кейс: сокращение времени загрузки тяжёлого каталога

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

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

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

Коротко

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

Задача и симптомы

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

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

Диагностика: что именно тормозит

Ускорение начинают с профилирования, а не с догадок. Тормозить может что угодно, и лечение зависит от причины.

Битрикс даёт инструменты диагностики: отладочную панель со временем выполнения и числом запросов, показатели производительности. Задача этапа — точно назвать узкие места, чтобы не тратить бюджет на то, что и так быстро.

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

Кэширование как первый рычаг

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

Уровень кэшаЧто ускоряетНюанс
Кэш компонентовВывод разделов, списков, блоковКорректный сброс при изменении данных
Управляемый кэшАвтосброс по зависимостямТребует аккуратной настройки
Кэш меню и инфоблоковНавигация и справочникиРедко меняются — хорошо кэшируются
КомпозитПервая отрисовка страницыРазметка статики и динамики

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

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

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

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

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

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

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

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

Запросы к торговому каталогу

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

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

Шаблоны, изображения, фронтенд

Даже быстрый бэкенд можно испортить тяжёлым фронтендом. На каталожных страницах с десятками карточек это особенно чувствительно.

Фронтенд-оптимизация напрямую влияет на Core Web Vitals — метрики, которые важны и для пользователя, и для поисковых систем. На тяжёлом каталоге её нельзя оставлять «на потом».

Обмен с 1С и фоновая нагрузка

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

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

Инфраструктура и хостинг

Инфраструктуру трогают в последнюю очередь — но иногда именно она и есть потолок. Слабый хостинг, неоптимальные настройки веб-сервера, PHP и базы данных усугубляют любые проблемы кода.

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

Измерение результата

Результат оценивают по тем же метрикам, что зафиксировали в начале: время открытия ключевых страниц каталога, скорость работы фильтра, нагрузка на сервер и показатели Core Web Vitals. Сравнивать нужно одни и те же страницы под сопоставимой нагрузкой.

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

Типовые результаты подхода

Обобщая опыт подобных проектов, типичные эффекты выглядят так:

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

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

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

  1. Зафиксирована база. Известно время открытия страниц, скорость фильтра и нагрузка «до».
  2. Проведена диагностика. Точно названы узкие места: база, кэш, фильтр, фронтенд, инфраструктура.
  3. Настроен кэш. Уровни кэширования включены и корректно сбрасываются.
  4. Включён композит. Статика и динамика размечены, первая отрисовка ускорена.
  5. Построен фасеточный индекс. Умный фильтр работает по индексу, свойства почищены.
  6. Оптимизированы запросы. Меньше и легче запросов к торговому каталогу, есть индексы в базе.
  7. Оптимизирован обмен. Частичные обновления и расписание снижают фоновую нагрузку.
  8. Результат измерен. Сравнение до/после на одних страницах и нагрузке; найден следующий предел.

Вывод

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

Типовой результат — заметно более быстрые разделы и фильтр при меньшей нагрузке на сервер и лучших Core Web Vitals. Величина выигрыша тем больше, чем запущеннее был каталог. Главное — измерять до и после и относиться к ускорению как к итеративному процессу, где каждый рычаг проверяется по метрикам.

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

Что считается «тяжёлым» каталогом?

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

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

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

Помогает ли кэширование и какое именно?

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

Что такое композитный сайт и когда он уместен?

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

Почему умный фильтр тормозит и как это лечить?

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

Виновата ли всегда инфраструктура и хостинг?

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

Как обмен с 1С влияет на скорость каталога?

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

Каких результатов реально ждать?

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

Поделиться:

Каталог тормозит под нагрузкой?

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

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

Редакция B2Bsite

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

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