Кэширование страниц в WordPress
Как работает страничный кэш
Заголовок раздела «Как работает страничный кэш»Для выдачи одной страницы WordPress проделывает много работы: несколько запросов в базу за последними записями, настройками виджетов и темы, активными плагинами, названием сайта, фоном и десятками других данных.
Кэширование страниц (page cache) сохраняет результат целиком. При повторном запросе по тому же адресу отдаётся готовая страница из кэша — быстрее и с минимальной нагрузкой на сервер. При изменении записи кэш сбрасывается и пересоздаётся с новыми данными.
В ядре WordPress страничный кэш не реализован — но есть все необходимые хуки для реализации на уровне плагинов. Для 80% сайтов статического страничного кэша достаточно, чтобы всё работало быстро.
Сравнение плагинов
Заголовок раздела «Сравнение плагинов»| Плагин | Хранилище | Архитектура | Мультисерверность | Интерфейс | Для кого |
|---|---|---|---|---|---|
| WP Super Cache | Файловая система | Статические HTML, может отдавать напрямую через Apache/nginx в обход PHP | Сложно (файлы локальны) | Админка | Новички и опытные |
| W3 Total Cache | Диск или память | Не сохраняет структуру для отдачи без PHP, зато работает с внешними хранилищами | Да | Админка, очень много настроек | Опытные |
| Batcache | Внешний object cache (Memcached) | Страницы в объектном кэше | Да | Только PHP-конфиг, без админки | Профессионалы |
| Surge | Файловая система | Drop-in advanced-cache.php, zero-config | Сложно | Нет настроек, WP-CLI | Разработчики |
| WP Rocket | Файловая система | Page cache + оптимизация фронтенда | Сложно | Админка, максимум автоматики | Все, платно |
WP Super Cache
Заголовок раздела «WP Super Cache»WP Super Cache — самый популярный и один из старейших плагинов страничного кэша. Создаёт статические HTML-файлы, а при правильной конфигурации веб-сервер (Apache или nginx) отдаёт их напрямую, вообще минуя PHP.
Дополнительно: настройка CDN, поддержка мобильной версии. Подходит и новичкам, и опытным пользователям. Ограничение: файловое хранилище крайне сложно синхронизировать между двумя и более веб-серверами.
W3 Total Cache
Заголовок раздела «W3 Total Cache»W3 Total Cache — многоуровневый комбайн: страницы, запросы к базе, объекты, браузерный кэш, сжатие скриптов и стилей, CDN. Хранит кэш и на диске, и в памяти (Memcached, Redis).
Ключевое отличие от WP Super Cache: не сохраняет структуру статических файлов, поэтому отдача без PHP невозможна — зато внешние хранилища позволяют легко работать в многосерверной архитектуре. Из-за огромного количества настроек рекомендуется опытным пользователям.
Batcache
Заголовок раздела «Batcache»Batcache — плагин от Automattic с единственной функцией: кэширование страниц, но безупречное. Использует внешнее кэширование объектов (Memcached) для хранения страниц, поэтому легко масштабируется на многосерверную архитектуру.
Исторически Batcache был основой кэширования сети WordPress.com: более 40 млн сайтов, 2000+ серверов, миллиарды просмотров страниц в месяц. У плагина нет даже страницы настроек — вся конфигурация в PHP-файле. Сегодня развивается слабо, но остаётся рабочим вариантом для highload-проектов с Memcached. Только для профессиональных разработчиков.
Surge — современный zero-config плагин от Konstantin Kovshenin: статические HTML на диске, автоинвалидация, управление через WP-CLI. В тестах держит 1000–2500 RPS на одноядерном VPS с 1 ГБ RAM. Подробный разбор: Surge: статический кэш без настроек.
WP Rocket
Заголовок раздела «WP Rocket»WP Rocket — премиум-плагин, считается одним из самых эффективных решений. Помимо страничного кэша: минификация, lazy load, preload, оптимизация БД, CDN. Подходит и новичкам за счёт автоматических настроек, и профессионалам за счёт гибкости.
Как выбрать
Заголовок раздела «Как выбрать»Зависит от размера сайта, возможностей хостинга и опыта:
- Начинаете с нуля → WP Super Cache (бесплатно, просто) или WP Rocket (платно, максимум из коробки).
- Нужна тонкая настройка и внешние хранилища → W3 Total Cache.
- VPS, инфраструктура как код, WP-CLI → Surge.
- Мультисерверный highload с Memcached → Batcache.
- Магазин WooCommerce → см. Кэширование в WooCommerce — динамические страницы (корзина, чекаут, кабинет) исключаются из кэша.
Гибридные подходы
Заголовок раздела «Гибридные подходы»Статический кэш страниц может комбинироваться с динамическими методами: часть контента отдаётся статикой, часть рендерится на клиенте (CSR), часть на сервере (SSR). Гибридные схемы — сложная инженерная тема уровня highload-архитектуры: нужно чётко понимать, что кэшируется где и как инвалидируется. Для большинства проектов достаточно простого страничного кэша + исключений для динамических страниц.
Материалы и источники
Заголовок раздела «Материалы и источники»- Основы кэширования в WordPress — Константин Ковшенин, WP Magazine (сравнение WP Super Cache, W3 Total Cache, Batcache)
- Кеширование WordPress: WP Super Cache, WP Rocket, Surge — WPCraft
- Кэширование WordPress: инфраструктурный уровень — браузерный кэш, OPcache, Varnish, многоуровневая схема