Если WordPress начинает тормозить не из-за картинок или тяжёлой темы, а из-за постоянных обращений к базе данных, object cache часто даёт самый заметный эффект. Он не ускоряет всё подряд, но хорошо снимает повторяющиеся запросы к одним и тем же данным: настройкам сайта, объектам записей, метаданным, результатам типовых запросов плагинов и темы.
На практике это особенно полезно, когда сайт уже живёт на реальном трафике, а база данных становится узким местом. В таких случаях Redis или Memcached могут уменьшить число запросов к MySQL и разгрузить сервер. Но это не универсальная кнопка ускорения: если проблема в медленном PHP, плохом хостинге, тяжёлой теме или отсутствии обычного page cache, object cache сам по себе не спасёт.
Когда object cache действительно помогает
WordPress по умолчанию умеет кэшировать данные только в пределах одного запроса. Это значит, что если один и тот же объект нужен на каждой странице, WordPress всё равно может снова и снова ходить в базу данных при новом открытии страницы. Persistent object cache сохраняет такие данные между запросами, и повторные обращения идут уже в Redis или Memcached, а не в MySQL.
Эффект обычно заметен, если у сайта есть хотя бы один из признаков:
- много одинаковых запросов к базе на каждой странице;
- в админке или на фронтенде растёт время ответа при увеличении трафика;
- на хостинге видно высокую нагрузку на MySQL, а CPU у PHP не всегда загружен полностью;
- используются плагины, которые часто читают одни и те же данные: каталоги, фильтры, membership, статистика, сложные формы, мультиязычность.
Если же сайт маленький, запросов немного и база почти не нагружена, разница может быть слабой или почти незаметной. В таком случае сначала имеет смысл проверить page cache, оптимизацию темы и плагинов, а уже потом ставить object cache.
Redis и Memcached: что выбрать
Оба решения решают одну задачу — хранят кэш вне PHP-процесса и вне MySQL. Но в реальной работе Redis чаще выбирают для WordPress, потому что он гибче и обычно лучше подходит для долгоживущего кэша объектов.
| Параметр | Redis | Memcached |
|---|---|---|
| Тип хранилища | Ключ-значение с дополнительными возможностями | Простой распределённый кэш |
| Сценарий для WordPress | Чаще подходит как persistent object cache | Тоже подходит, но обычно выбирают реже |
| Гибкость | Выше | Ниже |
| Типичный выбор на хостингах | Чаще доступен и лучше поддерживается | Иногда встречается, но не везде |
Если у вас есть выбор, для WordPress обычно разумнее начинать с Redis. Memcached имеет смысл, когда он уже есть на хостинге, а Redis недоступен или не поддерживается окружением. Для самой логики object cache оба варианта рабочие, но Redis чаще проще в сопровождении и диагностике.
Что нужно проверить до настройки
Перед включением object cache стоит убедиться, что ваш хостинг вообще даёт доступ к Redis или Memcached. Это зависит от тарифа, панели управления и того, есть ли у вас SSH-доступ или только графическая панель.
Проверьте три вещи:
- доступен ли сервис Redis или Memcached на сервере;
- есть ли у PHP нужное расширение, например
redisилиmemcached; - поддерживает ли ваш плагин кэша именно тот способ подключения, который предлагает хостинг.
Если вы не уверены, проще всего посмотреть документацию хостинга или спросить поддержку, какой вариант object cache они рекомендуют для WordPress. На shared-хостинге иногда доступен только готовый плагин с преднастроенным подключением. На VPS или выделенном сервере чаще приходится настраивать сервис и PHP-расширение вручную.
Как включить object cache в WordPress
Сам WordPress не подключает Redis или Memcached «из коробки» автоматически. Нужен плагин, который создаёт постоянный object cache и добавляет файл object-cache.php в каталог wp-content. Именно этот drop-in перехватывает работу стандартного кэша WordPress.
Обычно порядок действий такой:
- Убедиться, что на сервере установлен и запущен Redis или Memcached.
- Установить плагин для object cache, совместимый с вашим сервисом.
- Указать параметры подключения, если это требуется.
- Активировать persistent object cache и проверить, что WordPress его видит.
Для Redis на практике часто используют плагин Redis Object Cache. Для Memcached — плагин, который умеет работать с Memcached через drop-in object cache. Важно не путать object cache с page cache: это разные уровни кэширования, и один не заменяет другой.
После активации проверьте, появился ли файл wp-content/object-cache.php. Если его нет, persistent cache, скорее всего, не включился. Также полезно посмотреть статус в интерфейсе плагина: он обычно показывает, подключён ли сервер кэша и работает ли drop-in.
Как понять, что кэш реально работает
Самый надёжный способ — смотреть не на абстрактное «сайт стал быстрее», а на признаки снижения нагрузки на базу и уменьшения повторных запросов.
Проверьте следующее:
- в панели плагина статус подключения к Redis или Memcached отображается как успешный;
- в каталоге
wp-contentестьobject-cache.php; - в логах или мониторинге хостинга снизилось число обращений к MySQL;
- на повторных загрузках страниц время ответа стало стабильнее;
- админка и страницы с большим количеством динамических данных перестали «проседать» под нагрузкой.
Если у вас есть доступ к инструментам мониторинга, сравните поведение сайта до и после включения кэша на одинаковом трафике. Смысл object cache именно в том, чтобы уменьшить число одинаковых обращений к базе. Если MySQL по-прежнему загружена почти так же, значит либо кэш не подключился, либо узкое место находится в другом месте.
Когда Redis или Memcached не дадут заметного эффекта
Есть несколько типичных ситуаций, когда object cache ставят, а ускорения почти не видят. Это не значит, что технология плохая — просто она решает не ту проблему.
Слабый эффект бывает, если:
- сайт упирается в отсутствие page cache, а не в базу данных;
- тема или плагины генерируют слишком тяжёлый HTML и много PHP-логики;
- на сервере мало CPU или памяти, и узкое место не в MySQL;
- запросы к базе уникальны и почти не повторяются;
- объектный кэш включён, но сервис Redis/Memcached работает нестабильно или неправильно настроен.
Отдельно стоит помнить, что object cache не заменяет оптимизацию базы данных. Если в WordPress накопились лишние автосохранения, ревизии, мусор от плагинов или тяжёлые запросы от конкретного расширения, кэш лишь частично сгладит симптом. Причину всё равно придётся искать.
Практический порядок действий для владельца сайта
Если задача — именно ускорить WordPress за счёт снижения нагрузки на базу, я бы шёл так:
- Проверил, есть ли на хостинге Redis или Memcached.
- Выбрал Redis, если он доступен без лишних ограничений.
- Установил совместимый плагин object cache.
- Убедился, что drop-in
object-cache.phpпоявился вwp-content. - Проверил статус подключения и нагрузку на MySQL после включения.
- Сравнил результат на реальных страницах с повторяющимися запросами, а не только на главной.
Если после этого сайт не ускорился, не стоит сразу менять Redis на Memcached или наоборот. Сначала проверьте, действительно ли проблема была в базе данных. Для многих сайтов более заметный эффект даёт связка из page cache и object cache, а не один только object cache.
Итог простой: Redis и Memcached полезны, когда WordPress тратит слишком много времени на повторные обращения к базе. Для большинства сайтов с заметной динамикой и нагрузкой Redis — более практичный первый выбор. Memcached тоже рабочий вариант, но обычно его берут, когда он уже есть в инфраструктуре. Если же база не является узким местом, object cache не даст чудесного ускорения, и это нормально.