Каталог OpenCart отвечает секундами

Типичная ситуация. Домен, название компании и скриншоты кабинета здесь не публикуются.

Каталог OpenCart с большим числом атрибутов и опций. Главная ещё открывается, а страница категории начинает отвечать несколько секунд. Часто это диапазон около 3–8 секунд на список, пока номенклатура уже не тестовая. Домен магазина для разбора не нужен — набор причин повторяется.

Иллюстрация: категория OpenCart ещё загружает товары, один запрос в сети висит секундами
Иллюстрация симптома на вымышленном адресе. Это не снимок сайта клиента и не замер конкретного магазина.

Что обычно видно до правок

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

Скорость

Список в OpenCart собирает товар, цену, атрибуты, опции и картинку отдельными обращениями к базе. Пока в категории десятки позиций, это терпимо. Когда атрибутов много, страница ждёт базу, а не картинку в браузере. Имеет смысл смотреть медленный запрос именно категории, а не общий балл главной.

Бесплатная проверка меряет ответ главной. Каталог она не заменяет.

Архитектура

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

Безопасность

Режим отладки на витрине показывает пути и фрагменты запросов тому, кто поймал ошибку. Его выключают до того, как обсуждать скорость. Папка system/storage не должна открываться снаружи.

SEO-техника

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

Что делать

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

Срок и стоимость

Разовая задача начинается от 3 000 ₽. Точную сумму программист называет после просмотра каталога и логов: иногда хватает индекса и кеша, иногда запрос сидит в модификации и шаблоне.

Похожая ситуация?

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

Другие разборы