Установка и настройка плагина W3 Total Cache. Мастер-класс от Романа Теличко. W3 Total Cache настройка плагина кеширования

W3 Total Cache – один из двух самых популярных плагинов для кеширования сайтов на WordPress. Сегодня у нас статья — руководство по полной настройке этого плагина.

Сама по себе установка W3 Total Cache простая, но потом плагин буквально начинает бомбардировать вас огромным количеством опций: тут вам и кэширование браузера, и объектное кэширование, и кэширование фрагментов диска, так что если вы не разработчик, то у вас голова пойдет кругом.

И еще факт, который реально раздражает — вы не можете просто взять и включить все опции. Если, как у большинства людей, у вас простой, виртуальный хостинг, то это может существенно затормозить работу всего вашего сайта. Так что, вам нужно выбрать и настроить нужные только вам типы кэширования.

1. Конфигурация Общих настроек (General Settings)

Существует два уровня настроек W3 Total Cache. Сначала вам нужно настроить «Общие настройки», где вы включаете или выключаете более 10 разных W3 Total Cache-опций. Затем вам откроется доступ к отдельным страницам с настройками для каждого модуля.

После инсталляции W3 Total Cache, вам, прежде всего, нужно зайти в «Общие настройки»:

Начнем с того, что откроем таб «Общие настройки». Вот как нужно настроить каждую опцию, которую вы видите на странице «Общие настройки»:

1.1 Общие (General)

Первый бокс позволяет вам быстренько включить или отключить все опции W3 Total Cache. Было бы здорово просто взять и нажать на эту кнопочку.., но нельзя.

Также здесь можно включить режим привью (Preview mode). В этом режиме все внесенные изменения не коснуться живого сайта, пока вы их не одобрите окончательно. Если вы работаете на загруженном живом сайте, то стоит использовать этот режим. Но если вы настраиваете W3 Total Cache на свежей WordPress-инсталляции или на вашем сайте мало трафика, то просто проигнорируйте этот режим.

1.2 Кэш страницы (Page Cache)

Следующий бокс – это кэш страницы (Page Cache). Кэш страницы – это то, что вам нужно. Одно кэширование страницы уже способно существенно улучшить производительность вашего сайта. После включения этой опции, вам нужно выбрать метод кэширования страницы (Page cache method).

Метод, зависит от вашего хостинга.

  • Для виртуального хостинга: выберете Disk: Enhanced.
  • Для выделенного сервера или VPS: вы можете использовать один из методов кэширования Opcode

Если вы не уверены в том, какой вид хостинга используете, то, вероятно, у вас все-таки виртуальный хостинг 🙂 так что если сомневаемся, выбираем метод Disk: Enhanced.

1.3 Minify (Минификация)

Переходим к следующему пункту: Minify. Минификация – это базово уменьшение файлов HTML, CSS и JavaScript без потери их функциональности. Эффект достигается путем удаления ненужной информации, типа разрывов строк и длинных пробелов. Вот почему минимизированный код так тяжело читать человеку.

Не вдаваясь в детали, минификация – это нечто такое, что всегда рекомендует Google PageSpeed, так что ей нельзя пренебрегать.

Когда вы кликаете на кнопочку включить, W3 Total Cache выводит предупреждение о том, что на сайте возможно появятся неполадки. И они действительно могут появиться, так что вам нужно будет подстроить минификацию под себя.

Начнем с того, что поставим Minify mode в режим Auto. Я не могу обещать, что в этом случае ваш сайт продолжит бесперебойно работать. Если сайт прекратил нормально работать, то поиграйте с настройками. В таких случаях я обычно переключаюсь на плагин типа Autoptimize для минификации, или же просто отключаю эту опцию в W3 Total Cache. Также можно использовать CloudFlare со встроенной минификацией.

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

1.4 Opcode Cache

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

1.5 Database Cache (Кэш базы данных)

Согласно мнению разработчиков W3 Total Cache, “W3TC – это швейцарский нож, который вы должны попробовать. В общем caching object cache и database cache to disk — это то, что использовать не рекомендуется.”

