Перейти к содержимому

Кэширование WordPress: инфраструктурный уровень

Помимо трёх механизмов кэширования в ядре (страничный кэш, объектный кэш, transients), скорость WordPress зависит от инфраструктурного уровня: браузера, PHP-движка и сервера перед веб-сервером.

Для немедленного эффекта установите плагин страничного кэша: WP Rocket (премиум), WP Super Cache (бесплатный) или Surge (бесплатный, zero-config). Подробнее об общих принципах оптимизации — Оптимизация WordPress.

Общая картина всех видов кэша сайта, включая сравнение с другими платформами (Bitrix, Astro, Next.js): Кэширование сайтов.

Браузерный кэш снижает количество запросов к серверу за счёт хранения статических файлов (изображения, CSS, JS) на компьютере посетителя. Сервер отправляет заголовки Cache-Control (особенно max-age) и Expires, а браузер сверяется через ETag вместо повторной загрузки — сервер отвечает 304 Not Modified вместо 200 OK с телом файла.

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>

Большинство хостингов (Beget, Timeweb, REG.RU) и плагинов кэширования (WP Rocket, W3 Total Cache) добавляют эти заголовки автоматически — писать правила вручную нужно только на VPS без панели управления.

WordPress имеет встроенный API объектного кэша через класс WP_Object_Cache. Для подключения внешнего движка (Redis, Memcached) используйте drop-in плагин object-cache.php в wp-content/.

Самый простой путь — плагин Redis Object Cache: он устанавливает drop-in автоматически и добавляет экран диагностики в админке. Работает на серверах с Redis (например, Beget, Timeweb и большинство VPS). Хорошо показывает себя на больших сайтах со сложной логикой и высокой нагрузкой.

// Базовое использование WP Object Cache API
wp_cache_set('my_key', $data, 'my_group', 3600);
$data = wp_cache_get('my_key', 'my_group');
wp_cache_delete('my_key', 'my_group');

Полный разбор API, групп (глобальные, непостоянные) и нюансов опций: Кэширование объектов.

Серверный кэш сложнее плагинного, но необходим для высоконагруженных сайтов.

Ускоряет выполнение PHP, сохраняя скомпилированный байт-код в памяти:

  • OPcache — встроен в PHP 5.5+, рекомендуется к включению всегда
  • WinCache — для IIS на Windows

Обратный прокси-сервер перед веб-сервером WordPress:

  • Varnish — мощный HTTP-акселератор, отлично сочетается с плагинами кэширования (W3TC, WP Super Cache)
  • Nginx FastCGI Cache — кэширование на уровне веб-сервера без дополнительного ПО
Пользователь → CDN → Varnish (reverse proxy) → Nginx/Apache (opcode cache) → WordPress (object cache: Redis) → MySQL
Уровень сайтаРекомендация
Блог на shared-хостингеПлагин кэширования + браузерный кэш
Средний сайт на VPSПлагин + OPcache + объектный кэш (Redis)
Высоконагруженный проектVarnish/Nginx FastCGI + Redis + CDN + OPcache

WooCommerce требует особой настройки кэширования — корзина, чекаут и личный кабинет должны оставаться динамическими.

Подробнее: Кэширование в WooCommerce.