До 10%Рекомендуйте нас и получайте процент за каждого приведённого клиента
Ускорение и производительность

Оптимизация каталога 100K-1M товаров на 1С-Битрикс

Ускоряем огромные каталоги на 1С-Битрикс: индексация фасетов умного фильтра, партиционирование тяжёлых таблиц, highload-блоки для свойств, предгенерация SEO-страниц, кеш разделов и списков, быстрая выгрузка из 1С и пагинация. Каталог открывается за доли секунды даже при миллионе SKU.

до 1M+SKU в одном каталоге
×6-15ускорение списков и фильтра
от 2 недельдо первых результатов
< 0,3 cотдача страницы раздела
Фильтр SKU 1M SKU
Где тормозит большой каталог

Почему миллион товаров кладёт сайт на лопатки

Каталог на сотни тысяч и миллионы SKU ведёт себя не так, как каталог на пару тысяч позиций. Запросы, которые раньше летали, при больших объёмах упираются в диск и память. Разбираем типовые узкие места и что мы с ними делаем.

Умный фильтр пересчитывает доступные значения по всему каталогу на каждый клик и думает секундами.
Включаем и перестраиваем индекс фасетов, фильтр отдаёт счётчики из готовой таблицы за миллисекунды.
Таблицы свойств и остатков разрослись до десятков миллионов строк, выборки сканируют их целиком.
Партиционируем тяжёлые таблицы и переводим свойства в highload-блоки с правильными индексами.
Страница раздела с тысячами товаров собирается заново при каждом заходе и грузит базу.
Настраиваем кеш разделов, списков и блоков с тегированной инвалидацией только изменившихся данных.
Пагинация по принципу LIMIT OFFSET на глубоких страницах перебирает миллионы строк впустую.
Переводим пагинацию на курсорную выборку по ключу и ограничиваем глубину тяжёлых листингов.
Выгрузка из 1С на сотни тысяч позиций идёт часами и роняет сайт во время обмена.
Разбиваем обмен на пакеты, грузим только изменения и выносим тяжёлую индексацию в фон.
SEO-страницы фильтров генерируются на лету, поисковик уходит по таймауту и не индексирует каталог.
Предгенерируем посадочные страницы фильтров в статику и обновляем их по расписанию без нагрузки.
Что делаем

Из чего складывается ускорение большого каталога

Работаем по всем уровням, где огромный каталог теряет скорость: от индекса фасетов и структуры таблиц до кеша, пагинации, обмена с 1С и предгенерации SEO-страниц.

Индексация фасетов фильтра

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

Партиционирование таблиц

Разбиваем тяжёлые таблицы свойств, остатков и истории на партиции для быстрых выборок.

Highload-блоки для свойств

Переносим характеристики из инфоблоков в highload-блоки с правильными индексами.

Кеш разделов и списков

Настраиваем кеширование разделов, листингов и блоков с тегированной инвалидацией.

Предгенерация SEO-страниц

Готовим посадочные страницы фильтров в статику и обновляем их по расписанию.

Быстрая выгрузка из 1С

Разбиваем обмен на пакеты, грузим только изменения, выносим индексацию в фон.

Как это работает

Путь запроса в оптимизированном каталоге

Запрос покупателя не идёт каждый раз в тяжёлую базу: счётчики фильтра берутся из индекса фасетов, страница раздела отдаётся из кеша, а тяжёлые свойства лежат в highload-блоках и партициях.

Запросфильтр · раздел Кешраздел · список Фасетыиндекс счётчиков HL-блокипартиции Ответ0,3 c Тяжёлая база нагружается только на промахе кеша, остальное отдаётся за миллисекунды
Запрос → кеш раздела → индекс фасетов → highload и партиции → быстрый ответ.
Эффект после оптимизации

Что меняется в цифрах

×6-15
ускорение списков и умного фильтра
< 0,3 c
отдача страницы раздела из кеша
−70%
нагрузки на базу данных в пик
1M+
SKU в каталоге без деградации

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

Сравнение

Как решить задачу большого каталога

Критерий Своими силамиФрилансерСтудия B2Bsite
Скорость и подход Долго и по наитиюБыстро, но точечноПлан работ от аудита
Диагностика узких мест Без замеров профайлеромМеряет только первый экранПрофайлинг базы и фронта
Глубина оптимизации Кеш и фасеты вслепуюЧинит симптом, не причинуФасеты, партиции, кеш системно
Компетенции по объёмам Знаний по 1М SKU малоОпыт highload неровныйОпыт каталогов до 1М+ SKU
Риски и гарантии Риск уронить продажиГарантий и SLA нетОткат и гарантия результата
Кому и что даёт

