лучший плагин для ускорения wordpress
Ускорение WordPress с помощью плагинов
В данной статье я буду обозревать плагины для ускорения WordPress. Их развелось великое множество, но не все полезны, а при неправильном использовании даже вредны. Потому, стоит уделить им достаточно внимания. В данной статье будет обозрение плагинов для кеширования, ускорения загрузки js и css, а также для сжатия изображений. Разберем все поэтапно. Статья актуализирована на 2021 год.
Нужна помощь? Не проблема, напишите мне на почту: admin@workinnet.ru
Плагины для ускорения WordPress: обзор
Сейчас я сделаю обзор на каждый плагин. Его функционал, потенциальные опасности и прочее. Но давайте приведу список проблем, которые могут встретиться независимо от используемого плагина:
Проблемы с отображением сайта. «Оптимизаторы» могут попросту сломать структуру сайта, неправильно загружая JavaScript или CSS. И самое распространенное явление, когда в одном браузере выглядит все нормально, а во втором нет. Например, в Мозиле сайты часто сыпятся.
В остальном, проблемы могут быть довольно индивидуальными. Вроде неправильного отображения картинок в слайдере из-за ленивой загрузки изображений либо сбоя в работе отдельного плагина.
Autoptimize
Здесь довольно широкие настройки. Плагин позиционирует себя, как простой, способный работать в автоматическом режиме. Итак, смотрим на раздел “ Опции JS”.
Первый вариант отвечает за оптимизацию JS: добавляет отложенную загрузку, распределяет приоритеты загрузки. Вторая галочка отвечает за объединение и минификацию.
Тоже самое и с CSS: можно установить минификацию и объединение стилей, а также встраивать их в HTML. Можно даже отложить выполнение CSS с помощью еще одного плагина, по первые несколько секунд пользователь будет видеть жуткую белиберду. Так что лучше не буду рассказывать, как это сделать.
Также здесь можно минифицировать разметку HTML, включить ленивую загрузку для изображений.
Как видите, плагин достаточно прост в использовании, потому очень популярен. Но у простоты есть другая сторона. Так как на опции и настройки можете влиять минимально, то при возникновении конфликтов с другими плагинами или иных проблем, вроде сбоев на сайте, то скорее всего придется полностью отключать Autoptimize.
PageSpeed Ninja
Великолепный плагин с огромным количеством настроек. Поэтому заслужил отдельный обзор. Явно не для новичка, ибо разобраться в сем «зоопарке» довольно сложно без специфических знаний. Кликайте по заголовку, чтобы узнать подробности. На большинстве сайтов использую именно его.
К сожалению, давно не обновлялся, но разработчик заявляет, что вскоре выйдет новая версия. В любом случае, тестировать в продакшене не стоит, пока что актуальная версия 0.9.40, когда выйдет следующая, можно будет и обновиться.
Fast Velocity Minify
Тоже позволяет заметно ускорить сайт, но с высокой вероятностью покрошит его напрочь. Первое, что вы должны сделать — выключить указанную на скриншоте ниже функцию. Она отвечает за сохранение настроек даже при удалении плагина, что ведет к серьезным проблемам.
У него довольно большой функционал, можно настроить минификацию HTML, асинхронную загрузку шрифтов, минификацию и отложенную загрузку скриптов и CSS. А также ускорить рендеринг страницы.
В режиме Pro можно исключить скрипты и стили из «комбайна», в случае, если есть серьезные проблемы с загрузкой.
У плагина те же проблемы, что и у предыдущего, но гораздо большая вариативность настройки.
Webcraftic Clearfy
Этот плагин главное не путать с обычным Clearfy, название которого Webcraftic благополучно использовал в своем творении. В данном плагине вы получаете комплексный подход. Во-первых, можно оптимизировать изображения.
Во-вторых, здесь есть возможность отключить ненужный функционал. На подходить к данной задаче нужно очень аккуратно. Например, если отключить Rest API, то будут сбои в работе таких плагинов, как Contact Form 7 или JetPack, если отключить граватары, то пользователи не смогут их применять. В общем, используйте с осторожностью.
Также здесь можно подключить оптимизацию и сжатие HTML, CSS, JavaScript, а также кеширование.
Есть еще менеджер скриптов, но использовать его нужно с крайней осторожностью, ибо можно похоронить сайт, причем, при неправильном использовании инструмента восстановить работоспособность будет очень трудоемко.
Помимо перечисленного, в плагине есть множество других полезных функций, вроде управления комментариями, скрытия страницы администратора, использования инструментов для SEO и т. д.
WP Super Cache
Продвинутый плагин кеширования, имеет гибкие настройки и позволяет кешировать страницы в виде статического контента. Если сайт редко изменяется, то можно даже создать предварительный статический кеш, который будет выдаваться пользователям.
Может конфликтовать с другими плагинами кеширования, не всегда дает заметную прибавку к скорости. Так что, на ваше усмотрение.
WP Fastest Cache
По свойствам аналогичен предыдущему, имеет практически аналогичные настройки. Иногда лучше работает он, иногда предыдущий. Пробуйте, сказать заранее, что лучше сработает, довольно трудоемко.
В премиум версии плагина доступна возможность включения оптимизации изображений, но есть бесплатные аналоги, которые способны делать тоже самое.
WP Super Minify
Весь его функционал отражен на картинке, размещенной ниже.
Негусто, правда? По факту скажу, что на всех сайтах, где его устанавливал, плагин вызывал ряд серьезных проблем и повлиять на это никак не могу. То бишь, можете использовать, но на свой страх и риск.
WP-Optimize
Здесь есть парочка полезных возможностей. Даже, если честно, очень полезных. Во-первых, очистка базы данных. Здесь можно удалить все лишние ревизии записей, которых может накопиться очень много, оптимизировать таблицы, очистить из БД метаданные комментариев.
Не рекомендую очищать метаданные записей и удалять обратные ссылки, если есть. В остальном, на ваше усмотрение. Но перед использованием рекомендую делать бэкап базы данных. Проблем не было, но на всякий случай.
И еще, многие плагины оставляют после себя мусор в БД, вроде разделов и записей. Например, WooComerce, такой, к сожалению, придется убирать вручную.
Во-вторых, у плагина WP Optimize есть возможность оптимизировать изображения, качество получается нормальным, но уровень оптимизации ниже, чем у Smush, потому, не использую.
Smush
Плагин для оптимизации изображений. Позволяет массово оптимизировать изображения без потери качества, сократив вес за счет минификации, очистки метаданных изображений и уменьшения размера полноразмерных изображений. Можно активировать сжатие при загрузки медиафайла.
Также в режиме Beta доступна функция «ленивой» загрузки изображений, что позволяет не подгружать картинку, пока пользователь не долистает до нее, соответственно, повышает скорость загрузки.
По крайней мере, единственный плагин, который с успехом может посоревноваться с этим плагином, — Clearfy.
Ускоряемся!
Как видите, есть из чего выбирать, рекомендую пробовать, смотреть, какие плагины для ускорения WordPress вам лучше всего подойдут и впоследствии оставлять наиболее подходящие. Уверен, вы сможете получить за счет них существенную прибавку к скорости.
О других методах ускорения WordPress можете почитать здесь.
Доставить за 30 мс: 5 лучших плагинов для оптимизации работы WordPress в 2021 году
Вы и без нас знаете, что у WordPress есть проблемы. Да, при создании сайтов им пользуются в 40% случаев — на то он и простой, как трёхколёсный велосипед. Но проблема в том, что при желании из этого велосипеда легко можно собрать хоть Франкенштейна социальную сеть с экосистемой встроенных сервисов — достаточно установить десяток-другой, а то и всю сотню плагинов на сайт. В результате возникают проблемы с безопасностью, совместимостью и скоростью загрузки сайта. Хорошая новость в том, что есть как минимум пять способов заставить WordPress работать лучше — подробней о них в нашей подборке плагинов. О большинстве из них вы уже наверняка слышали, но в списке есть и одна новинка — вместе с другими решениями она позволит вашим пользователям забыть об ожидании загрузки контента на сайте.
Шаг 1: устанавливаем дополнительные меры защиты
Зачем вам спорткар, если у него не закрываются двери? Так же всё обстоит и с WordPress-сайтами, на которые по разным оценкам приходится около 80% всех атак на CMS: как бы привлекательна ни была высокая скорость работы, сначала нужно позаботиться о безопасности. Мы не будем останавливаться на очевидных советах вроде важности регулярного обновления системы и плагинов до актуальных версий — об этом вы наверняка знаете и без нас, — но расскажем об одном из лучших способов обеспечить сайт на WordPress дополнительными мерами защиты. Плагин iThemes Security, ранее известный как Better WP Security, — это комплексное решение, которое разом справляется с рядом задач:
Распознаёт уязвимости других плагинов и определяет устаревшие версии ПО;
Обнаруживает и сообщает администратору об изменениях в файлах;
Сравнивает файлы ядра с текущей версией WordPress;
Предупреждает об использовании старых паролей;
Определяет и блокирует вредоносных пользователей;
Обеспечивает резервное копирование баз данных;
Позволяет настроить двухфакторную аутентификацию.
Шаг 2: настраиваем кеширование
Долгосрочное хранение постраничного или транзитного кеша в WordPress по умолчанию не предусмотрено. А жаль: кеширование в разы ускоряет передачу пользователям запрашиваемых данных. Очевидно, это хорошо сказывается и на отношении к сайту поисковиков, и на поведенческих факторах. Помимо того, оно снижает нагрузку на сервер, так как ему не приходится больше раз за разом выполнять одни и те же операции. Простой способ добавить эту технологию на WordPress-сайт — установить плагин WP Super Cache. Он заменяет динамический HTML сайта статической версией и затем выдаёт её пользователям, что и сокращает время загрузки контента. В плагине предусмотрено всё нужное для повышения скорости работы сайта, в том числе разные механизмы обработки данных на выбор пользователя — так, например, Apache mod_rewrite обходит стороной все медленные и требовательные к ресурсам PHP-скрипты.
Шаг 3: подключаем CDN
Если WP Super Cache позволяет кешировать файлы WordPress-сайта, то сеть доставки контента ускоряет их передачу до пользователей. Это происходит благодаря тому, что с помощью CDN статические данные передаются не с основного сервера, а с кеш-серверов, распределённых по миру. Таким образом, нужные файлы пользователи получают с ближайших к ним точек присутствия сети CDN-провайдера, что ускоряет загрузку сайта, уменьшает нагрузку на сервер и сокращает количество расходуемого трафика.
Подключить CDN можно как с помощью OSSDL CDN off-linker, встроенного в WP Super Cache, так и другим простым способом — установив плагин G-Core Labs CDN. Детальная настройка работы сети доставки контента с его помощью займёт 15 минут. Для этого после установки достаточно указать персональный домен из личного кабинета G-Core Labs в настройках плагина, а затем выбрать типы файлов и папок, которые вы хотите раздавать через сеть доставки контента. Расширение автоматически настроит замену существующих статических ссылок на CDN и эффективно ускорит доставку контента: для этого в сети используются решения на основе процессоров Intel Xeon Scalable второго и третьего поколения, а точки её присутствия расположены более чем в 100 городах по всему миру, что обеспечивает время загрузки сайта в пределах 20–30 миллисекунд.
Шаг 4: отключаем лишние опции WordPress
После того, как кеширование всего, что можно кешировать, настроено, а всё, что можно доставлять через CDN, через неё и доставляется, хорошо бы избавиться от всего лишнего. Для решения этой задачи предназначен плагин Perfmatters, который позволяет оптимизировать работу WordPress без изменения кода и файла functions.php.
В настройках плагина предусмотрен длинный перечень возможностей CMS, которые можно включать и отключать одним кликом. Скажем, если вы не добавляете на страницы сайта emojis, то к чему вам их поддержка — отключите её, чтобы сократить общее количество HTTP-запросов и размер страницы. А если вам не нужны редакции страниц трёхлетней давности, то и хранить их нет смысла — сократите их число до нужного количества с помощью Perfmatters. Подобных настроек в плагине предусмотрены десятки: от изменения интервалов автосохранений до отключения комментариев и поддержки Google Maps на страницах, где их нет.
Шаг 5: настраиваем резервное копирование
Что бы ни произошло с сайтом, если у вас есть бэкап — всё поправимо. Желательно только, чтобы бэкап был не годичной давности. Как раз таки для избежания таких проблем и предусмотрены плагины для настройки резервного копирования. Понятно, что справиться с этой задачей можно и вручную или средствами хостинг-провайдера. Однако, плагины — простое решение, которое позволяет автоматизировать весь процесс копирования за несколько минут. Одним из лучших среди них считается UpdraftPlus, это расширение установлено на трёх с лишним миллионах сайтов, а среди его пользователей такие компании и организации, как Cisco, Microsoft и NASA.
9 плагинов для SEO и ускорения загрузки WordPress
Начинающему пользователю WP трудно отыскать в этом изобилии нужный модуль, чтобы расширить функциональность WordPress. Вот поэтому и существуют блоги для новичков (вроде моего), как отечественные, так и зарубежные веб-ресурсы помогающие разобраться, какие плагины приносят больше пользы вашему сайту, а какие нет. Вот, как то, так.
SEO плагины для WordPress
Я уже знакомил вас, на страницах своего блога с нужными плагинами из списка ниже, думаю хуже не будет если повторюсь, да и вы меня простите. Как обычно, представленные плагины WordPress для SEO и другие, можно установить прямо из админ-панели вашего сайта/блога. Просто введите название выбранного модуля в поиск по плагинам, нажимаете на клавиатуре Enter, устанавливаете и активируете, а потом, естественно настраиваете его. При установке плагинов старайтесь делать выбор в пользу наиболее лучших и качественных, хотя конечно можно потом и удалить не подходящий, и установить аналогичный/альтернативный.
Плагин Yoast SEO (раньше WordPress SEO by Yoast)
В данный момент один из самых лучших плагинов для SEO WordPress (обогнал All in One SEO Pack), ранее я писал о нём, ещё старое название было). С тех пор много изменилось, обновляется плагин часто, автор совершенствует его в лучшую сторону, добавляет новые возможности (загрузили 22 328 279). Сам пользуюсь им и вам советую. Комплексное решение по оптимизации вашего сайта Yoast SEO возьмёт на себя: SEO заголовки, meta description, XML Sitemaps, «хлебные крошки» и многое, многое другое. Читайте: как настроить Yoast SEO.
Основные возможности модуля Yoast SEO (даже в бесплатной версии их предостаточно):
Плагин All in One SEO Pack
Доступен на русском языке. Как правильно настроить SEO плагин читайте тут.
Rank Math SEO
Плагин Rank Math SEO
SEO является наиболее постоянным источником трафика для любого сайта. WordPress SEO Plugin — Rank Math создали для того, чтобы помочь каждому владельцу веб-сайта получить доступ к инструментам SEO, которые им нужны, чтоб улучшить SEO и привлечь больше трафика на свой сайт.
Плагин SEO Content Control
Модуль SEO Content Control позволяет найти, удалить или отредактировать любые типы «некачественного» контента на вашем сайте и тем самым улучшить качество сайта и его позиции. К большому сожалению русский не поддерживает, можно перевести его с помощью Codestyling Localization и пользоваться. Да, SEO Content Control уже давно не обновлялся, но ничего страшного, я установил его, всё работает. Возможно использовать плагин в редких случаях, проверить контент, по надобности исправить кое что в тексте и удалить модуль или временно отключить.
Плагин умных ссылок SEO Smart Links предлагает автоматизированную оптимизацию сайта, а также списки ключевых слов, которые можно настроить индивидуально, nofollow.
Основное это: позволяет задавать атрибут nofollow и открывать ссылки в новом окне; может автоматически ставить ссылки на ключевые слова и фразы; указать список стоп слов, на которые ссылаться нежелательно; контроль внешних ссылок по заданным словам и другое. Русский язык не поддерживает.
Плагины для улучшения времени загрузки сайта
Поисковики обращают внимание на время загрузки страниц сайта по простой причине:
Чем больше медленных сайтов попадает в ТОП выдачи конкретной поисковой системы, тем реже пользователи будут ее использовать.
Получается, чтобы не уступить конкурентной поисковой системе, нужно на первой странице выдачи отображать только те результаты, которые имеют оптимальное время загрузки сайта и не расстраивают посетителей необходимостью долго ждать.
К тому же время загрузки страницы сайта оказывает значительное влияние на поведенческие факторы, которые являются одними из важнейших для продвижения веб-ресурсов.
Как видно из названия JS & CSS Script Optimizer сделает сайт быстрее, упакует и сгруппирует JavaScript и CSS файлы. Снижает частоту HTTP запросов. Возможности:
Кэширование в WordPress
Для большинства сайтов простое кэширование страниц решает все вопросы со скоростью и нагрузкой. Это первое, что стоит предпринять при возникновении проблем, особенно на дешёвых хостинг-площадках. Плагины для кэширования страниц легко установить и настроить.
W3 Total Cache
W3 Total Cache делает сайт реально быстрым, один из лучших плагинов для оптимизации WordPress. Повышает эффективность работы сервера, детально кешируя сайт, что снижает время его загрузки. Экономит до 80% пропускной способности путем HTTP сжатия HTML, CSS, JavaScript; быстрый просмотр страниц: браузерное кеширование; снижение времени загрузки страницы: повышение времени пребывания пользователя на сайте и количества просмотренных страниц; асинхронное исполнение JavaScript.
WP Super Cache
Хороший плагин, как альтернатива модулю W3 Total Cache. Если не хочется использовать W3 Total Cache, вы можете попробовать этот. Плагин кэширования WP Super Cache наиболее популярен у пользователей, скачали и установили его уже более 8 624 282 раз, так как, модуль активно поддерживается разработчиками (Automattic).
Принцип работы модуля заключается в создании вместо динамических php страниц WordPress, статических HTML станиц, которые, собственно и показываются посетителям, минуя базу данных. По настройкам WP Super Cache (инструкция настроек) не так сложен, как предыдущий плагин кэширования W3 Total Cache, но по функционально очень хорош.
Вот, товарищи, пожалуй и хватит на сегодня отнимать у вас время. Надеюсь, кому нибудь этот пост пригодится. До новых встреч и удачи всем.
Ускорение WordPress. Тотальный разбор плагинов для кэширования. Личный опыт (часть 1)
Что делать, если сайт на WordPress грузится медленно? Ответ на самом деле прост – настрой кеширование. Можно ещё заниматься оптимизацией изображений, настройкой lazy loading и прочими хитростями. Но кеширование всё равно остаётся ключевым способом ускорения любого сайта на Вордпресс. Кажется, всё просто, зайди в Google, напиши «WordPress cache», найди статью, где больше всего картинок, скачай упомянутый в статье плагин и выстави настройки согласно скриншотам. При любом раскладе твой сайт сразу начнет работать в разы быстрей.
Но дьявол, как обычно, кроется в деталях. В интернете есть самые разные обзоры и сравнения плагинов кеширования. И за столько лет кто-то же должен был выдать идеальный рецепт? Но нет. Все эти обзоры сводятся к тезису: «мы сделали 10 одинаковых сайтов, установили плагины с дефолтными настройками и смотрим, где страница загрузилась быстрее». При этом все забывают, что нюансов при оптимизации кеширования вагон и маленькая тележка. Похоже, эта статья первая, которая примет во внимание реальное поведение пользователей на сайте, вместо сравнения скорости загрузки одной страницы в тепличных условиях.
Используя бестселлеры с Themeforest или, те же конструкторы, вроде Elementor, WP Backery и прочие, сайт обречен на 5-15 секунд TTFB (time for first byte, время ответа сайта) при загрузке КАЖДОЙ страницы. С одной страницы может быть несколько сотен обращений к базе данных, выполняться большое число php-функций, подключаться множество библиотек. Естественно, что такая скорость недопустима, она влечет за собой понижение в поисковой выдаче, «отказы» посетителей, сливы бюджетов на рекламу и так далее. С этим нужно что-то делать.
Я никогда шибко оптимизацией WordPress не заморачивался, потому что в моей практике сайты, которые требуют космической скорости работы, делали не на WordPress, а на Yii2 или Laravel. Для WP я использовал околодефолтные настройки плагина WP Super Cache, подсмотренные на Stackoverflow. Правда со временем начали появляться проблемы. Что-то приходилось «колхозить», где-то пробовать другие плагины. Но каждый раз появлялись всё новые и новые «косяки».
В какой-то момент я просто устал от постоянного «колхозинга» и решил найти идеальное решение. Я занимался этим больше месяца, тестируя разные плагины, разные настройки на разных сайтах, чтобы найти идеальный рецепт.
В статье речь пойдёт о собственных наблюдениях, об особенностях каждого плагина для кеширования WordPress, о том, что заявлено, а что имеем по факту, и конечно, подборе идеальных настроек и устранении проблем. Материала получилось много, на 21 страницу, поэтому я решил разделить его на две части. Первая будет посвящена обзору и выводам, так сказать «для гуманитариев». Во второй части будут приведены настройки и доработки плагинов, а также более подробное пояснение их работы, так сказать «для технарей».
Забегая вперед, скажу, что идеального рецепта (идеальных настроек) не существует. В первую очередь необходимо четко сформулировать свои требования к функционалу и понять принципы работы того или иного плагина. Этим мы сегодня и займемся.
1. Определяем требования к функционалу
Мои требования к функционалу соответствуют классическому многостраничному корпоративному сайту с посещаемостью от 100 до 10 000 чел. в день, со своим блогом, на который ведётся реклама с UTM-метками. Также я делаю большой акцент на автоматизацию, чтобы не приходилось заниматься постоянными доработками и настроить кеширование можно было без особых усилий.
Автокеширование. Сайты приходится периодически обновлять, выкладывать новости, менять текст, картинки и т.д. Кеш-копия страниц в этом случае хранится определённое время, а после обновления страниц сайта необходимо заново создавать кеш-файлы. В этом случае часть пользователей, ровно, как и поисковых роботов, будут видеть насколько долго загружаются некоторые страницы сайта. Чтобы этого избежать, плагины предлагают механизм автоматического кеширования. В этом случае плагин самостоятельно производит обход сайта и сам создает закешированные копии страниц. Важно, чтобы этот механизм у плагина работал без сбоев.
Игнорирование части запросов URL-адреса. Большинство рекламщиков используют для отслеживания эффективности своих рекламных кампаний UTM-метки (или другие GET-параметры). В этом случае они добавляют в адрес страницы ряд запросов, которые никак не влияют на логику работы сайта. Например, у нас есть страница товара, который мы рекламируем: https://www.site.com/landing-page/, но пользователь, перешедший на неё из рекламы, увидит адрес следующего формата: https://www.site.com/landing-page/?utm_source=yandex&utm_medium=cpc&utm_campaign=promo&utm_content=banner&utm_term=i-wan-to-buy-something&yclid=93473892748392743473829.
Естественно, сайт о существовании этой страницы даже не догадывается, и кэш под неё не существует. Он будет создан в момент перехода пользователя по этой длинной ссылке. Но даже, если рекламщик не будет добавлять UTM-метки, то Яндекс Директ, Google Ads или иные рекламные системы будут подставлять свои метки для отслеживания (например, yclid, gclid). Значения таких меток будут всегда разными, соответственно, сайт будет воспринимать их как абсолютно разные страницы. В итоге, мы получаем ситуацию, когда каждый пользователь, привлеченный с помощью рекламы, видит, насколько медленно работает сайт, а хранилище кеша пухнет от кучи мусорных файлов, которые никогда больше не будут задействованы.
Поэтому, плагин кеширования должен учитывать существование некоторых GET-параметров, которые необходимо исключать из URL-адреса страницы при попытке найти подходящий кеш-файл или же создать новый.
Возможность использования PHP-функций. Это может прозвучать странно, ведь само по себе кеширование подразумевает предотвращение исполнения PHP-скриптов или работу с БД, но только не в моём случае.
В своё время на разных проектах я неоднократно сталкивался с проблемами стандартных систем аналитики, основанных на JavaScript, таких как Яндекс Метирка или Google Analytics, при анализе лидов. Та же Метрика попросту не видит части заявок, данные отображает в обезличенном виде и с задержкой. Каждый второй научился устанавливать AdBlock, который не передаёт в Метрику JavaScript-события и вырезает прочие скрипты с сайтов. Более того, оказалось, у части пользователей с мобильных устройств не работает JavaScript, который необходим для корректной работы Метрики. Как итог, мы имеем статистику с определённой погрешностью.
Поэтому я сделал свою кастомную систему для аналитики заявок на сайте, которая работает через PHP, а не через JavaScript и не позволяет никаким данным потеряться. И именно здесь появляются проблемы, когда большинство кеширующих плагинов не позволяет при первом визите пользователя запустить нужный PHP-код, который сохранит полную информацию об источнике и характеристиках визита.
2. Разбираем самые популярные плагины кеширования
Как я уже говорил выше, идеального рецепта не существует, и необходимо разобраться в логике работы того или иного плагина и выбрать наиболее подходящее решение для каждого конкретного сайта. Во второй части статьи я подробнее рассматриваю популярные плагины для кеширования WordPress, их проблемы и предлагаю методы решения этих проблем. Здесь я обобщу все плюсы и минусы каждого из плагинов.
При рассмотрении плагинов ниже будут применяться следующие обозначения:
WP Super Cache
Плюсы:
Плагин совершенно бесплатный.
Плагин может работать как в режиме mod_rewrite, так и в режиме PHP. Режим работы PHP-based позволяет исполнять PHP-скрипты в том числе на закешированных страницах.
Быстрая скорость загрузки закешированных страниц: 30-40 мс* в режиме mod_rewrite, 60-80 мс в режиме PHP.
Работа плагина не нагружает сайт, пока происходит кеширование.
Процесс автоматического фонового кеширования сайта работает стабильно.
Автоматическое фоновое кеширование не очищает сразу все файлы, давая возможность быстро получать старые кеш-копии страниц, в то время как новые еще генерируются.
Минусы:
[?] Плагин не умеет игнорировать GET-параметры в URL-адресах, в том числе массово распространенные (такие как UTM-метки, gclid, yclid и подобные), поэтому при переходе из рекламы посетители видят долгую загрузку страницы. Для решения этой проблемы требуется внесение изменений в исходный код плагина при установке, а также при каждом обновлении этого плагина.
WP Fastest Cache
Плюсы:
Бесплатная версия полностью покрывает весь функционал, который требуется от плагина кеширования.
Быстрая скорость загрузки закешированных страниц (30-40 мс*);
Работа плагина не нагружает сайт, пока происходит кеширование.
Процесс автоматического фонового кеширования сайта работает стабильно;
Автоматическое фоновое кеширование не очищает сразу все файлы, давая возможность быстро получать старые кеш-копии страниц, в то время как новые еще генерируются.
Плагин позволяет учитывать рекламные GET-параметры в адресной строке (такие как UTM-метки и gclid). Это позволяет моментально отдать пользователю уже существующую кеш-копию страницы без GET-параметров.
Плагин имеет функционал в том числе для оптимизации контента на сайте: минификация HTML/CSS/JS, объединение CSS и JS-файлов, Lazy loading изображений.
Минусы:
[?] Для исключения GET-параметров, не «зашитых» в плагине (таких как yclid) требуется внесение изменений в плагин при установке, а также при каждом обновлении этого плагина.
[?] Плагин работает исключительно с помощью mod_rewrite, поэтому для исполнения PHP-скриптов на закешированных страницах необходимо произвести доработку веб-сайта.
[!] Страницы с GET-параметрами загружаются медленней, чем страницы без них. Так, например, сайт на котором страницы без кеширования загружаются за
3 сек., с использованием WP Fastest Cache страница загружается за 30-40 мс*, но, если у страницы есть GET-параметры, её кеш-копия будет загружена за 400-500 мс. (для сравнения, скорость загрузки страниц, содержащих GET-параметры при использовании WP Super Cache: 60-80 мс*). Это не то что бы сильная проблема, если сравнивать со скоростью загрузки страниц без использования кеширующих плагинов, но об этом стоит упомянуть.
W3 Total Cache
Плюсы:
Плагин может работать как в режиме mod_rewrite, так и в режиме PHP. Режим работы PHP-based позволяет исполнять PHP-скрипты на закешированных страницах.
Плагин позволяет указать произвольный перечень GET-параметров, которые необходимо игнорировать при обработке запроса.
Феноменальная скорость загрузки страниц: 25-30 мс* в режиме mod_rewrite, 30-40 мс* в режиме PHP-based.
Феноменальная скорость загрузки страниц с GET-параметрами: 30-40 мс* в режиме mod_rewrite, 40-50 мс* в режиме PHP-based.
Плагин имеет функционал для оптимизации контента на сайте: минификация HTML/CSS/JS, объединение CSS и JS-файлов, Lazy loading изображений.
Не требует вмешательства в исходный код плагина.
Минусы:
[!] Автоматическое фоновое кеширование не обновляет кеш-файлы до тех пор, пока срок жизни кеш-файлов не истек. Это приводит к ситуации, при которой кеш-файлы уже очищены, а автоматическое кеширование довольно долго создает новые. И в этот промежуток времени посетители могут увидеть долгие загрузки. Особенно если сайт большой, а обновление поставлено раз в полчаса, то автокеширование может происходить в течение 10 минут, и всё это время пользователи будут видеть долгую загрузку части страниц. При этом во время проведения автокеширования скорость загрузки незакешированных страниц падает с 3 сек до 5-6 сек, т.к. сам плагин нагружает сайт.
Swift perfomance
Плюсы:
Плагин позволяет указать произвольный перечень GET-параметров, которые необходимо игнорировать при обработке запроса.
Плагин может работать как в режиме mod_rewrite, так и в режиме PHP. Режим работы PHP-based позволяет исполнять PHP-скрипты в том числе и на закешированных страницах.
Неплохая скорость загрузки закешированных страниц: 200-300 мс* в режиме PHP, 30-40 мс* в режиме mod_rewrite. При этом скорость загрузки страниц, содержащих GET-параметры в URL-адресе, всё равно будет 200-300 мс*, даже при использовании mod_rewrite.
Плагин имеет функционал для оптимизации контента на сайте: минификация HTML/CSS/JS, объединение CSS и JS-файлов, Lazy loading изображений, а также оптимизация и сжатие изображений.
Автоматическое фоновое кеширование не очищает сразу все файлы, давая возможность быстро получать старые кеш-копии страниц, в то время как новые еще генерируются (но не всё так просто, смотрим минусы).
Не требует вмешательства в исходный код плагина.
Минусы:
[!] Отсутствие поддержки кириллицы в URL-адресах при кешировании. Swift Perfomance создает кеш ровно по тем адресам, которые имеют страницы сайта, т.е. если у нас URL страницы выглядит как https://example.com/контакты, он не будет переводить «контакты» в URL-encoded для создания кеша. Но браузер будет обращаться именно к https://example.com/%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B, поэтому страницы, содержащие кириллицу, будут загружаться всегда медленно.
[!] Некорректный механизм ручного обновления кеша. Когда мы обновляем страницу, он моментально генерирует под нее свежий кеш, пользователи не увидят долгих загрузок. Когда мы публикуем новость, она тут же появляется на странице новостей. Но как только эта новость должна попасть куда-то в другое место (например, в сайдбар других страниц), она туда не попадет ровно до тех пор, пока мы полностью вручную не обновим кеш всего сайта или не запустится механизм автокеширования. Когда мы вручную обновляем весь кеш сайта (чтобы наша новость появилась в сайдбаре на всех страницах), далеко не все страницы работают быстро. Через несколько минут после ручного запуска переобхода сайта, часть страниц уже имеют новый кеш (работают быстро), часть страниц еще отдаются со старым кешем (видим, что свежая новость в сайдбарах на этих страницах еще не появилась), но часть страниц (причем, немалая) грузится ужасно долго (8 – 12 сек. против 3-4 сек. без использования кеширования вообще).
[!] Нестабильный механизм автоматического кеширования. При первичных тестах плагин отрабатывает как надо. Но на практике вышло так, что на большинстве сайтов это «умное» автокеширование работает нестабильно. В какой-то момент созданные ранее кеш-файлы просто пропадают, плагин их удаляет или происходит какой-то рассинхрон, хотя новые копии под них ещё не были созданы, и сайт остаётся без какого-либо кеширования. Приходится запускать переобход вручную, а это ведёт к сильной нагрузке на сервер.
[!] Lite-версия Swift Perfomance вынуждает покупать подписку. В бесплатной версии Swift Perfomance нельзя выбрать высокую скорость для автокеширования, а также отсутствует возможность указать GET-параметры для исключения из URL-адреса при кэшировании.
В ходе своего исследования я также успел поработать с WP Rocket и LiteSpeed Cache, в которых разочаровался почти сразу и не посчитал нужным расписывать подробно все их преимущества и недостатки, их я упоминаю во второй части статьи.
3. Заключение
Без сомнения, наиболее высокую скорость загрузки показал плагин W3 Total Cache. Он работает быстро и в классическом режиме, и в режиме PHP, да и страницы с GET‑параметрами загружает быстрее всех. Но для меня критичной стала проблема отсутствия автоматического фонового кеширования, которое бы обновляло файлы кеша, не снося их полностью, а заменяя постепенно. Плагин, конечно, не требует доработок, и имеет все необходимые настройки, но в период обновления кеша, пользователи, попадающие на сайт, видят медленную загрузку, а при большом трафике на сайте это становится критичной проблемой. Его лучше использовать на статичных сайтах без автокеширования.
Большие надежды я возлагал на Swift Perfomance. Он имеет все необходимые настройки, не требует доработок, да и распространяется платно, а ведь платный плагин должен оправдывать вкладываемые в него средства? Но он разочаровал полностью, нестабильные механизмы автокеширования, недоработанный механизм ручного обновления кеша, высокая нагрузка на сервер при кешировании – все эти недостатки свели на нет его преимущества. Если бы я регулярно не мониторил его работу, может быть и не заметил бы этих недостатков. На текущий момент я его не использую ни на одном из проектов.
WP Super Cache был бы идеальным вариантом, если только на сайты с ним не вести рекламу. Как только на сайте появляются любые GET-параметры, необходимо дорабатывать исходный код плагина, чтобы устранить эту проблему. А при частом обновлении сайта с большим количеством страниц это становится настоящим геморроем, ведь если мы не хотим, чтобы некоторая часть пользователей с рекламы видела медленную загрузку после проведения автокеширования, то необходимо придумывать дополнительные методы обхода страниц с GET-параметрами. Чаще проще установить плагин, который всё это умеет из коробки. К недостаткам WP Super Cache можно также отнести отсутствие работы с оптимизацией контента на сайте (минификация HTML/CSS/JS, объединение CSS и JS-файлов, Lazy loading изображений, а также оптимизация и сжатие изображений), но это на любителя, плагин кеширования по факту не должен этим заниматься, все эти настройки нужно тестить, у других плагинов не все они работают адекватно.
Закрывает эти проблемы плагин WP Fastest Cache, который прекрасно умеет работать с GET-параметрами. Хотя он всё равно требует доработок. Лично мне не сложно внести небольшие изменения в код плагина, чтобы познакомить его с метками типа yclid и разрешить использовать PHP.
Вот и получается, что идеального рецепта не существует. Понимая проблемы плагинов и разобравшись в настройках из второй части статьи, каждый сам сможет подобрать себе плагин под конкретный тип сайта. Мои же рекомендации, следующие:
Рекомендации
На сайтах, на которых почти никогда не вносятся изменения (например, лендингах), рекомендую использовать W3 Total Cache без автокеширования, т.к. он показывает самую высокую скорость загрузки, отлично будет работать с рекламой и не требует доработок. Правда, если уж пришлось внести изменения на статичный сайт, нужно не забыть вручную обновить кеш.
На сайтах, где изменения вносятся часто (например, корпоративных сайтах), рекомендую использовать WP Fastest Cache, он отлично работает с фоновым автокешированием и GET-параметрами, правда не со всеми. Чтобы вести рекламу на сайт, например, из Яндекса, необходимо внести небольшое изменение в исходный код, т.к. плагин не знает метку yclid.
Если на сайт точно не планируется вести рекламу или загружать какие-либо страницы с GET-параметрами (например, блог), то можно использовать и WP Super Cache, и WP Fastest Cache, кому как удобней. WP Super Cache настроить чуть проще и быстрей.
Мне на практике для некоторых сайтов приходится использовать PHP-скрипты, с которым WP Fastest Cache работает только после доработки исходного кода. Здесь часто спасает WP Super Cache, который умеет работать с PHP из коробки. Правда всё ломается, как только на сайте появляется реклама с UTM-метками. WP Super Cache был бы универсальным кешером, если бы разработчики плагина догадались подружить его с GET-параметрами, а сейчас для этого приходится вносить изменения в исходный код плагина и придумывать варианты обхода страниц с GET-параметрами при автокешировании. Об этом нужно всегда помнить.
Если очень хочется вести рекламу на сайт, но очень не хочется дорабатывать плагины, то можно использовать W3 Total Cache с автокешированием и мириться с временной медленной загрузкой сайта в период обновления кеша. А также помнить, что чем больше страниц на сайте и выше трафик, тем выше шанс, что большое количество пользователей увидит медленную загрузку.
Подробные настройки каждого плагина и инструкции по доработке исходного кода я выложу во второй части статьи.
Это переписанная и структурированная статья из моего телеграм-канала «digital на минималках», где я делюсь опытом в бизнесе, инструкциями, рассказываю, как удешевить свои вложения в digital, рассуждаю на небанальные темы, немного бомблю и делюсь мемчиками (осторожно, нецензурная речь). Решил, что подобное объемное исследование будет интересно не только подписчикам моего канала.