Настройка плагина кэширования W3 Total Cache для WordPress
W3 Total Cache — бесплатная альтернатива WP Rocket с более гибкими настройками и поддержкой множества бэкендов для хранения кэша: Disk, Memcached, Redis, APC, CDN-интеграции.
Выбор метода кэширования страниц
Disk: Enhanced — кэш сохраняется на диск, Nginx отдаёт статические файлы без PHP. Лучший выбор для большинства хостингов.
Disk: Basic — PHP проверяет наличие кэша, менее эффективно.
Memcached / Redis — кэш в памяти. Быстрее диска, но требует настроенный сервер и достаточно RAM.
Для выбора: если есть Redis или Memcached — используйте их. Если нет — Disk Enhanced.
Настройка General Settings
Page Cache: ✓ Enable
Page Cache Method: Disk: Enhanced
Minify: ✓ Enable
Minify Mode: Manual (Auto ломает JS)
Minify Cache Method: Disk
Object Cache: ✓ Enable (если есть Redis/Memcached)
Object Cache Method: Redis
Browser Cache: ✓ Enable
CDN: ✓ Enable (если используется CDN)
Настройка кэша страниц
Page Cache → Page Cache Settings:
- Cache front page: ✓
- Cache feeds: ✓
- Cache SSL: ✓ (если сайт на HTTPS)
- Don't cache pages for logged in users: ✓
- Don't cache pages with GET parameters: ✓ (кроме utm_*)
Rejected User Agents (не кэшировать для ботов проверки):
.*bot.*
.*crawler.*
Rejected Cookies:
wordpress_logged_in
woocommerce_cart_hash
Redis Object Cache
// wp-config.php
define('W3TC_CONFIG_DATABASE', true);
В настройках W3TC → Object Cache:
- Object Cache Method: Redis
- Redis hostname: 127.0.0.1
- Redis port: 6379
- Redis database: 1
Проверка: W3TC → Dashboard → убедиться, что Object Cache показывает HIT.
Минификация: ручной режим
Minify → JS:
- Embed type: Non-blocking using "defer"
- Добавить каждый JS-файл вручную с правильным типом
Minify → CSS:
- Embed type: Inline
- Combine files: ✓ (если HTTP/1.1, не HTTP/2)
Ручной режим требует аккуратной настройки под каждый сайт, зато не ломает скрипты автоматически.
Browser Cache
Expires Headers для статических файлов:
CSS, JS: 1 year
Images: 1 year
Fonts: 1 year
HTML: не кэшировать
W3TC добавляет Cache-Control и Expires заголовки через .htaccess (Apache) или требует настройки Nginx вручную.
Nginx конфиг для Disk Enhanced
# Кэшированные страницы
set $cache_uri $request_uri;
if ($request_method = POST) { set $cache_uri 'null cache'; }
if ($query_string != '') { set $cache_uri 'null cache'; }
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-.*.php|index.php|sitemap(_index)?.xml)") {
set $cache_uri 'null cache';
}
if ($http_cookie ~* "comment_author|wordpress_logged_in|wp-postpass|woocommerce") {
set $cache_uri 'null cache';
}
location / {
try_files /wp-content/w3tc/pgcache/$cache_uri/_index.html $uri $uri/ /index.php?$args;
}
Сравнение с WP Rocket
W3 Total Cache бесплатен и гибче в настройках, но требует больше времени на конфигурацию и осторожности с минификацией. WP Rocket проще, работает "из коробки" лучше, но стоит денег. Для технических пользователей на VPS — W3TC разумный выбор.
Сроки
Установка и настройка W3 Total Cache с тестированием на конкретном сайте — 4–6 часов.