Кэширование базы данных (Database caching) может потенциально разогнать ваш сайт, переместив исполнение процессов из базы данных в процессор/память. Но есть проблема – для большинства виртуальных хостингов база данных лучше работает с нагрузкой, чем процессор или память. Так кэширование базы данных может замедлить работу вашего сайта, перегрузив другие аспекты вашего сервера.

Так что, если у вас виртуальный хостинг, то лучше оставить кэширование базы данных отключенным.

1.6 Object Cache (Объектное кэширование)

Объектное кэширование может разогнать ваш WordPress-сайт…или же может существенно затормозить работу админки WordPress.

Если вы пытаетесь понять, почему админка WordPress медленно работает, то, прежде всего, вам следует отключить объектное кэширование. Вот почему я рекомендую отключить объектное кэширование. Конечно, вы можете это все протестировать, но если у вас виртуальный хостинг, то этот вид кэша вряд ли будет полезен, а скорее всего, затормозит работу админки.

Но здесь есть одно исключение: если у вас есть крайне динамичный проект (например, BuddyPress, bbPress и т.д.), вы можете рассмотреть объектное кэширование.

1.7 Browser Cache (браузерное кэширование)

Если вы когда-нибудь прогоняли свой сайт через Google PageSpeed Insights, то вы вероятно, знаете, что “leverage browser caching” (усилить кэширование браузера)– это любимое сообщение данного инструмента. И здесь вы можете применить это усиление.

Кэширование браузера – это простой метод улучшения производительности сайта путем кэширования данных в браузере посетителя. Так как все упирается в локальное хранение данных на компьютерах ваших посетителей, то не нужно бояться того, что работа вашего сайта затормозится.

Неважно, какой у вас хостинг, в любом случае вы должны обязательно включить этот вид кэширования

1.8 CDN

Если вы используете CDN, вы можете подключиться к W3 Total Cache с помощью этой опции. Вы можете попытаться найти ваш CDN-сервер в выпадающем меню, или выбрать Generic Mirror, если в списке нет нужной опции.

Если вы используете CloudFlare, не нужно интегрироваться здесь. Вместо этого вам нужно будет добавить расширение CloudFlare. Вы можете сделать это из таба Extensions.

Если вы не используете CDN, то не включайте этот бокс. Включать эту опцию нужно только, если у вас уже есть CDN провайдер.

1.9 Reverse Proxy (Обратный прокси)

Большинство WordPress-сайтов должно игнорировать эту опцию. Обратный прокси – это такая вещь, что если вы настолько продвинуты, что уметь ее использовать, то вам вероятно нет нужды читать этот гайд:)

1.10 Monitoring, Fragment Cache, Misc, and Licensing (Мониторинг, Кэш фрагмента, Misc и лицензирование)

Эти опции вы можете просто проигнорировать: пропустите их и преступите к секции Debug.

1.11 Debug (устранение проблем) Monitoring, Fragment Cache, Misc, and Licensing

Если у вас возникли проблемы с W3 Total Cache, то вы можете включить дебаг-опции, но только временно. Для обычного использования отключите все эти боксы. Так как если они не используются для решения проблем, то производят много лишнего кода.

Вот и все настройки секции General Settings. Не забудьте сохранить изменения.

Настройка индивидуальных методов кэширования

Теперь давайте настроем методы кэширования, которые включили ранее. Вам не нужно настраивать выключенные опции, так что настраиваем только включенное ранее. Предупреждаю, что если я не описал далее какие-то настройки, то вы можете оставить все, как есть по умолчанию, так как просто слишком много опций, чтоб писать по каждому пункту.

Настройка Кэширования страницы (Page Caching)

Сначала идет кэширование страницы. Здесь большинство настроек оставляем по умолчанию, но есть несколько важных моментов, которые надо настроить.

Прежде всего, если вы используете SSL, вы должны поставить галочку напротив Cache SSL (https) requests. Также поставьте галочку напротив Cache feeds, не зависимо от того, используете вы SSL или нет:

Немного прокрутите страницу вниз и включите опцию Automatically prime the page cache. А также вам нужно выбрать Preload the post cache upon publish events. Здесь можно оставить цифры, как по умолчанию. Убедитесь в том, что вы также добавили URL карты сайта:

