ФиксИнтернет-магазин на 1С-Битрикс под ключ за 30 дней по фиксированной цене

Кейс: оптимизация каталога с 50 000 SKU

Кейс оптимизации большого каталога с 50 000 SKU на 1С-Битрикс: инфоблоки, умный фильтр, кэш, обмен с 1С

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

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

Коротко

  • Оптимизация начинается с диагностики: сначала измеряют, где теряется время, и только потом чинят.
  • Фундамент скорости — структура инфоблоков и торговых предложений; поверх кривой структуры ускорять малоэффективно.
  • Ключевые меры: индексы, фасетный индекс умного фильтра, многоуровневый кэш, композит и вынос обмена из пика.
  • Типовой эффект — быстрые списки, фильтры и карточки, стабильность под нагрузкой и лучшие Core Web Vitals.

С чего начинается замедление

Большой каталог тормозит не по одной причине, а из-за суммы факторов, каждый из которых по отдельности терпим. Тяжёлые выборки товаров с десятками свойств и торговыми предложениями. Умный фильтр без нужных индексов. Слабое кэширование, из-за которого каждый заход собирает данные заново. Обмен с 1С, который грузит базу в рабочее время. По отдельности — мелочь; вместе на 50 000 SKU — ощутимые задержки.

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

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

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

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

Оптовое ценообразование по группам Группа клиентадилер / оптГруппа ценсвой прайсЦена клиентаиндивидуальнаяЗаказ и отгрузкапо своей цене
Схема: клиент попадает в свою группу, ей соответствует своя группа цен — и заказ оформляется по индивидуальной цене. Один каталог, разные цены для разных клиентов.

Структура инфоблоков и торговых предложений

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

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

Индексы и тяжёлые запросы

Вторая по частоте причина тормозов — запросы к базе без нужных индексов. На 50 000 SKU запрос, который без индекса перебирает всю таблицу, превращается из миллисекунд в секунды, а под нагрузкой множится и кладёт базу.

ПроблемаСимптомМера
Нет индекса на свойстве фильтраФильтр «думает» секундамиИндекс + фасетный индекс
Выборка «взять всё»Медленные списки и карточкиВыбирать только нужные поля
Тяжёлый запрос на каждой страницеСтабильная задержка вездеОптимизация запроса и кэш
Сортировка без индексаМедленная сортировка списковИндекс под сортировку

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

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

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

Что делает фильтр быстрым на десятках тысяч позиций:

  1. Индексируемые свойства. Свойства, по которым идёт фильтрация, должны быть проиндексированы.
  2. Фасетный индекс. Построенный и регулярно переиндексируемый фасетный индекс делает фильтрацию быстрой без перебора базы.
  3. Разумный набор фильтров. Не выводить в фильтр всё подряд — только значимые для выбора свойства.
  4. Актуальность индекса. Переиндексация после изменения данных, чтобы фильтр не врал по наличию.
Ключевой момент: без фасетного индекса каждый клик по фильтру заново перебирает каталог. С ним фильтрация опирается на заранее посчитанную структуру и остаётся быстрой даже при 50 000 SKU. Это одна из самых результативных мер на большом каталоге.

Кэширование и композитный сайт

Даже быстрые запросы не стоит выполнять на каждый заход. Кэширование — обязательный слой оптимизации большого каталога.

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

Обмен с 1С вне пика

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

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

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

Инфраструктура и настройка окружения

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

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

Порядок работ на проекте

Устойчивая последовательность оптимизации большого каталога выглядит так.

  1. Диагностика. Профилируем страницы, находим тяжёлые запросы и узкие места.
  2. Структура данных. Приводим свойства и торговые предложения к разумной модели.
  3. Индексы и запросы. Добавляем индексы, переписываем неоптимальные выборки.
  4. Фильтр. Настраиваем фасетный индекс и разумный набор фильтров.
  5. Кэш и композит. Включаем многоуровневый кэш и композитный сайт с корректным сбросом.
  6. Обмен. Выносим тяжёлые операции из пика, обновляем только изменившееся.
  7. Проверка замерами. Каждую меру подтверждаем измерением до/после.

Чтобы изменения выкатывались безопасно на работающий магазин, помогает настроенный CI/CD-деплой: оптимизации выкладываются предсказуемо и откатываются при проблемах.

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

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

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

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

Чек-лист оптимизации

  1. Диагностика проведена. Известны тяжёлые запросы и узкие места.
  2. Структура в порядке. Свойства и торговые предложения приведены к разумной модели.
  3. Индексы добавлены. Тяжёлые запросы и сортировки проиндексированы.
  4. Фильтр настроен. Фасетный индекс построен и переиндексируется.
  5. Кэш работает. Многоуровневый кэш и композит с корректным сбросом.
  6. Обмен вне пика. Тяжёлые операции — в непиковые часы, обновляется только изменившееся.
  7. Окружение проверено. Ресурсы и настройки базы, кэша и веб-сервера оптимальны.
  8. Эффект измерен. Каждая мера подтверждена замером до/после.

Вывод

Оптимизация каталога на 50 000 SKU — это не поиск волшебной настройки, а системная работа по нескольким направлениям, начинающаяся с диагностики. Фундамент — структура инфоблоков и торговых предложений; поверх кривой структуры ускорять малоэффективно. Дальше идут индексы, фасетный индекс умного фильтра, многоуровневый кэш с корректным сбросом, композитный сайт и вынос обмена с 1С из пика.

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

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

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

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

С чего начинать оптимизацию большого каталога?

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

Как влияет структура инфоблоков и торговых предложений на скорость?

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

Что даёт умный фильтр и почему он бывает медленным?

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

Насколько важно кэширование для большого каталога?

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

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

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

Можно ли ускорить каталог без переписывания всего сайта?

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

Какие типовые результаты даёт оптимизация большого каталога?

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

Поделиться:

Большой каталог начал тормозить?

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

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

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

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

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