W3 Total Cache – это эффективный, надежный и очень функциональный плагин кэширования для WordPress, который позволяет значительно улучшить быстродействие сайта, повысить скорость его загрузки и снизить нагрузку на сервер. В данной статье мы рассмотрим примеры оптимальных настроек плагина W3 Total Cache для использования как на виртуальном хостинге, так и на выделенном сервере.
Содержание
- Скачать настройки
- General Settings
- General
- Page Cache
- Minify
- Opcode Cache
- Database Cache
- Object Cache
- Browser Cache
- Import / Export Settings
- Page Cache
- General
- Cache Preload
- Purge Policy: Page Cache
- Advanced
- Minify
- General
- HTML & XML
- JS
- CSS
- Advanced
- Browser Cache
- General
- CSS & JS
- HTML & XML
- Media & Other Files
- Security Headers
- Очистка кэша
- Решение возможных проблем
- Ошибка активации W3 Total Cache
- Избыточная нагрузка на сервер
- Заключение
В статье будут рассмотрены только самые важные настройки плагина W3 Total Cache. Если вы не нашли каких-то настроек, значит их значения по умолчанию оптимальны или они отвечают за настройку платных функций плагина, поэтому не были рассмотрены.
Скачать настройки
Для максимального удобства вы можете скачать файлы импорта настроек плагина W3 Total Cache. Импортировать настройки можно в меню Performance > General Settings > Import / Export Settings.
- Настройки W3 Total Cache для серверов с Memcached.
- Настройки W3 Total Cache для серверов без Memcached.
Все что вам нужно, это при необходимости указать путь к карте сайта в формате XML на странице Page Cache в разделе Cache Preload после импорта настроек и очистить кэш. На этом настройка плагина W3 Total Cache будет завершена.
General Settings
На данной странице находятся общие настройки плагина W3 Total Cache. Страница доступна в меню Performance > General Settings.
General

- Preview mode – отвечает за включение режима предварительного просмотра. Данный режим активирует плагин только для пользователя, который производит его настройку. Функция полезна при работе с проектами, которые уже находятся в сети и имеют определенный трафик.
Page Cache

- Page Cache – активация кэширования страниц. Позволяет снизить время ответа сервера, увеличить скорость загрузки страниц, а также снизить нагрузку на сервер за счет кэширования страниц сайта.
- Page Cache Method — метод кэширования страниц сайта. Рекомендуемое значение — Disk: Enhanced (кэш будет храниться на жестком диске). На сегодняшний день практически все сервера оборудованы производительными SSD дисками, поэтому данный вариант является оптимальным. Использование методов, предполагающих хранение кэша страниц в оперативной памяти рекомендуется только в том случае, если вы уверены, что ее объема будет достаточно для хранения кэша.
Minify

- Minify – активация минификации файлов. Позволяет увеличить скорость загрузки сайта за счет сжатия CSS, JavaScript и HTML файлов и удаления из них ненужного кода, например, комментариев.
- Minify mode — режим минификации. Рекомендуемое значение — Auto. В этом случае плагин W3 Total Cache самостоятельно определяет файлы для минификации и порядок их подключения. Если вы хотите указать файлы вручную — выберите значение Manual (не рекомендуется).
- Minify Cache Method – метод кэширования. Рекомендуемое значение — Disk. Я всегда рекомендую хранить статические файлы на жестком диске, так как в большинстве случаев это самый оптимальный вариант с точки зрения надежности и производительности.
- HTML minifier — минификатор HTML кода. Рекомендуемое значение — Minify (default).
- JS minifier – минификатор JavaScript кода. Рекомендуемое значение — JSMin (default).
- CSS minifier – минификатор CSS кода. Рекомендуемое значение — Minify (default).
Если после активации минификации возникают проблемы с работой сайта — поэкспериментируйте с разными типами минификаторов.
Opcode Cache

- Opcode Cache – активирует кэширование скомпилированного PHP кода. Рекомендуемое значение — Opcode: Zend Opcache. Обычно функция доступна только на VPS/VDS.
- Validate timestamps – оставляем флажок для корректного обновления кэша без перезагрузки модуля PHP.
Database Cache

- Database Cache – активирует кэширование запросов к базе данных. Позволяет сократить время генерации страниц. Рекомендуется использовать как альтернативу объектному кэшу, если последний по какой-либо причине не может быть использован. Кэширование запросов к БД можно использовать как отдельно, так и одновременно с кэшированием объектов.
- Database Cache Method — метод кэширования запросов к БД. Рекомендуемое значение — Memcached (если установлен) или любой другой вариант, предполагающий хранение кэша в оперативной памяти, а не на жестком диске. Кэширование запросов к БД может создавать огромное количество файлов и папок, которые будут сильно нагружать дисковую подсистему сервера и негативно влиять на его быстродействие.
Object Cache