Если вы не уверены в своих действиях, то все остальное оставьте так, как есть, но убедитесь в том, что сохранили изменения.

Настройка Minify

Секция «Минификация» может быть не так проста в настройке. Ведь пока вы что-то не попробуете, вы не узнаете, насколько негативно это скажется на работе вашего сайта. Так что советуем вам начать с настроек по умолчанию. Но если что-то с сайтом пойдет не так, то придется немного поработать с настройками.

Вы можете попытаться поиграть с настройками минификации плагина W3 Total Cache, чтоб решить какую-либо проблему. Но тут надо будет очень сильно углубиться в проблему, а это не так уж легко, если вы не разработчик.

Я думаю, что гораздо проще переключиться на Autoptimize, если настройки минификации W3 Total Cache по умолчанию вызывают проблемы. Если вы используете CloudFlare, вы также можете использовать преимущества встроенной минификации CloudFlare.

Так что если вы переключитесь на Autoptimize или CloudFlare, убедитесь в том, что вы отключили минификацию в табе General Settings.

Object cache

Тут можно выставить время жизни объектов кэша и интервал очистки. Оставьте время как есть, по умолчанию. Настройки ниже касаются мультисайтовости, так что их тоже трогать не стоит большинству пользователей.

Как настроить кэш браузера (Browser Cache)

Теперь вам нужно настроить кэш браузера. Не забудьте, что я пропустил настройку database caching и object caching, потому что большинство из вас должно эти опции отключить.

Для кэширования браузера вы должны включить 6 первых опций, а именно:

  • Set Last-Modified header
  • Set expires header
  • Set cache control header
  • Set entity tag (eTag)
  • Set W3 Total Cache header
  • Enable HTTP (gzip) compression

Прокрутите страницу вниз и поставьте галочку напротив пункта Do not process 404 errors for static objects with WordPress. Все остальное советуем оставить, как есть.

Настройка CDN

К сожалению, здесь мы не можем дать вам точных инструкций, так как настройки зависят от того какой CDN вы используете и используете ли вообще. К счастью благодаря тому, что W3 Total Cache – это очень популярное решение, большинство CDN-провайдеров предлагает детальные инструкции процесса настройки.

Помните, что если вы используете CloudFlare в качестве WordPress CDN, вам нужно добавить расширение CloudFlare в табе Extensions.

W3 Total Cache Extensions (Расширения)

Я уже упомянул расширение CloudFlare, но W3 Total Cache также включает расширения для большого количества других инструментов.

Например, есть расширения для:

  • Google AMP pages
  • CloudFlare
  • FeedBurner
  • Genesis Framework (Обязательно установите, если используете Genesis)
  • Yoast SEO
  • WPML (Обязательно установите, если используете WPML для перевода).

Каждое расширение требует какой-либо настройки. К примеру, если вы включите CloudFlare, вам нужно будет ввести API-ключ активации. Затем вы можете работать с функциями CloudFlare прямо из W3 Total Cache:

Слишком сложно? Просто выберете другой плагин кэширования.

W3 Total Cache — плагин конечно мощный и будет отличным решением для опытных пользователей, но для новичков рекомендую использовать более дружественные к пользователю плагины кэширования, к примеру Cache Enabler , или великолепный WP-Rocket . Вам нужно потратить час, чтоб настроить W3 Total Cache, а в случае например, с Cache Enabler вам потребуется всего минуточка.

Конечно, тот же Cache Enabler не имеет опций настройки для кэша базы данных, объектного кэширования и прочего. Но обычные WordPress-пользователи и не нуждаются в подобной функциональности. Удачи вам в оптимизации.

W3 Total Cache – это эффективный, надежный и очень функциональный плагин кэширования для WordPress, который позволяет значительно улучшить быстродействие сайта, повысить скорость его загрузки и снизить нагрузку на сервер. В данной статье мы рассмотрим примеры оптимальных настроек плагина W3 Total Cache для использования как на виртуальном хостинге, так и на выделенном сервере.

