Сообщение из 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 (самый популярный, бесплатный)
- В админке WordPress: Плагины → Добавить новый
- Найдите «Redis Object Cache» (авр: Robje)
- Установите и активируйте
- Перейдите в Настройки → Redis
- Нажмите «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. Проверьте результат
- Зайдите в Инструменты → Здоровье сайта — предупреждение должно исчезнуть.
- В админке появится статус Redis (если используете плагин Redis Object Cache).
- Проверьте статистику:
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-хостинг):
- Установите плагин W3 Total Cache или WP Super Cache
- В настройках включите Object Cache → Method: Disk
- Сохраните
⚠️ Файловый кеш медленнее Redis в 5–10 раз, но лучше, чем ничего.
📊 Сравнение производительности
Тест на типичном WordPress-сайте (1000 записей, 30 плагинов):
| Метод | Время загрузки | Запросов к БД |
|---|---|---|
| Без кеша | 1.8 сек | 87 |
| Файловый кеш | 1.2 сек | 45 |
| APCu | 0.6 сек | 23 |
| Redis | 0.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 (опционально, но рекомендуется)
💡 Дополнительные советы
- Мониторинг Redis:
redis-cli monitor # просмотр всех команд в реальном времени redis-cli --latency # тест задержки - Очистка кеша через CLI:
redis-cli flushall - Резервное копирование: Redis-данные хранятся в
/var/lib/redis/dump.rdb— их не нужно бэкапить, кеш восстановится сам. - Комплексное ускорение: Помимо Object Cache, настройте:
- Page Cache (WP Super Cache / W3 Total Cache / LiteSpeed Cache)
- OPcache (уже включен в PHP 8.4 по умолчанию)
- CDN (Cloudflare)
После включения Redis вы заметите:
- ⚡ Быструю загрузку админки WordPress
- ⚡ Мгновенное открытие страниц
- ⚡ Снижение нагрузки на MySQL (видно в
htopилиmysqladmin status)