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

Кэширование в 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.