Очень долго я не касался темы кэширование wordpress, так как был уверен, что на моем виртуальном сервере с SDD дисками кэширование не так важно. Именно в этом меня убеждала служба поддержки хостинга. Хотя как убеждала, скорее предостерегала, вот моя переписка:
Я: - Скажите, при такой конфигурации сервера есть ли смысл делать кэширование плагинами на уровне wordpress?
Техподдержка: - Нужно смотреть по ситуации и нагрузки на сервер. Лучше такими плагинами не злоупотреблять, сервер у Вас на ssd дисковой подсистеме, что намного быстрее обычных дисков и кэширование может не принести ощутимых результатов.
И вот недавно я опять задал этот вопрос и получил немного другой ответ:
Я: - Здравствуйте! У меня периодически падает ngnix и база данных, перезапускаю их и все нормально. Происходит это раз в 1-2 сутки. Скажите, поможет ли мне установка плагинов кэширования на уровне сайтов или можно сделать кэширование на уровне сервера?
Поддержка: - Все зависит от специфики проблем из-за которых это возникает. Но в целом да, использование кэширования может положительно повлиять на нагрузку сервера.
Спрашивается: кому или чему верить? А верить нужно экспериментам. Решил я установить на это блог плагин кэширования, чтобы посмотреть, как это скажется на работе блога.
Какой плагин кэширования вордпресс выбрать?
Я пробовал несколько разных плагинов, но всех больше мне понравился плагин кэширования wordpress W3 Total Cache. Почему именно он? Просто он ОЧЕНЬ функциональный и позволяет не только кэшировать страницы сайта, преобразуя их в html файлы, но и многое другое, например, он работает и как плагин кэширования запросов к базе данных.
Из минусов можно отметить отсутствие русского языка и ввиду этого некоторая сложность установки. Поэтому я решил зафиксировать процесс установки W3 Total Cache на этом сайте и процесс настройки.
Как установить W3 Total Cache?
Для начала идем в админку wordpress в раздел ПЛАГИНЫ - ДОБАВИТЬ НОВЫЙ и в строку поиска вбиваем название плагина - W3 Total Cache и жмем ENTER.
Обратите внимание: плагин скачало почти миллион человек, эта цифра показывает, что этот плагин для кэширования вордпресс на самом деле самый лучший! Устанавливаем.
Сразу после установки получаю предупреждение:
Переводится так: W3 Total Cache об ошибках: Файлы и каталоги не могут быть автоматически созданы, чтобы завершить установку. Пожалуйста, выполнять команды вручную или использовать FTP форму, чтобы W3 Total Cache сделать это автоматически.
Нажимаю Update via FTP, что-то там происходит, надпись исчезает и появляется вот такая надпись, перевел:
W3 Total Cache: Настройки по умолчанию используются. Файл конфигурации не может быть прочитан или не существует. Пожалуйста, чтобы создать файл - нажмите кнопку.
Нажимаю еще раз и все кажется заработало. Если это так, то у вас должна появиться папка wp-content/cache. Сразу задайте ей и всем файлам в ней права доступа 777, иначе работать не будет. Так же на время нужно такие же права дать файлу .htaccess в корне диска (сделайте лучше перед этим его копию, на всякий случай)
Так же возможно вам придется дать доступ к файлу /wp-config.php или прописать в нем самому опцию:
define('WP_CACHE', true); // Added by W3 Total Cache
Пройдемся по настройкам, для этого находим настройки плагина в левой колонки админки вордпресс и нажимаем на PERFOMANCER - GENERAL SETTING.
1. Page Cache - кэширование страниц
Это самое главное, ради чего ставился этот плагин. Нужно поставить галочку в Enable (включить), выбрать метод Disk: Basic и нажать кнопку Save all setting (сохранить настройки).
Теперь, когда посетитель открывает страницу сайта, ее копия в html формате сохраняется в папке wp-content/cache/page.
Можно так же выбрать метод ENHANCED (повышенная), но не знаю, стоит ли это делать в моем случае. Да и к тому же у меня при использование этого метода выдавало ошибку, хотя файлы при этом кэшировались.
2. Minify - уменьшение
Тут имеется ввиду сокращение и сжатие файлов стилей и скриптов. Я не включаю эту функцию, так как после этого мой сайт реально перекашивает.
Но даже есть попытаться это настроить, то реальной пользы будет не так много, так что я и мучиться пока не буду. Идем далее.
3. Database Cache - кэширование базы данных
А вот это пункт важный. Но не выбирайте метод Disk: Basic, так как это может привести к сбоям, лучше выбрать метод Alternative PHP Cache. В этом случае запросы к базе данных буду кэшироваться PHP акселератором, у меня он, как я понял, на сервере установлен.
4. Object Cache - кэширование объектов
Это тоже очень важная функция, которую нужно включить, выбрав метод Disk: Basic.
В этом случае кэшируются уже не только страницы, но и опции, метки, категории, пользователи и многое другое, все, что wordpress посчитает нужным закэшировать. И судя по быстро заполнившейся папке кэшировать нужно много. Далее...
5. Browser Cache - включение кэша браузера
Нет, не вашего браузера, в человека, который заходит на ваш сайт. Эта опция посылает сигнал, что нужно кэшировать эту страницу и браузер посетителя безропотно подчиняется.
Но у меня тест Google Page Speed в упор не хочет замечать эту опцию, что я только не делал, и с этим плагином, и без. Скорее всего это происходит потому, что у меня стоит связка ngnix и apache2, первый работает как прокси сервер и видимо этот тест поэтому не работает как нужно. Хотя, может я и ошибаюсь.
6. CDN - сеть доставки контента
Для чего это нужно? Вы можете использовать посторонние сервера для кэширования ваших данных. Если посетитель находится в Америке, в ваш основной сайт в России, то ему лучше получить основную массу данных с сервера CDN, который находится в его стране или где то рядом. Но я не включаю пока эту опцию. Почему?
Да потому что большинство этих сервисов платные. Есть и бесплатные, но их нужно поискать, изучить, зарегистрироваться и после этого вписать данные в плагин. Сам плагин пытается нам всучить MaxCDN, который стоит денег, правда со скидкой в 25%. Но это тема для отдельной статьи, скорее всего очень скоро я исследую этот вопрос и отпишусь.
Вот таким образом я настроил кэширование этого блога. В плагине есть еще некоторые опции, но они не стоят рассмотрения, так как на практике не нужны. Если вам будут интересно, то можете покопаться в настройках. Если не знаете английского (как я), то можете воспользоваться Google Crome, который умеет переводит и админку wordpress.
При этом рекомендую зайти в настойки тех функций, которые мы включили, там еще много пунктов, которые тоже можно перевести и включить. Будут вопросы - пишите, отвечаю всем кроме спамеров 😉
Отключил дисковый кэш, так как с ним страницы стали грузиться еще дольше, пишет ОЖИДАНИЕ КЭША, найти его не может долго, что ли?
Все остальное пока оставил как есть.
WP Rocket - платный, но есть вполне рабочий крякнутый. Посмотрите. на 3 проектах у меня
Цдн интересная тема но нужно считать рентабельно это или нет.
Если хороший плагин с базовыми настройками будет + правильный хостинг можно обойтись без цдн (пока что )
Можно ли данный плагин совмещать с другими аналогами?
Подскажите возможно ли настроить кєширование без установки плагинов?
Можно, включить кэширование на сервере.
Плагин кэширования должен быть один.