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 и его серверный профиль.