- Object Cache – активация кэширования объектов. Позволяет кэшировать данные, повторное получение которых может быть дорогостоящим с точки зрения вычислительных мощностей, например, сложные запросы к базе данных.
- Object Cache Method — метод кэширования объектов. Как и в случае с кэшем запросов к базе данных, объектный кэш рекомендуется хранить в оперативной памяти.
Browser Cache

- Browser Cache – активирует клиентское кэширование. Позволяет ускорить загрузку сайта при повторном обращении за счет кэширования графики, CSS, JavaScript и других элементов сайта в браузере пользователя.
Import / Export Settings

- Import configuration – импорт настроек с JSON файла.
- Export configuration — экспорт настроек в JSON файл.
- Reset configuration — сброс настроек плагина W3 Total Cache до значений, заданных по умолчанию.
Page Cache
На данной странице находятся настройки кэширования страниц. Страница настроек доступна в меню Performance > General Settings.
General

- Cache posts page — кэширование страниц записей.
- Don’t cache front page — отключение кэширования главной страницы (если используется статическая страница).
- Cache feeds: site, categories, tags, comments — кэширование фидов (рубрик, меток, комментариев и т.д. ).
- Cache SSL (https) requests — кэширование уникальных SSL запросов. Используйте данную опцию, если ваш сайт работает по протоколу https.
- Cache URIs with query string variables — кэширование страниц с параметрами в URL. Функция очень полезна для интернет-магазинов с фильтрами товаров, а также сайтов, на которых пользователи активно пользуются поиском. К сожалению, в бесплатной версии плагина данная функция недоступна.
- Cache 404 (not found) pages — кэширование страниц ошибок 404. Используйте эту функцию с осторожностью, так как при выборе метода кэширования Disk: Enhanced сервер будет отдавать неправильные коды ответа (200 вместо 404), что негативно повлияет поисковую оптимизацию сайта.
- Don’t cache pages for logged in users — отключить кэширование для авторизованных пользователей. Не рекомендуется отключать данную функцию, так как это приведет к кэшированию данных для всех пользователей, в том числе и администратора сайта.
- Don’t cache pages for following user roles — отключить кэширование для выбранных ролей пользователей. Обязательно выберите роли пользователей, которые отвечают за управление сайтом, такие как «Administrator», «Editor» и т.д.
Cache Preload

- Automatically prime the page cache — активируйте данную функцию для автоматического создания кэша страниц. В противном случае кэш будет создаваться только при посещении страницы.
- Automatically prime the page cache Update interval — интервал между созданием кэша следующей серии страниц.
- Pages per interval — количество страниц, кэш которых будет создан через каждый интервал. Устанавливайте значение с учетом мощности сервера. Чем мощнее сервер, тем больше страниц вы можете указать в данном поле.
- Sitemap URL — ссылка на карту сайта. Страницы будут кэшированы с учетом приоритета в XML карте сайта. Для генерации карты сайта в формате XML используйте плагин Google XML Sitemaps или аналогичный.
Purge Policy: Page Cache
Данный блок отвечает за настройку очистки кэша при создании/редактировании записи и публикации комментариев. С целью повышения производительности, рекомендуется использовать значения, установленные по умолчанию.
Advanced
Данный блок содержит расширенные настройки кэширования страниц. Здесь нас интересует только поле Garbage collection interval, которое отвечает за установку интервала очистки кэша на диске.

Для высоконагруженных проектов рекомендуется выставлять меньшее значение, чтобы вовремя удалять просроченный кэш и не перегружать файловую подсистему сервера.
Minify
На данной странице находятся настройки минификации HTML, XML, CSS и JavaScript.
General

- Rewrite URL structure – активируем данную функцию, чтобы убрать GET параметры из ссылок на сжатые CSS и JavaScript файлы.
- Disable minify for logged in users — отключает загрузку сжатых страниц для авторизованных пользователей.
- Minify error notification — отвечает за настройку оповещений об ошибках при создании минифицированного кэша.
HTML & XML

Данный блок отвечает за настройку минификации HTML кода страниц сайта. Сжатие HTML кода обычно не сильно влияет на производительность, но часто может вызывать проблемы с версткой, такие как уменьшение отступов между элементами и прочее. Учитывая это, я не рекомендую использовать данную функцию.
JS

- JS minify settings – активирует минификацию JavaScript файлов.
- Operations in areas — отвечает за настройку типа загрузки скриптов в разных областях HTML страницы. Поскольку в
headстраницы обычно загружаются только критически важные скрипты, а все остальное переносится ближе к закрывающему тегуbody, то наиболее оптимальными значениями будут Default (blocking) для Before </head> и Non-blocking (using «defer») для After <body>. При желании вы можете поэкспериментировать с разными настройками, но как показала практика, вышеприведенные значения наиболее оптимальны. - Minify / Combine only – тип минификации. Согласно правилам хорошего тона, обычно в темах и плагинах подключаются уже сжатые версии CSS и JavaScript файлов, поэтому рекомендую выставить значение Combine only. В этом случае JavaScript файлы будут только объединены (по возможности).
Остальные настройки оставляем отключенными, учитывая ранее выбранный тип кэширования (Disk: Enhanced).
CSS