В статье будут рассмотрены только самые важные настройки плагина W3 Total Cache. Если вы не нашли каких-то настроек, значит их значения по умолчанию оптимальны или они отвечают за настройку платных функций плагина, поэтому не были рассмотрены.

Скачать настройки

Для максимального удобства вы можете скачать файлы импорта настроек плагина W3 Total Cache. Импортировать настройки можно в меню Performance > General Settings > Import / Export Settings .

Все что вам нужно, это при необходимости указать путь к карте сайта в формате XML на странице Page Cache в разделе Cache Preload после импорта настроек и очистить кэш. На этом настройка плагина W3 Total Cache будет завершена.

General Settings

На данной странице находятся общие настройки плагина W3 Total Cache. Страница доступна в меню P erformance > General Settings .

General


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

Page Cache


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

Minify


Performance > General Settings > 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


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

Database Cache


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

Object Cache


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

Browser Cache


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

Import / Export Settings


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

Page Cache

На данной странице находятся настройки кэширования страниц. Страница настроек доступна в меню P erformance > General Settings .

General


Performance > Page Cache > 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


Performance > Page Cache > 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 , которое отвечает за установку интервала очистки кэша на диске.

Performance > Page Cache > Advanced > Garbage Colletion Interval

Minify

На данной странице находятся настройки минификации HTML, XML, CSS и JavaScript.

General


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

HTML & XML


Performance > Minify > HTML & XML

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

JS


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

Остальные настройки оставляем отключенными, учитывая ранее выбранный тип кэширования (Disk: Enhanced ).

CSS


Performance > Minify > CSS

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

Advanced

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


Performance > Minify > Advanced
  • Update external files every – интервал между загрузкой и обновлением внешних файлов в минифицированном кэше.
  • Garbage collection interval - интервал очистки минифицированного кэша. Для высоконагруженных проектов рекомендуется выставлять меньшее значение.

Остальные настройки оставляем со значениями, заданными по умолчанию.

Browser Cache

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

General


Performance > Browser Cache > General

CSS & JS


Performance > Browser Cache > CSS & JS

HTML & XML


Performance > Browser Cache > HTML & XML

Media & Other Files


Performance > Browser Cache > Media & Other Files

Security Headers

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

Performance > Browser Cache > Security Headers > HTTP Strict Transport Security policy

Очистка кэша

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


Меню очистки кэша в W3 Total Cache

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

Решение возможных проблем

За все время использования плагина W3 Total Cache я столкнулся лишь с двумя проблемами:

  1. Невозможности активации плагина из-за неправильно заданных прав доступа к файлам.
  2. Избыточной нагрузке на сервер из-за использования карты сайта для автоматического создания кэша.

Если после активации плагина вы видите подобное уведомление, вам необходимо проверить правильность установки прав доступа к файлам и папкам 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 и отказаться от использования пусть и неплохих, но менее эффективных решений.

Нашли ошибку? Выделите ее и нажмите Ctrl + Enter

Версия для печати

Хотите узнать секрет быстрой загрузки сайтов на Wordpress? Помимо хорошего хостинга и правильно написанных расширений, используйте кэширование и CDN (content delivery network, сеть доставки контента). К примеру, плагин W3 Total Cache.

В этой статье мы рассмотрим установку и настройку W3 Total Cache для максимальной производительности. Также приведем пример комбинации использования кэширования и сервисов CDN для максимального ускорения загрузки сайта.

Перед тем, как начать, рекомендуется проверить производительность сайта с помощью онлайновых сервисов Google Page Speed и/или Pingdom Tools . Это следует сделать для того, чтобы сравнить прежние результаты с теми, что получатся после всех настроек.

Что такое W3 Total Cache?

W3 Total Cache это наиболее полный и быстрый плагин для оптимизации производительности в Wordpress. Это подтверждено использованием его на многих популярных сайтах, таких как: AT&T, Mashable, Smashing Magazine и на многих других. W3 Total Cache увеличивает скорость работы сайта путем повышения производительности сервера, кэширования всех аспектов сайта, уменьшения времени отклика и предоставления прозрачной интеграции с сетью доставки контента (CDN).

