Обсудить проект

Медленная корзина и checkout WooCommerce — как найти узкое место

Checkout WooCommerce нельзя просто закешировать как статью: каждый пересчёт может запускать налоги, доставку, купоны и внешние API.

Поэтому начинайте не с общего балла PageSpeed, а с времени конкретного AJAX/Store API запроса.

Как проявляется проблема

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

Основные причины

1. API доставки

Каждый пересчёт синхронно ждёт внешний сервис.

2. Платёжный модуль

Шлюз делает удалённый запрос ещё до создания заказа.

3. Тяжёлые hooks

Плагины скидок и подарков пересчитывают большие наборы данных.

4. Медленный SQL

Meta queries на большом каталоге занимают секунды.

5. Сессии/object cache

Блокировки или медленное хранилище тормозят последовательные запросы.

Пошаговая диагностика

Шаг 1. Измерить Network

Смотрите update_order_review и Store API.

Шаг 2. Query Monitor на staging

Найдите медленные SQL и hooks checkout.

Шаг 3. Отключить внешнюю доставку

Если стало быстро, профилируйте конкретный API.

Шаг 4. Проверить параллельные запросы

Сторонние скрипты могут конкурировать с checkout.

Шаг 5. Снять APM-профиль

Он показывает время PHP, SQL и HTTP-вызовов.

Как исправить

Кешировать справочные ответы

Тарифные справочники можно кешировать, если бизнес-правила позволяют.

Не пересчитывать лишнее

Код должен реагировать только на релевантные изменения корзины.

Оптимизировать SQL

Особенно фильтры, цены и метаданные большого каталога.

Сократить внешние зависимости

Каждый синхронный API повышает задержку и риск отказа.

Что важно не делать

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

Когда нужна помощь разработчика

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

Нужна диагностика? Можно обратиться за ускорением WordPress.

Связанные статьи

Часто задаваемые вопросы

Почему PageSpeed хороший, а checkout медленный?

Главная может быть в page cache, а checkout всегда персональный.

Отключать cart fragments?

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

Что измерять главным?

Время проблемного AJAX/Store API и его серверный профиль.

Раздел блога: Ускорение WordPress →

Обсудим ваш проект?

Обычно отвечаю в течение 15–30 минут в рабочее время.

Бесплатно проведу первичную оценку и подскажу, какие доработки действительно нужны.