К другим кейсам
КейсОптимизацияGeometriax5 ускорение ключевых страниц

Geometria. Оптимизация каталога

Каталог из 800 000 SKU ускорен с 8 до 1,6 секунды на ключевых страницах.

Смотреть кейс

Проект

geometria.top — интернет-магазин на 1С-Битрикс с каталогом примерно на 800 000 SKU.

CMS: 1С-Битрикс. Масштаб: ~800 000 товарных позиций. Задача была не «сделать сайт красивее», а вернуть каталогу рабочее время ответа.

Проблема

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

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

Диагностика

Сначала нужно было доказать, какие URL и какие процессы дают 8 секунд, а не трогать шаблон раздела наугад.

Контрольные сценарии были одинаковыми до и после:

  • раздел каталога без фильтра;
  • тот же раздел с одним-двумя свойствами в фильтре;
  • карточка из головы выдачи и карточка «с хвоста»;
  • внутренний поиск;
  • URL, который реально обходит поисковый робот.

Снималось время ответа документа, а не «ощущение в браузере». Сравнивались спокойное окно и окно обмена / переиндексации.

Отдельно смотрелись SQL-запросы компонентов каталога, повторяющиеся выборки, кеш и агенты, которые после обмена помечают поиск и фасеты как неактуальные.

Причины

На Битрикс-проекте слово «индексация» обычно означает три разных процесса:

  1. Поисковый индекс модуля поиска. Полный проход читает элементы, свойства, цены, доступность.
  2. Фасетный индекс умного фильтра. Он считает, какие значения свойств ещё доступны в разделе.
  3. Обход сайта поисковым роботом. Ему нужны стабильные 200 и внятный TTFB, но нагрузка идёт на те же PHP-FPM и базу.

На 5–10 тысячах SKU полный пересчёт часто незаметен. На сотнях тысяч SKU полный проход по свойствам — уже минуты и часы. Если в то же окно попадает обмен остатков из 1С, бэкап и робот по длинному хвосту карточек, покупатель и бот делят одни и те же ресурсы.

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

Что изменили

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

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

До и после

ЗамерЗначение
Масштаб~800 000 SKU
До~8 секунд на ключевых страницах
После~1,6 секунды
Результатускорение примерно в 5 раз
Индексация0 критичных срывов после стабилизации

Технологии: PHP, MySQL, 1С-Битрикс, D7, SQL-профилирование, кеширование компонентов.

Результат для бизнеса

Ключевые страницы каталога стали открываться примерно за 1,6 секунды вместо 8. Это меньше потерянных переходов из-за ожидания и спокойнее SEO-обход: робот реже упирается в тяжёлый ответ вне кеша.

Для ассортиментной команды каталог перестал быть отдельным источником аварий в окне обмена. Ускорение не потребовало смены CMS и не потребовало «переписать каталог с нуля».

Подробный разбор услуги: ускорение каталога 1С-Битрикс.

Нужен похожий результат?

Сделаем проект для вашего бизнеса

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