Установка W3 Total Cache в WordPress

Перед установкой W3 Total Cache, убедитесь, что удалены все другие кэширующие плагины. Если этого не сделать, то при активации плагина W3 Total Cache появится ошибка.

Для установки потребуется выполнить нехитрый порядок действий:

Перейдите в административную панель сайта и нажмите на «Плагины »→ «Добавить новый ». В строке поиска наберите «W3 Total Cache » и увидите его в результатах поиска:


Нажмите на кнопку «Установить », после установки активируйте плагин.

Параметры и настройка W3 Total Cache

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

Общие настройки

Для того, чтобы перейти на страницу с общими настройками, нажмите на меню «Кеширование» в административной панели Wordpress. На ней представлены общие настройки плагина. Убедитесь, что находитесь в общих настройках, а не на странице консоли плагина W3 Total Cache.


Что такое кэширование страницы?

Первый из параметров, который можно увидеть - кэширование страницы. Он отвечает за создание кэшированной статический страницы для каждой загруженной страницы сайта. Таким образом, вместо постоянной генерации динамической страницы, посетителю будет открываться закэшированная статическая страница. На изображении ниже можно увидеть как работает эта функция:


На картинке изображено следующее: обычно когда пользователь заходит на сайт, Wordpress запускает PHP-­скрипты и запросы к базе данных для вывода запрошенной страницы. Тогда PHP обрабатывает данные и создает страницу. Этот процесс вывода страницы потребляет определенные ресурсы сервера. Включение возможности кэширования страницы позволяет пропустить процесс генерации страницы.

Для виртуального хостинга, который использует большинство начинающих владельцев сайта, рекомендуется использовать метод кэширования страниц «Disk:Enhanced». Выберите пункт «кэширование страниц» и сохраните параметры.


Большинству этого будет достаточно. Данное руководство - для вебмастеров начинающего уровня. И мы сознательно пропускаем все расширенные настройки кэширования страниц, подразумевая, что настройки по умолчанию вполне достаточны.

Мы также пропускаем минификацию, кэширование запросов к БД и кэширование объектов. По причине того, что не все серверы предоставляют возможности для использования этих параметров.

Следующий пункт настроек - браузерный кэш.

Что такое браузерный кэш?

Каждый раз, когда посетитель заходит на сайт, его браузер скачивает все изображения, css­ файлы, js­скрипты и другие статические файлы со страницы сайта во временную директорию. Это делается для того, чтобы при переходе на другую страницу файлы не скачивались повторно, а открывались из кеша браузера. Это ускоряет загрузку сайта и экономит трафик.

Параметр браузерного кэширования в W3 Total Cache позволяет указать время хранения закэшированных элементов. При учете, что вы не меняете логотип каждый день, кэширование на 24 часа не причинит никаких неудобств. Просто выделите этот параметр и сохраните. После этого перейдите в «Кэширование» => «Браузерное кэш» для установки прочих настроек.


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

В этой простой настройке Wordpress, остальные параметры включены по умолчанию. Все, что было рассмотрено выше, будет хорошо работать на большинстве серверах, предоставляющих веб­-хостинг. Но у W3 Total Cache есть еще и другие параметры. Постараемся рассмотреть, что они из себя представляют и почему их не включают на всех сайтах.

Минификация

Минификация - это просто уменьшение размера статических файлов вашего сайта для экономии каждого килобайта по возможности. Но использование минификации файлов «налету» увеличивает потребление ресурсов сервера. И в некоторых случаях полезность использования этой возможности может быть сомнительна. Да и к тому же, не на каждом сервере существует возможность ее использования без предварительной настройки.

Кеширование запросов к БД

Кеширование запросов к БД уменьшает нагрузку сервера путем кэширования SQL­ запросов. Это уменьшает или исключает время на обработку запросов к базе данных, которая может быть незаметна на большинстве маленьких сайтов. Но включение этой функции может увеличить нагрузку на сам сервер. Поэтому в некоторых случаях лучше использовать встроенные буферы кэширования самого сервера баз данных. Многие хостинг-­провайдеры не рекомендуют использовать это кэширование.

