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

Кэширование WordPress

Кэширование — самый быстрый способ ускорить WordPress. Для немедленного эффекта установите W3 Total Cache, WP Super Cache или Cache Enabler.

Подробнее об общих принципах оптимизации — Оптимизация WordPress.

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

В связке с системным кэшем уровня Varnish эффективность многократно возрастает.

Популярные плагины:

Если на сайте много динамического контента, настройка кэширования сложнее. Ищите по запросу «WordPress cache plugin» актуальные решения.

Браузерный кэш снижает количество запросов к серверу за счёт хранения статических файлов (изображения, CSS, JS) на компьютере посетителя.

Механизм работы:

  • Сервер отправляет заголовки Cache-Control (особенно max-age) и Expires
  • Браузер проверяет Entity Tags (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>

Объектное кэширование — перенос данных из медленного и дорогого хранилища в быстрое и дешёвое. В отличие от кэша страниц, объектный кэш обычно персистентный: данные, закэшированные при одном запросе, доступны при следующем.

Ключевое свойство: закэшированные данные всегда должны быть восстанавливаемыми. При повреждении кэша приложение продолжает работать — данные регенерируются автоматически, хотя и с временным падением производительности.

Движки объектного кэша:

ДвижокТипОсобенности
RedisIn-memoryСамый популярный, богатая структура данных
MemcachedIn-memoryПростой, проверенный временем
APC/uIn-memoryЛокальный для одного сервера
Файловая системаDisk-basedНе требует доп. сервисов

Выбор движка зависит от задачи. Минимальное требование — доступ к закэшированным данным должен быть быстрее, чем их повторная генерация.

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

// Базовое использование 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');

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

Уровни серверного кэширования:

Ускоряет выполнение 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

Источник: WordPress Developer Handbook — Cache