Ценность для каждой роли

Фильтр без ожидания

Подбор по свойствам срабатывает мгновенно, счётчики значений видны сразу.

Быстрые разделы

Страница категории с тысячами товаров открывается за доли секунды.

Лёгкая пагинация

Переход на любую страницу листинга идёт без задержки даже в глубине каталога.

Стабильность в пик

Каталог не падает под нагрузкой в распродажи и сезонные всплески спроса.

SEO-страницы фильтров

Посадочные по фильтрам предгенерированы и быстро отдаются поисковику.

Лучше индексация

Краулер обходит каталог без таймаутов, в индекс попадает больше страниц.

Рост Core Web Vitals

Ускорение листингов улучшает поведенческие и ранжирование больших разделов.

Без срывов акций

Каталог держит трафик распродаж, заявки не теряются из-за тормозов.

Управляемая база

Партиционирование и индексы держат рост каталога без переезда на железо.

Предсказуемый обмен

Выгрузка из 1С идёт пакетами и не роняет сайт во время обновления.

Тегированный кеш

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

Запас по нагрузке

Архитектура проектируется под кратный рост числа SKU и посещаемости.

Этапы работы

Как мы ускоряем огромный каталог

01

Аудит и профайлинг

Снимаем медленные запросы, тяжёлые таблицы и узкие места фильтра, кеша и обмена с 1С.

02

План и приоритеты

Раскладываем работы по эффекту и риску, согласуем порядок и фиксируем ожидаемые цифры.

03

База и фасеты

Партиционируем таблицы, переводим свойства в highload-блоки, перестраиваем индекс фасетов.

04

Кеш и пагинация

Настраиваем кеш разделов и списков, курсорную пагинацию и предгенерацию SEO-страниц.

05

Обмен с 1С

Переводим выгрузку на пакеты и дельту, выносим индексацию в фон, убираем простои сайта.

06

Замер и передача

Сравниваем метрики до и после, отдаём отчёт, доступы и рекомендации по дальнейшему росту.

Сроки

Сколько занимает оптимизация каталога

1-3 дня Аудит каталога, профайлинг базы и фронта, карта узких мест
1
3-5 дней Индекс фасетов, кеш разделов и списков, быстрые победы на листингах
2
1-2 недели Партиционирование таблиц и перенос свойств в highload-блоки
3
1 неделя Курсорная пагинация и предгенерация SEO-страниц фильтров
4
1-2 недели Оптимизация выгрузки из 1С: пакеты, дельта, фоновая индексация
5
далее Контрольный замер, отчёт и сопровождение под рост каталога
6
Подробно об услуге

Оптимизация каталога 100K-1M товаров на 1С-Битрикс: что входит и зачем

Оптимизация каталога 100K-1M товаров на 1С-Битрикс — это комплекс работ, который возвращает скорость огромным каталогам, где привычные приёмы ускорения уже не справляются. Каталог на пару тысяч позиций прощает почти любые ошибки: запросы летают за счёт малого объёма, а кеш скрывает неэффективность. Но как только число SKU переваливает за сотню тысяч и тянется к миллиону, всё меняется. Запросы, которые раньше выполнялись мгновенно, начинают сканировать миллионы строк. Умный фильтр пересчитывает доступные значения по всему каталогу. Таблицы свойств и остатков разрастаются до десятков миллионов записей. Обмен с 1С идёт часами и роняет сайт. Каталог из конкурентного преимущества превращается в узкое место, на котором теряются заказы.

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

Из чего складывается ускорение большого каталога

Огромный каталог теряет скорость сразу на нескольких уровнях, и каждый требует своего инструмента. Индекс фасетов умного фильтра выносит счётчики доступных значений в готовую таблицу, чтобы фильтр не пересчитывал их по всему каталогу на каждый клик. Партиционирование разбивает тяжёлые таблицы свойств, остатков и истории на части, по которым база ищет быстрее. Highload-блоки переносят характеристики товаров из инфоблоков в отдельное хранилище с правильными индексами. Кеш разделов и списков избавляет от пересборки страниц при каждом заходе. Предгенерация превращает SEO-страницы фильтров в статику. А оптимизация обмена с 1С убирает простои сайта во время выгрузки больших объёмов.