Кеширование объектов

Если у вас сайт с большим количеством динамических объектов, то следует посмотреть в сторону возможности кэширование объектов с помощью W3 Total Cache . В основном это используется при сложных, ресурсоемких запросах к базе данных. Для большинства начинающих вебмастеров эта функция не требуется.

Итак, когда все настроено, будет хорошо сделать резервную копию настроек W3 Total Cache. Для этого следует перейти на страницу общих настроек плагина W3 Total Cache в раздел «Настройки импорта / экспорта» и нажать «Скачать файл параметров».

На этом краткое руководство по установке и настройке W3 Total Cache можно считать оконченным. Надеемся, что эта статья была для вас полезной, и ваш сайт снова обрел крылья.

Как я писала в предыдущей статье, в моей жизни, помимо хакерских нападений на блог, происходит много хорошего и светлого. Рука помощи, протянутая Романом Теличко как будто случайно, а на самом деле неслучайно, – только одно из таких событий (вот ссылка на его сайт http://romantelychko.com — можете познакомиться с тем, чем занимается Роман). Справедливости ради, должна сразу сказать, что не только он один примчался учить меня уму-разуму, как поставить надежную защиту блогу. Но позвольте не смешивать все и всех, потому что сегодня расскажу, какой он дал мне мастер-класс по настройке плагина W3Total Cache и проиллюстрирую его же скриншотами. Невероятно, но в Интернете оказалось очень много людей, которые борются с . Роман — один из них.

Прошу учесть, что никакой теории о плагине и его функциях здесь не будет. Cache и есть Cache. Его нужно чистить, но способов есть много, глубина разная и эффективность тоже.

Если вы давно хотите установить плагин W 3 Total Cache, то эта статья как раз для вас. Как скачать плагин, все знают:

ПЛАГИНЫ – ДОБАВИТЬ НОВЫЙ – ввести в окно поиска W3 TOTAL CACHE – ЗАГРУЗИТЬ — УСТАНОВИТЬ – АКТИВИРОВАТЬ

Но!!! «Единственная проблема в том, что настройка этого плагина часто зависит от возможностей и настроек как сервера, так и вообще сайта, на котором это всё происходит. Помните, что я спросил у Вас в первую очередь? Какие методы кэширования доступны?» (цитата из переписки с Романом). Будем считать это отправной точкой. Данные настройки плагина W3 TOTAL CACHE в описанном случае выполняются при методе кэширования Opcode: Alternative PHP Cache (APC) . Возможные варианты (методы) у себя я увидела, уже установив плагин. И еще один очень важный момент: не давайте странице переводиться на русский , если работаете в браузере Google Chrome. Плагины любят родной язык.

Настраивается каждый блок отдельно, и в каждом нужно сохранять измененные параметры. Порядок неважен. Можно идти сверху вниз по порядку, но не забывать сохранять произведенные настройки, прежде чем перейти к следующему блоку. При наведении в меню на название плагина Performance появляется выпадающее меню его блоков.

01. Меню плагина w 3 cache

В таком порядке и пойдем.

Это общий вид того, что у нас должно получиться после настройки плагина w 3 total cache.

03. Page Cache — w3 total cache

Теперь и в минимизации проставляем те же параметры, что и на изображении.

04. Minify — W3 Total Cache

Дошли до базы данных. Обратите внимание, что время по умолчанию выставлено другое. Ставим свое.

05. Database Cache — W3 Total Cache

Объекты кэширования. Здесь тоже не забываем сверять указанное по умолчанию время и исправляем на свое:

06. Object Cache — W3 Total Cache

Вот и все. Когда все настройки будут выполнены, нужно подняться наверх страницы и включить плагин. Обязательно через просмотр. Сначала нажимаем preview , а только потом, когда в соседней вкладке страница полностью успешно загрузится, deploy . И так после внесения дополнительных изменений в любой блок. Просмотреть — включить! Заодно можете просмотреть код страницы моего блога и своего. Если разницу найдете, напишите в комментарии, пожалуйста. Это я так утонченно хвастаюсь. 🙂

Всем желаю грамотно оптимизированных блогов, высокой степени безопасности в Интернете и побольше хороших людей рядом!

P.S. Пожалуйста, обратите внимание на комментарии. Там обсуждается много нужных нюансов.

А еще предлагаю на минутку отвлечься от серьезных дел и прочитать , которое было мной написано в рамках конкурса, проводимого Devaka (Сергеем Кокшаровым) и биржей Rotapost на стыке 2014 и 2015 годов. 🙂 Приз хочу!!!

Для каждого из приведенных и неприведенных здесь возможностей плагина имеется собственная вкладка, для более детальной настройки. Я же скажу пару слов только про вкладку Page Cache — кэширование страниц сайта. В первом блоке General данной вкладки вы можете указать какие страницы и для каких пользователей включить кэширование. Думаю тут разберетесь сами, ведь чисто логически можно понять, что кэшировать страницу 404 не имеет никакого резона.

Следующая функция Cache Preload — это то, что мне особенно нравится в W3 Total Cache. Данная функция основываясь на данных файла sitemap.xml создает кэш заданного количества страниц через каждый заданный промежуток времени. Благодаря этому, ваш сайт полностью окажется в кэше через какое-то время(зависит от размера вашего сайта). В отличии от WP Super Cache, который так же предлагает такую функцию, она здесь действительно работает. Так как Super Cache при нескольких попытках заставить его закэшировать весь сайт(было испробовано на двух различных сайтах), только делал вид, что занят работой. На деле же кэш вообще не пополнялся.

В следующей колонке можно указать какие страницы необходимо обновить в кэше, когда редактируется какая-то страница. Тут думаю будет неплохо обновить главную и страницу категорий, но опять же, все зависит от вашего сайта и вашего мнения.

Последний пункт называется Advanced и особо интересен он тем, что в нем можно настроить время жизни кэша, которое по умолчанию, если не ошибаюсь, установлено на уровне 5-10 минут, не помню уже. А еще он интересен тем, что первый же пункт, который судя по всему включает все это дело, не активен. Но все же потыкайтесь в пункт под названием Garbage collection interval и проверьте что будет, если из другого браузера(в режиме инкогнито будет еще лучше) зайти на закэшированную минут 10-15 назад страницу, после чего поглядеть комментарий в конце кода страницы с указанием время создания кэша. Если время обновилось и стало равным времени вашего посещения, то увы, плагин либо косячный, либо хочет деньги за свои услуги.

На этом все по официальной части, а значит далее начнется разбор полетов с советами уже бывалого летчика на этом чуде.

Проблемы с W3 Total Cache

Начнем наверное с того, что я опишу конфигурацию сервера, на котором стоит сайт под управлением W3 Total Cache и к которому был присобачен данный плагин. Это VPS под управлением ОС CentOS 6,5, где бэкэндом установлен тягучий Apache, а на фронтэнде уютно разместился быстрый и юркий Nginx. Кроме этого установлен eAccelerator, для кэширования запросов в БД, что в купе с не с самыми кривыми руками позволяет иметь необходимость только в первой и самой важной функции плагина W3 Total Cache. Отсюда хотелось бы сразу отрезать комментарии и высказывания по поводу того, что, возможно, W3 Total Cache работает в чем то хуже других аналогичных плагинов, так данный плагин(именно W3 Total Cache) может похвастаться полной совместимостью с Nginx, в то время как все остальные плагины добавят свои коды в файл.htaccess и с явным недоумением будут ждать, пока администратор перепишет эти реврайты на понятном для Nginx языке. Последнее, надо сказать, мне не удалось. Точнее мне не удалось найти рабочие реврайты, которые заставили бы дружить Super Cache и Nginx. Возможно он и к лучшему, так как сейчас я бы с радостью сменил Super Cache на данном блоге на W3 Total Cache. Но, в семье не без уродов, да и W3TC не такой уж и безобидный. Этим абзацем я заканчиваю монолог о том, что необходимо делать с сервером Nginx для кэширования страниц сайта.(Всегда рад услышать другие методы кэширования).

Итак, проблем в процессе знакомства W3 Total Cache с Nginx`ом, да и тем более с Apache ни у кого не должно возникнуть, а потому перейдем к решению проблемы с невозможностью сменить время жизни кэша, а так же с тем, что W3 Total Cache полностью отказывается слушать все внесенные настройки, такие как запрет на кэширование страниц с запросами(страницы поиска) и запрет на кэширование для пользователей. Если с последними двумя я так и не разобрался, хоть и добрался до ручной правки файла конфигурации(кстати, находится по адресу wp-content/w3tc-config/master.php), то с первым удалось совладать. Хотел бы сказать, что изменение внесенные в админке этого плагина, как правило, сохраняются в этом файле, но лучше перепроверить, благо каждая переменная имеет говорящее название. Из всех переменных меня заинтересовала переменная pgcache.late_init(скорее всего от Late initialization — тот самый пункт, который не активен), которой я сразу же выставил значение true, а так же параметр pgcache.cache.nginx_handle_xml, после выставления которому значения true, плагин наконец-то начал слушать то число, которое введено в поле про максимальное время жизни кэша. Проверка показала, что после данных изменений, на озвученном выше сервере, время жизни кэша действительно стала совпадать с указанным пользователем значением.

Так как время жизни кэша было для меня самым важным моментом из всей настройки плагина W3 Total Cache, то я забил на то, что эта ересь продолжает кэшировать страницы поиска и страницы залогиненных юзеров(коих благо, только один, то бишь, я). Ведь при всем этом страдает только место на жестком диске, чего на данный момент вполне достаточно и даже при полном кэширование всех страниц, включая и мобильную версию, которую кстати плагин так же умеет кэшировать отдельно, место на хостинге останется еще немало. Но все же если кто умеет лечить плагин от этой болезни, просьба в студию.

Вспомнив про мобильную версию сайта хотелось бы сказать, что плагин умеет кэшировать и данную версию, причем отдельно, что не может не радовать. Для этого необходимо перейти во вкладку User Agent Groups и поставить две галочки напротив пунктов Enable. В каждом из пунктов вы можете добавить свою юзер-агенты для каких-то новых устройств. Кэш мобильной версии сохраняется в той же папке страницы, что и кэш основной версии. Отличие только в добавлении постификсов high и low(так называют группы по умолчанию). Вы, кстати, можете добавить и свои группы. Единственный минус с мобильной версией состоит в том, что плагин не умеет самолично создавать кэш мобильной версии сайта, что означает что это будут делать только ваши пользователи(или Вы).

Следующей проблемой с W3 Total Cache стала то, что на данном сайте сразу после активации данного плагина и активации функции кэширования, весь сайт погряз в кракозябрах, что говорит о проблемах W3 Total Cache с кодировкой. На сайте используется кодировка UTF-8 и даже в настройках плагина мелькает эти символы. Однако как активация пункта Disable UTF-8 blog charset support, так и его деактивация, не принесла никаких плодов. Далее в недрах Интернета была найдена подсказка, что нужно добавить строку AddDefaultCharset UTF-8 в начало файла.htaccess, но и данный способ на смог помощь. А так как дальнейшие поиски не привели ни к чему стоящему и был установлен WP Super Cache(который по первому взгляду, не лишен некоторых вышеописанных проблем, но об этом возможно позже).

Кодировка W3 Total Cache, дружба W3 Total Cache с Nginx, мобильная версия сайта… Ну, вроде ничего не упустил из того, чего понабрался во время знакомства с этим инструментом, который, надо сказать, со своим делом справляется весьма неплохо. Если страницы вышеозвученного сайта, судя по статистике от Pingdom.com, грузились от 1-2 секунд, то сейчас этот показатель для закэшированной страницы составляет 0,5-0,7 секунд. Если же обратиться к Page Speed от уважаемого Google, то можно напороться только на предупреждения о том, что ресурсы, скрипты и прочий хлам которых загружаясь вместе с данной страницей, являются единственным отрицательным моментом в безупречной технической оптимизации сайта. И интересно то, что гугл ругается на скрипт JQuery, который загружается из репозитория … да, именно, с репозитория гугла. Им бы самим заняться этим вопросом.

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