Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Практика

Скорость каталога с тысячами товаров

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

Где теряется время

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

МедленнаякатегорияБаза данныхзапросыи счётчикиРазметкаи картинкиКешстраници блоков
МедленнаякатегорияБаза данныхзапросыи счётчикиРазметкаи картинкиКешстраници блоков
Три направления поиска причины

Причины и решения

Типичные причины медленной категории
ПричинаКак проверитьЧто сделать
Тяжёлые запросы к базеВключить журнал медленных запросовДобавить индексы, упростить выборку
Счётчики значений фильтровОтключить подсчёт и сравнить времяСчитать заранее и хранить готовые значения
Много карточек с большими картинкамиПосмотреть суммарный вес страницыУменьшить размер, включить отложенную загрузку
Нет кеша страниц категорийСравнить время первого и повторного запросаВключить кеш с обновлением при изменении товаров
Сложные шаблоны и лишние блокиОтключать блоки по одному и замерятьУбрать необязательные модули или грузить отдельно

В каком порядке действовать

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

Связь с индексацией

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

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

Как найти узкое место за один час

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

curl -o /dev/null -s -w "ttfb=%{time_starttransfer} total=%{time_total}\n" https://example.ru/catalog/
  • Если время ответа сервера уже большое — проблема в приложении или базе данных.
  • Если ответ быстрый, а страница загружается долго — проблема в весе страницы и ресурсах.
  • Если первый запрос медленный, а повторные быстрые — не работает или не прогревается кеш.

Такое разделение сразу показывает, куда направить усилия, и избавляет от правок «на всякий случай».

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

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

Из-за сложных запросов к базе, подсчёта значений фильтров и большого числа изображений на странице.

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

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

Влияет ли скорость каталога на индексацию?

Да: при медленных ответах сервера робот запрашивает меньше страниц за визит, и новые товары попадают в индекс позже.

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

Читайте также