Главные направления работ по большому каталогу:

  • индексация фасетов умного фильтра, чтобы счётчики значений отдавались из готовой таблицы за миллисекунды;
  • партиционирование тяжёлых таблиц свойств, остатков и истории для быстрых выборок;
  • перенос характеристик в highload-блоки с правильными индексами вместо раздутых инфоблоков;
  • кеширование разделов, списков и блоков с тегированной инвалидацией только изменившихся данных;
  • курсорная пагинация по ключу вместо тяжёлого LIMIT OFFSET на глубоких страницах;
  • предгенерация SEO-страниц фильтров в статику с обновлением по расписанию;
  • пакетная выгрузка из 1С по дельте с выносом индексации в фон.

Почему умный фильтр и фасеты — главное узкое место

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

База данных: партиции и highload-блоки

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

Кеш, пагинация и SEO-страницы

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

Обмен с 1С на больших объёмах

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

Состав работ

Что именно мы делаем по большому каталогу

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

Сколько стоит оптимизация большого каталога

Стоимость зависит от числа SKU, состояния базы и глубины работ. Ниже — ориентиры; точную смету присылаем после бесплатного аудита каталога.

Экспресс-аудит
от 40 000 ₽
Срок: от 3 дней

Профайлинг каталога и план ускорения с приоритетами.

  • Профайлинг базы и фронта
  • Карта медленных запросов
  • Оценка фасетов и кеша
  • План работ с приоритетами
Популярный выбор
Оптимизация каталога
от 180 000 ₽
Срок: от 3 недель

Комплексное ускорение каталога до сотен тысяч SKU.

  • Индекс фасетов фильтра
  • Кеш разделов и списков
  • Highload-блоки свойств
  • Курсорная пагинация
  • Предгенерация SEO-страниц
Каталог 1M+ под нагрузку
от 420 000 ₽
Срок: от 6 недель

Каталог на миллион и более SKU с тяжёлым обменом и трафиком.

  • Всё из тарифа «Оптимизация»
  • Партиционирование таблиц
  • Пакетная выгрузка из 1С
  • Проектирование под нагрузку
  • Сопровождение и развитие
Экспресс-аудит от 40 000 ₽
Срок: от 3 дней

Профайлинг каталога и план ускорения с приоритетами.

  • Профайлинг базы и фронта
  • Карта медленных запросов
  • Оценка фасетов и кеша
  • План работ с приоритетами
Популярный Оптимизация каталога от 180 000 ₽
Срок: от 3 недель

Комплексное ускорение каталога до сотен тысяч SKU.

  • Индекс фасетов фильтра
  • Кеш разделов и списков
  • Highload-блоки свойств
  • Курсорная пагинация
  • Предгенерация SEO-страниц
Каталог 1M+ под нагрузку от 420 000 ₽
Срок: от 6 недель

Каталог на миллион и более SKU с тяжёлым обменом и трафиком.

  • Всё из тарифа «Оптимизация»
  • Партиционирование таблиц
  • Пакетная выгрузка из 1С
  • Проектирование под нагрузку
  • Сопровождение и развитие

Дополнительные опции

Перенос свойств в highload-блоки (за группу) от 35 000 ₽
Предгенерация SEO-страниц фильтров от 50 000 ₽
Оптимизация выгрузки из 1С под объём от 70 000 ₽
Расчёт выгоды

Сколько теряет медленный каталог

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

Потери выручки в месяц из-за тормозов 0 ₽

Оценка по формуле: визиты × доля уходящих в процентах × конверсия в заказ 0,03 × средний чек. Это ориентир упущенной выручки, а не точный прогноз.

Умный расчёт

Подберём план ускорения под ваш каталог

Ответьте на несколько вопросов о числе SKU, фильтре и обмене с 1С — предложим состав работ и ориентир по срокам и цене.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы по ускорению больших каталогов

Электроника

Каталог 420 000 SKU: ускорили фильтр и разделы

Перестроили индекс фасетов и настроили кеш разделов, фильтр стал отвечать мгновенно вместо нескольких секунд.

×9Скорость фильтра
0,25 cОтдача раздела
−65%Нагрузка БД
Автозапчасти

Миллион позиций и тяжёлый обмен с 1С

Партиционировали таблицы и перевели выгрузку на пакеты и дельту, обмен перестал ронять сайт по ночам.

1,1MSKU
−80%Время обмена
нетПростоев
DIY и стройматериалы

SEO-страницы фильтров и пагинация

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

+140%Страниц в индексе
0,3 cГлубокая страница
5 недельСрок
Отзывы клиентов

