Кэширование в WordPress — мощный инструмент для ускорения загрузки сайта, но иногда возникает необходимость отключить кэш для отдельных страниц или разделов. Например, это актуально для страниц с динамическим содержимым, кастомными формами или корзинами интернет-магазина, где отображаемая информация должна быть всегда актуальной.
Почему нужно отключать кэширование на отдельных страницах
Кэширование сохраняет копии страниц и отдаёт их пользователю, что снижает нагрузку на сервер и ускоряет загрузку. Однако если страница содержит данные, которые часто меняются или зависят от сессии пользователя, кэширование может привести к показу устаревшей или неправильной информации.
Примеры таких страниц:
- Страницы оформления заказа и корзины (WooCommerce)
- Личные кабинеты и профили пользователей
- Формы обратной связи с динамической проверкой
- Страницы с результатами поиска или фильтрации в реальном времени
Отключение кэша на таких страницах гарантирует, что пользователь всегда видит актуальные данные.
Способы отключения кэширования на определённых страницах WordPress
1. Отключение кэша через плагин кэширования
Большинство популярных плагинов кэширования (WP Super Cache, W3 Total Cache, LiteSpeed Cache, WP Rocket) позволяют исключать страницы из кэширования через настройки.
Например, в WP Rocket можно указать URL или шаблон страниц, для которых кэш не создаётся:
- Перейдите в настройки плагина WP Rocket
- Откройте вкладку Advanced Rules
- В поле Never Cache URL(s) добавьте адреса страниц или регулярные выражения
Это самый простой и надёжный способ, если вы используете подобные плагины.
2. Отключение кэширования сервером (например, Varnish, Nginx FastCGI Cache)
Если у вас настроено серверное кэширование, нужно исключать страницы на уровне конфигурации сервера.
Пример для Nginx с FastCGI Cache:
location /cart/ {
fastcgi_no_cache 1;
fastcgi_cache_bypass 1;
# остальные настройки
}Здесь для URI /cart/ кэш отключается.
Такой способ требует доступа к серверу и понимания конфигурации.
3. Отключение кэширования программно через хуки WordPress
Если нужно отключить кэширование в коде, например для собственного плагина или темы, можно использовать фильтры и хуки.
Пример функции wpboot_disable_cache_for_pages(), которая отключает кэш для страниц с определённым ID:
function wpboot_disable_cache_for_pages() {
if (is_page(array(42, 99))) {
// Для WP Super Cache
define('DONOTCACHEPAGE', true);
// Для W3 Total Cache
if (function_exists('w3tc_pgcache_flush')) {
w3tc_pgcache_flush();
}
}
}
add_action('template_redirect', 'wpboot_disable_cache_for_pages');Здесь при загрузке страниц с ID 42 и 99 отключается кэширование.
Важно: константа DONOTCACHEPAGE поддерживается многими плагинами кэширования, но не всеми.
Практический пример: отключаем кэш для страницы корзины WooCommerce
Частая задача — отключить кэширование страницы корзины, чтобы корзина всегда отображала актуальное содержимое.
Пример кода для functions.php вашей темы или плагина:
function wpboot_disable_cache_for_woocommerce_cart() {
if (function_exists('is_cart') && is_cart()) {
define('DONOTCACHEPAGE', true);
}
}
add_action('template_redirect', 'wpboot_disable_cache_for_woocommerce_cart');Этот код отключит кэширование на странице Корзина WooCommerce автоматически.
Рекомендации по проверке и отладке
После настройки отключения кэша важно проверить, что изменения работают корректно:
- Очистите весь кэш сайта и браузера
- Откройте страницу в режиме инкогнито или другом браузере
- Проверьте заголовки ответа сервера — отсутствие заголовков кэширования или наличие заголовков
Cache-Control: no-cache - Используйте инструменты разработчика браузера или curl для диагностики
Если кэш всё равно срабатывает, пересмотрите настройки вашего плагина и/или сервера.
Полезные плагины для управления кэшированием
Кроме упомянутых WP Rocket, W3 Total Cache и WP Super Cache, обратите внимание на:
- LiteSpeed Cache — мощный плагин с гибкой настройкой исключений
- Clearfy Pro — оптимизация и управление кэшем, совместим с WPShop (подробнее)
Выбирайте плагин, который лучше всего интегрируется с вашим хостингом и требованиями.
Итоговые советы
Отключать кэширование желательно только там, где это действительно необходимо — избыточное отключение сведёт на нет преимущества кэширования и замедлит сайт.
Всегда тестируйте изменения и учитывайте особенности используемого кэш-плагина и серверного окружения.