Кэширование в WordPress: обзор
Кэширование — главный инструмент ускорения WordPress и снижения нагрузки на сервер. В ядре существует три основных вида кэширования, и каждый решает свою задачу.
Что такое кэш
Заголовок раздела «Что такое кэш»Кэш — промежуточный буфер, который хранит часто используемые данные в памяти или на диске и ускоряет их выдачу. Типичные кандидаты на кэширование:
- запрос последнего сообщения из внешней сети (Twitter/X, Telegram);
- вывод погоды со стороннего сервиса;
- выборка последних записей из базы данных;
- название сайта и другие опции из базы данных.
Пример: если на главной выводится последний твит, не нужно дергать внешний API при каждом посещении. Достаточно одного запроса, результат сохраняется в кэш на заданное время, а следующие посетители получают его мгновенно.
Три вида кэширования
Заголовок раздела «Три вида кэширования»| Вид | Что хранит | Где реализован | Постоянство |
|---|---|---|---|
| Страничный кэш | HTML страницы целиком | Плагины (WP Super Cache, Surge, Batcache) | Зависит от плагина |
| Объектный кэш | Данные произвольного типа | Ядро (WP_Object_Cache) | Один запрос; постоянный с Redis/Memcached |
| Transients | Данные с временем жизни (TTL) | Ядро (Transients API) | Постоянный: БД или внешний object cache |
Все три вида пересекаются и зависят друг от друга:
- При включённом страничном кэше до объектного кэша дело часто не доходит — страница отдаётся целиком из статики.
- Batcache вообще использует объектный кэш для хранения страниц.
- Transients при наличии внешнего объектного кэша (Redis, Memcached) хранят данные в нём, а не в базе.
Когда что применять
Заголовок раздела «Когда что применять»Для большинства сайтов достаточно страничного кэша — это первое, что стоит сделать при проблемах со скоростью, особенно на дешёвом хостинге. Плагины легко установить и настроить.
Для разработчиков тем и плагинов важно понимать объектный кэш и transients: ядро само кэширует опции, записи, мета-данные и термины, поэтому не нужно бояться функций get_option() и get_post() — они не создают лишних запросов к базе.
Для высоких нагрузок добавляются внешние хранилища (Redis, Memcached) и серверный уровень (Varnish, Nginx FastCGI Cache) — см. Кэширование WordPress: инфраструктурный уровень.
Страницы подраздела
Заголовок раздела «Страницы подраздела»- Кэширование страниц — плагины page cache: WP Super Cache, W3 Total Cache, Batcache, Surge, WP Rocket; сравнение и выбор.
- Кэширование объектов — полный API
WP_Object_Cache: функции, группы, persistent backends, нюансы опций. - Transients API — транзитное кэширование с TTL и матрица выбора: object cache vs transient vs option.
- Surge — zero-config страничный кэш от Konstantin Kovshenin: WP-CLI, 1000–2500 RPS на слабом VPS.
Материалы и источники
Заголовок раздела «Материалы и источники»- Основы кэширования в WordPress — Константин Ковшенин, WP Magazine
- Кэширование объектов в WordPress — Константин Ковшенин, WP Magazine
- Кеширование WordPress: WP Super Cache, WP Rocket, Surge — WPCraft