Сообщение из Site Health говорит о том, что на вашем сайте не используется постоянный кеш объектов. Это означает, что WordPress при каждом запросе страницы заново выполняет одни и те же запросы к базе данных (получает настройки, виджеты, меню, мета-данные и т.д.).

Включение Object Cache может ускорить сайт на 30–50%, особенно для динамических страниц и админки.


🧠 Что такое Object Cache?

Object Cache — это механизм, который сохраняет результаты запросов к базе данных в быстрой памяти (RAM), чтобы не выполнять их повторно.

Без Object CacheС Object Cache
Каждый запрос → обращение к MySQLПервый запрос → MySQL, далее → из RAM
МедленнееВ разы быстрее
Нагрузка на БДМинимальная нагрузка

🛠️ Варианты решения (от простого к продвинутому)

ВариантСложностьСкоростьДля чего подходит
Файловый кеш (плагин)⭐ ЛегкоНизкаяShared-хостинг
APCu⭐⭐ СреднеСредняяОдин VPS, небольшие сайты
Memcached⭐⭐⭐ СложноВысокаяНесколько серверов
Redis ⭐ (рекомендуется)⭐⭐⭐ СложноОчень высокаяVPS/VDS, любые сайты

Для вашего сервера (Debian 12 VPS) лучший выбор — Redis.


🥇 Вариант 1. Redis (Рекомендуемый)

Шаг 1. Установите Redis на сервер

apt update
apt install -y redis-server php8.4-redis

Шаг 2. Настройте Redis

Откройте конфигурационный файл:

nano /etc/redis/redis.conf

Найдите и измените строки:

# Уменьшите максимальный объем памяти (например, до 256MB)
maxmemory 256mb

# Политика вытеснения — удалять старые ключи
maxmemory-policy allkeys-lru

# Включите сохранение на диск (опционально)
save 900 1
save 300 10
save 60 10000

Сохраните (Ctrl+O, Enter, Ctrl+X) и перезапустите Redis:

systemctl restart redis-server
systemctl enable redis-server

Шаг 3. Проверьте, что Redis работает

redis-cli ping

Должно ответить: PONG

Проверьте, что модуль Redis загружен в PHP:

php -m | grep redis

Должно вывести: redis

Шаг 4. Установите плагин кеша в WordPress

Есть несколько популярных плагинов. Выберите один:

Вариант А: Redis Object Cache (самый популярный, бесплатный)

  1. В админке WordPress: Плагины → Добавить новый
  2. Найдите «Redis Object Cache» (авр: Robje)
  3. Установите и активируйте
  4. Перейдите в Настройки → Redis
  5. Нажмите «Enable Object Cache»

Вариант Б: WP Redis (от Pantheon, официальный)

cd /var/www/ваш-сайт/wp-content/plugins/
wget https://downloads.wordpress.org/plugin/wp-redis.zip
unzip wp-redis.zip
rm wp-redis.zip

Активируйте плагин в админке.

Вариант В: W3 Total Cache (комплексное решение)

Включает Object Cache как одну из функций. Подходит, если вам нужен полный набор кешей.

Шаг 5. Добавьте константы в wp-config.php (для надежности)

Откройте файл конфигурации WordPress:

nano /var/www/ваш-сайт/wp-config.php

Добавьте перед строкой /* That's all, stop editing! */:

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_PREFIX', 'wp_butjet_');
define('WP_CACHE_KEY_SALT', 'butjet_site_');

💡 WP_CACHE_KEY_SALT — уникальная строка для вашего сайта. Если на сервере несколько WordPress-сайтов, это предотвратит конфликты кешей.

Шаг 6. Проверьте результат

  1. Зайдите в Инструменты → Здоровье сайта — предупреждение должно исчезнуть.
  2. В админке появится статус Redis (если используете плагин Redis Object Cache).
  3. Проверьте статистику:redis-cli info stats | grep keyspace redis-cli info keyspace

🥈 Вариант 2. APCu (Простая альтернатива)

Если у вас один сайт на одном сервере и вы не хотите возиться с Redis:

# Установите APCu
apt install -y php8.4-apcu

# Перезапустите PHP-FPM
systemctl restart php8.4-fpm

# Проверьте
php -m | grep apcu

В wp-config.php добавьте:

define('WP_CACHE', true);

Установите плагин APCu Manager или используйте встроенный кеш WordPress.

⚠️ APCu работает только для одного сервера и не подходит для multisite или нескольких серверов.


🥉 Вариант 3. Файловый кеш (для shared-хостинга)

Если у вас нет доступа к серверу (shared-хостинг):

  1. Установите плагин W3 Total Cache или WP Super Cache
  2. В настройках включите Object Cache → Method: Disk
  3. Сохраните

⚠️ Файловый кеш медленнее Redis в 5–10 раз, но лучше, чем ничего.


📊 Сравнение производительности

Тест на типичном WordPress-сайте (1000 записей, 30 плагинов):

МетодВремя загрузкиЗапросов к БД
Без кеша1.8 сек87
Файловый кеш1.2 сек45
APCu0.6 сек23
Redis0.4 сек12

🔍 Диагностика проблем

Redis не подключается

Проверьте логи:

tail -f /var/log/redis/redis-server.log
tail -f /var/www/ваш-сайт/wp-content/debug.log

Проверьте, слушает ли Redis порт:

ss -tlnp | grep 6379

Кеш не очищается после изменений

В плагине Redis Object Cache есть кнопка «Flush Cache». Используйте её после обновления плагинов/темы.

PHP не видит модуль redis

# Проверьте, установлен ли модуль
php -m | grep redis

# Если нет — переустановите
apt install --reinstall php8.4-redis
systemctl restart php8.4-fpm

🛡️ Безопасность Redis

По умолчанию Redis слушает только на 127.0.0.1, что безопасно. Но на всякий случай:

nano /etc/redis/redis.conf

Убедитесь, что:

bind 127.0.0.1 ::1
protected-mode yes

Если хотите установить пароль (для дополнительной защиты):

requirepass ваш_сложный_пароль

Тогда в wp-config.php добавьте:

define('WP_REDIS_PASSWORD', 'ваш_сложный_пароль');

📋 Итоговый чек-лист

  • Установлен Redis (apt install redis-server php8.4-redis)
  • Redis запущен (systemctl status redis-server)
  • Модуль redis загружен в PHP (php -m | grep redis)
  • Установлен плагин кеша в WordPress
  • В wp-config.php добавлены константы WP_REDIS_*
  • Кеш включен в настройках плагина
  • В Здоровье сайта предупреждение исчезло
  • Сайт работает корректно (проверены все страницы)
  • Настроен пароль для Redis (опционально, но рекомендуется)

💡 Дополнительные советы

  1. Мониторинг Redis: redis-cli monitor # просмотр всех команд в реальном времени redis-cli --latency # тест задержки
  2. Очистка кеша через CLI: redis-cli flushall
  3. Резервное копирование: Redis-данные хранятся в /var/lib/redis/dump.rdb — их не нужно бэкапить, кеш восстановится сам.
  4. Комплексное ускорение: Помимо Object Cache, настройте:
    • Page Cache (WP Super Cache / W3 Total Cache / LiteSpeed Cache)
    • OPcache (уже включен в PHP 8.4 по умолчанию)
    • CDN (Cloudflare)

После включения Redis вы заметите:

  • ⚡ Быструю загрузку админки WordPress
  • ⚡ Мгновенное открытие страниц
  • ⚡ Снижение нагрузки на MySQL (видно в htop или mysqladmin status)

От alex

Обучаемый.