Что говорят после оптимизации каталога

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

Дмитрий К. Руководитель интернет-магазина электроники

«Главной болью был обмен с 1С на миллион позиций — он ронял сайт каждую ночь. Разбили выгрузку на пакеты и дельту, простои ушли. Работают аккуратно, без сюрпризов в смете.»

Елена С. Технический директор дистрибьютора автозапчастей

«Предгенерировали нам SEO-страницы фильтров и починили пагинацию. Поисковик стал нормально индексировать каталог, трафик на разделы пошёл вверх. Рекомендую за системный подход.»

Артём В. Маркетолог сети DIY
Почему мы

На что можно рассчитывать по договору

Чиним причину, а не симптом

Сначала профайлинг базы и фронта, потом работы — не латаем медленные места вслепую.

Опыт каталогов до 1M+ SKU

Знаем, как ведут себя фасеты, партиции и кеш на сотнях тысяч и миллионах позиций.

Без остановки продаж

Тяжёлые работы по базе и обмену ведём аккуратно, с откатом и проверкой на копии.

Замер и прозрачность

Показываем метрики до и после, отдаём отчёт, доступы и рекомендации по росту.

База знаний

Частые вопросы о больших каталогах — и наш ответ

Это не общие советы из интернета, а закономерности из реальных проектов на сотни тысяч и миллионы SKU. Каждый ответ — позиция нашей команды.

Фильтр

Умный фильтр на большом каталоге думает по несколько секунд

Наш ответ

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

База

Таблицы разрослись, выборки сканируют миллионы строк

Наш ответ

Партиционируем тяжёлые таблицы свойств, остатков и истории по логичному ключу и переносим характеристики в highload-блоки с правильными индексами. База начинает работать с нужным куском данных, а не со всей таблицей, и выборки ускоряются в разы.

Обмен 1С

Выгрузка из 1С идёт часами и роняет сайт

Наш ответ

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

SEO

Поисковик не успевает индексировать страницы фильтров

Наш ответ

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

Экспертный взгляд

Большой каталог: докупить железо или оптимизировать архитектуру

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

Почему большой каталог ведёт себя иначе

Главное, что нужно понять про каталог на миллион SKU: он подчиняется другой математике. На двух тысячах товаров неэффективный запрос обходит две тысячи строк — это незаметно. На миллионе тот же запрос обходит миллион строк, и разница уже не в производительности сервера, а в самом подходе. Умный фильтр, который пересчитывает доступные значения по всему каталогу, на маленьком каталоге работает, а на большом кладёт базу. Таблица свойств, которая на тысяче товаров занимает мегабайты, на миллионе разрастается до десятков миллионов строк, и любая выборка по ней становится тяжёлой. Пагинация через перебор первых N строк на десятой странице работает, а на тысячной перебирает сотни тысяч строк впустую. Эти эффекты не лечатся железом — они лечатся индексами фасетов, партиционированием, highload-блоками и правильной пагинацией.

Индекс фасетов: почему он решает половину проблем

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

Партиционирование и highload-блоки

Второй пласт работ — структура хранения. Партиционирование делит тяжёлые таблицы на части по логичному ключу, и база при выборке обращается только к нужной партиции, а не сканирует всю таблицу. Это особенно важно для свойств, остатков, цен и истории заказов, которые на большом каталоге разрастаются быстрее всего. Highload-блоки выносят характеристики товаров из инфоблоков в отдельное хранилище с собственными индексами — это разгружает основные таблицы каталога и ускоряет и фильтрацию, и выборки списков. Когда структура данных приведена в порядок, многие запросы ускоряются в разы без всякого вмешательства в железо. Если же база при этом ещё и плохо настроена, мы отдельно занимаемся настройкой MySQL и PostgreSQL под Битрикс, чтобы движок базы использовал индексы и память максимально эффективно.

Кеш, пагинация и фронтенд

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

Обмен с 1С на больших объёмах

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

SEO-страницы фильтров и индексация

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

Когда хватит точечных работ, а когда нужна полная переработка

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

Как мы ведём работу без риска для продаж

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

Что вы получаете по итогу

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

Типичные ошибки, которые мы исправляем

