
Редакция Romanov Lab · Опубликовано
Кэширование полезно, пока посетитель получает предназначенные ему данные. Ошибка настройки может показать устаревшую цену, чужое приветствие или состояние корзины другого покупателя. Поэтому ускорение начинают с классификации страниц и запросов. Настройка считается успешной только после проверки правильности выдачи, а уже затем — скорости.
Найдите все уровни кэширования
На одном сайте могут одновременно работать кэш браузера, CDN, серверный кэш HTML, плагин страничного кэша и объектный кэш. Кнопка «очистить кэш» в WordPress обычно не доказывает очистку остальных уровней. Нарисуйте цепочку запроса от браузера до приложения и подпишите, кто управляет каждым звеном.
Объектный кэш хранит результаты работы приложения, а страничный кэш — готовый ответ для запроса. Это разные механизмы. Базовый WP_Object_Cache по умолчанию не обеспечивает постоянное хранение между запросами без соответствующего расширения; архитектуру объясняет справочник WordPress. Установка внешнего объектного кэша сама по себе не означает, что личные страницы будут безопасно обслуживаться публичным HTML-кэшем.
Составьте карту публичности
- Общая статья: обычно одинаковое содержимое для гостей, возможен публичный страничный кэш.
- Каталог: зависит от фильтров, валюты, региона и модели цен; сначала определяют варианты ответа.
- Корзина и оформление: состояние конкретного покупателя, требуется динамическая обработка.
- Кабинет, заказы, сброс пароля: персональные данные и действия; общий кэш неприемлем.
- Предпросмотр и административные экраны: не должны попадать в публичную выдачу.
- API и служебные запросы: правила зависят от маршрута, метода, авторизации и наличия персональных данных.
У WooCommerce корзина, оформление заказа и кабинет должны исключаться из страничного кэша; некоторые решения делают это автоматически, но результат нужно проверить. Сверяйтесь с официальной инструкцией по кэшированию. Используйте фактически назначенные страницы и их конечные пути, а не только английские cart и checkout из примера. Учтите вложенные адреса кабинета, языковые префиксы и дополнительные личные разделы плагинов.
Настройте условия обхода кэша
Разработчик проверяет правила для авторизованных пользователей, сессионных cookies, запросов записи, заголовков авторизации и персонализированных ответов. Состав cookies зависит от включённых функций; назначение основных WooCommerce cookies описано в документации WooCommerce. Например, наличие сессионной cookie важно даже у покупателя, который не входил в аккаунт.
Не удаляйте все cookies на прокси ради большего процента попаданий. Это может разрушить разделение сеансов. Не задавайте общее правило «кэшировать весь /wp-json/»: рядом с публичным чтением существуют частные ответы и операции. Для параметров URL решите, какие меняют содержимое, а какие являются лишь метками; игнорирование значимого параметра может вернуть не тот фильтр или вариант цены.
Правило в плагине не защищает от неверного правила CDN перед ним. Для каждого уровня зафиксируйте условия хранения, обхода и очистки. Если правила сложно согласовать, сначала используйте более консервативное исключение динамической области, а оптимизацию этой области рассматривайте как отдельную инженерную задачу.
Проверьте два независимых сеанса
- Подготовьте два отдельных профиля браузера без общих cookies. Две вкладки одного профиля не подходят для проверки изоляции.
- В первом гостевом сеансе добавьте товар А, во втором — товар Б. Последовательно откройте одинаковые URL корзины и общую страницу с мини-корзиной.
- Измените количество в одном сеансе. Второй должен сохранить своё состояние.
- Войдите двумя тестовыми пользователями и проверьте имя, адреса и историю заказов каждого.
- Выйдите из аккаунта и повторно откройте прежний личный адрес: персональные данные не должны остаться доступными.
- Повторите проверки на прогретом кэше, а не только сразу после очистки.
Дополнительно смотрите заголовки и диагностические метки используемого кэша. Их названия зависят от провайдера; отсутствие привычного заголовка не доказывает отсутствие кэширования. Важны одновременно наблюдаемое поведение, настройки и фактический путь запроса.
Отдельно проверьте обновление публичных страниц
В учебном магазине изменили название и доступность тестового товара. Откройте карточку, категорию и блок рекомендаций: все ли представления обновились в согласованный срок? Затем проверьте цену в корзине. Кэш может корректно очищать одиночную карточку, но оставлять старое содержимое в связанных списках.
Запишите события очистки: публикация, изменение товара, обновление меню, смена общего блока. Для редко меняющейся статьи и наличия товара нужны разные допустимые сроки устаревания. Не выбирайте универсальное время хранения без бизнес-требований. Не путайте очистку с прогревом: после сброса сервер может временно получить больше работы, поэтому массовый сброс выполняют осознанно.
Если обнаружились чужие данные
Прекратите выдачу из подозрительного общего кэша, сохраните минимальные диагностические сведения без дальнейшего распространения данных и очистите затронутые уровни. Проверьте, какие ответы могли сохраняться, и передайте инцидент ответственному за безопасность. Одна очистка без исправления правила позволяет проблеме повториться.
Возврат настроек должен быть подготовлен заранее: сохранённая конфигурация, известный способ обхода проблемного слоя и доступ к CDN или хостингу. Не удаляйте все пользовательские сессии ради проверки скорости. Приёмка включает изоляцию пользователей, правильное обновление публичных данных, рабочие формы и только затем сравнение производительности в одинаковых условиях.
Нужен план для вашего проекта? Напишите нам в Telegram или по электронной почте. Обсудим разработку, продвижение или поддержку сайта.