Данный блок отвечает за настройку минификации CSS. Здесь особо нечего комментировать, поэтому выставляем настройки, как показано на изображении.
Advanced
В данном блоке содержатся расширенные настройки минификации. Здесь нас интересуют всего два поля:

- Update external files every – интервал между загрузкой и обновлением внешних файлов в минифицированном кэше.
- Garbage collection interval — интервал очистки минифицированного кэша. Для высоконагруженных проектов рекомендуется выставлять меньшее значение.
Остальные настройки оставляем со значениями, заданными по умолчанию.
Browser Cache
На данной странице находятся настройки кэша браузера. Для большинства из них уже заданы оптимальные значения по умолчанию, поэтому вам достаточно лишь сравнить настройки с приведенными ниже примерами и при необходимости подкорректировать их.
General

CSS & JS

HTML & XML

Media & Other Files

Security Headers
В данном блоке настроек нас интересует только поле HTTP Strict Transport Security policy, в котором необходимо поставить флажок, если вы используете на сайте SSL.

Остальные поля рекомендуется оставить со значениями, заданными по умолчанию.
Очистка кэша
Чтобы очистить кэш в плагине W3 Total Cache, используйте верхнее меню Performance в административной панели сайта. Для очистки нужного кэша, достаточно перейти по соответствующей ссылке в меню.

Также вы можете использовать соответствующие кнопки в настройках плагина W3 Total Cache или уведомлениях, которые появляются, например, после активации/деактивации какого-либо плагина WordPress.

Решение возможных проблем
За все время использования плагина W3 Total Cache я столкнулся лишь с двумя проблемами:
- Невозможности активации плагина из-за неправильно заданных прав доступа к файлам.
- Избыточной нагрузке на сервер из-за использования карты сайта для автоматического создания кэша.
Ошибка активации W3 Total Cache

Если после активации плагина вы видите подобное уведомление, вам необходимо проверить правильность установки прав доступа к файлам и папкам WordPress.
Рекомендуемые права доступа для WordPress:
- 755 или 750 для всех каталогов.
- 644 или 640 для всех файлов.
- 440 или 400 для файла
wp-config.php.
Если после изменения прав доступа плагин по-прежнему не активируется, установите права 644 для файла wp-config.php, далее активируйте плагин W3 Total Cache, после чего изменить права обратно на 400 или 440.
Также вы можете вручную отредактировать файл wp-config.php. Для этого откройте его в любом текстовом редакторе, например, NotePad++ и добавьте в самое начало следующий код:
/** Enable W3 Total Cache */
define('WP_CACHE', true); // Added by W3 Total Cache
После этого сохраните файл, обновите его на сервере и повторно активируйте плагин.
Избыточная нагрузка на сервер
Если вы заметили резкий рост нагрузки на сервер после активации плагина W3 Total Cache, который сочетается с частыми обращениями плагина к XML карте сайта (смотрите логи сервера), то причиной является использования предварительного создания кэша страниц с использование карты сайта.

Решить проблему можно изменением приоритета страниц в XML карте сайта, удалением ссылки на карту сайта в настройках предварительного создания кэша (Performance > Page Cache > Cache Preload > Sitemap URL) или полным отключением данной функции.
Заключение
W3 Total Cache – это один из самых функциональных и надежных плагинов кэширования для WordPress, который также является и одним из самых популярных и высоко оцениваемых.
Несмотря на это, из-за сложности настройки и отсутствия качественной информации о плагине на русском языке, многие пользователи до сих пор предпочитают использовать менее эффективные, но более простые решения, такие как WP Super Cache, Hyper Cache или аналогичные.
В данной статье предоставлено достаточное количество информации, чтобы любой желающий, независимо от знаний и опыта, смог настроить кэширование на своем сайте при помощи плагина W3 Total Cache и отказаться от использования пусть и неплохих, но менее эффективных решений.


У меня в панели ISPmanager настроено и сжатие и кэширование. Нужно ли мне дополнительно устанавливать на сайт плагин кэширования?
Здравствуйте, Сергей!
Все зависит от настроек. Например, на моем хостинге есть возможность настройки кэширования статических файлов, сжатия и объединения CSS и JS, а также некоторые другие функции, которые работают лучше, чем в плагине. Таким образом, я отключил эти функции в настройках W3 Total Cache, но кэширование страниц оставил, так как данная функция недоступна на хостинге.