На больших каталогах из проекта в проект повторяются одни и те же ошибки, и важно их знать, чтобы понимать, откуда берутся тормоза. Первая — фильтр без индекса фасетов: его просто не включили или забыли перестроить после изменения структуры свойств. Вторая — все характеристики свалены в обычные инфоблоки вместо highload-блоков, из-за чего основные таблицы раздуты и любая выборка по ним тяжёлая. Третья — отсутствие кеша на разделах и списках, когда тяжёлая страница собирается заново при каждом заходе. Четвёртая — пагинация через перебор, которая на глубоких страницах сканирует сотни тысяч строк впустую. Пятая — полный обмен с 1С вместо дельты, который роняет сайт при каждом обновлении. Шестая — SEO-страницы фильтров, генерируемые на лету, из-за чего краулер не успевает обойти каталог. По отдельности каждая ошибка кажется мелочью, но вместе они превращают каталог на миллион SKU в постоянный источник тормозов и потерянных заказов.

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

Как мы измеряем результат

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

С чего начать

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

Вопросы и ответы

Частые вопросы об оптимизации большого каталога

Что такое индекс фасетов умного фильтра простыми словами? +

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

Что значит «партиционирование» таблиц? +

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

Что такое highload-блок и зачем он нужен каталогу? +

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

С какого объёма каталог считается большим? +

Условно проблемы начинаются после ста тысяч SKU, а ближе к миллиону они становятся критичными. Дело не только в числе товаров, но и в числе свойств и комбинаций фильтра: каталог на сто тысяч позиций с десятками характеристик может тормозить сильнее, чем каталог на триста тысяч с простой структурой.

Чем оптимизация большого каталога отличается от обычного ускорения сайта? +

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

Почему умный фильтр тормозит на большом каталоге? +

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

Индекс фасетов уже включён, но фильтр всё равно медленный — почему? +

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

Как часто нужно обновлять индекс фасетов? +

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

Ускорится ли фильтр, если просто убрать часть свойств? +

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

Партиционирование не сломает существующие запросы? +

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

Перенос свойств в highload-блоки потребует переделки сайта? +

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

Поможет ли просто добавить индексы в базу? +

Грамотные индексы — обязательная часть работы, но на каталоге в миллион SKU их недостаточно. Без партиционирования, highload-блоков и оптимизации тяжёлых запросов индексы лишь частично снимают проблему. Мы работаем по всем уровням сразу, опираясь на профайлинг конкретной базы.

Что делать, если база уже на пределе по нагрузке? +

Сначала снимаем профиль и находим самые тяжёлые запросы и таблицы, затем убираем их через индексы, партиции и highload-блоки. Если узким местом оказывается настройка самого движка базы, отдельно занимаемся настройкой MySQL или PostgreSQL под Битрикс, чтобы база эффективно использовала память и индексы.

Почему страница раздела с тысячами товаров медленно открывается? +

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

Что не так с обычной пагинацией на больших каталогах? +

Обычная пагинация через LIMIT OFFSET на глубоких страницах перебирает все строки до нужной: на тысячной странице это сотни тысяч строк впустую. Мы переводим пагинацию на курсорную выборку по ключу, чтобы переход на любую страницу был быстрым независимо от глубины каталога.

Зачем предгенерировать SEO-страницы фильтров? +

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

Ускорение каталога улучшит позиции в поиске? +

Косвенно да. Быстрые листинги улучшают Core Web Vitals и поведенческие, а предгенерация SEO-страниц фильтров увеличивает число проиндексированных посадочных. Вместе это даёт рост органического трафика, особенно на длинном хвосте запросов по характеристикам товаров.

Почему выгрузка из 1С роняет сайт? +

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

Что значит выгрузка по дельте? +

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

У нас сильно доработанная 1С — оптимизация обмена возможна? +

Да. Мы настраиваем обмен под вашу конфигурацию и структуру данных, в том числе для нестандартных доработок. Если штатный механизм обмена не справляется с объёмом, реализуем пакетную выгрузку по дельте через API под конкретные поля и правила вашего учёта.

Можно ли обновлять только цены и остатки чаще, чем весь каталог? +

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

Сколько стоит оптимизация большого каталога? +

Экспресс-аудит с планом — от 40 000 рублей, комплексная оптимизация каталога до сотен тысяч SKU — от 180 000, каталог на миллион и более с тяжёлым обменом — от 420 000. Цена зависит от числа SKU, состояния базы и глубины работ. Точную смету присылаем после бесплатного аудита.

За какой срок виден результат? +

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

Не остановятся ли продажи во время работ? +

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

Что мы получаем по итогу проекта? +

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

Даёте ли гарантию на результат? +

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

Начать проект

Ускорим ваш большой каталог?

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

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета