Влияет ли плагин WordPress на скорость работы WordPress сайта?

Опубликовано: 01.09.2018

видео Влияет ли плагин WordPress на скорость работы WordPress сайта?

Что такое AMP и как его быстро установить на свой сайт на WordPress

Эта короткая заметка посвящается вопросам из рубрики: «что лучше плагин или код в functions.php». А также утверждениям неопытных, о том, что плагин - это зло само по себе, потому что тормозит WordPress. Ниже разберемся, как влияет на скорость загрузки WordPress один и несколько плагинов.



Следующий вопрос мне некогда задали в разделе вопросов:

Я знаю, что большое количество плагинов wordpress замедляет работу сайта. У меня вопрос: я использовал плагины для создания таблиц на страницах, и после их создания плагины деактивировал. Таблицы созданы и работают.

А влияет ли на скорость сайта такие деактивированные плагины. То же самое с плагинами по созданию и редактированию меню и т.д. Прошу разъяснить поподробнее. Спасибо!


WordPress - плагин WP Smush. Уроки WordPress. Урок #23

Давайте разбираться что к чему...

Факт наличия плагина не нагружает WordPress!

Утверждение, что «большое количество плагинов WordPress замедляет работу сайта». Довольно спорное и по сути неверное! Тут все зависит от плагинов: их функционала и грамотно написанного кода.


6 правил SEO оптимизации на этапе разработки сайта. Как оптимизировать сайт на этапе разработки

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

Чтобы понять почему происходит именно так, рассмотрим

Принцип подгрузки плагинов

WordPress при активации плагина, записывает путь на его главный файл в опцию active_plugins. Далее, при загрузке любой страницы (админки, фронта, крона, AJAX, REST), WordPress получает список всех активных плагинов из опции active_plugins, которая содержит массив названий главных файлов плагинов. После получения опции WP просто подключает главный файл каждого плагина в PHP. За получение списка активных плагинов отвечает функция wp_get_active_and_valid_plugins() . Сама конструкция подключения всех плагинов находится в файле wp-settings.php и выглядит так:

// Load active plugins. foreach ( wp_get_active_and_valid_plugins() as $plugin ) { wp_register_plugin_realpath( $plugin ); include_once( $plugin ); } unset( $plugin );

А так выглядит опция, где хранятся активные плагины:

$active_plugins = get_option( 'active_plugins' ); /* Получим в $active_plugins Array ( [0] => 404-error-monitor/index.php [1] => backupwordpress/backupwordpress.php [2] => democracy-poll/democracy.php [3] => disable-emojis/disable-emojis.php ) */

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

Неактивных плагинов в списке нет, а значит они вообще никак ни на что не влияют!

33 плагина...

Давайте представим, что у нас есть 32 плагина, каждый из которых состоит из пары строк кода и вносит незначительные изменения в работу WP. И есть еще один плагин, который стоит из 1000 строк кода и вносит изменений в несколько раз больше чем предыдущие 32 плагина вместе взятые: он отключает фильтры, включает свои, совершает запросы к БД, что-то обновляет/проверяет, добавляет свой функционал на сайт и выводит какие-то блоки в админке и фронте и делает что-нибудь еще...

Если сравнить первые 32 и последний 1 плагин, то последний будет нагружать систему в разы больше! К такому примеру можно отнести тяжеловеса «WooCommerce» и мелочь вроде: «Disable Emojis», «Disable File Editor», «Cyr to Lat».

Фраза «чем больше плагинов, тем хуже грузиться WordPress» - это глупость. Не количество, а качество имеет значение!

Когда плагины влияют на скорость работы сайта?

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

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

Кстати, сам WordPress делает всего один запрос к своему API и получает данные для всех установленных из репозитория плагинов разом. А платные плагины (если у них вообще есть автообновление), как правило делают один запрос на один плагин!

Как узнать какой плагин больше всего тормозить систему?

Если возникли проблемы и виноват скорее всего плагин, то можно:

Использовать старый добрый метод: отключать плагины по одному и смотреть как ведет себя сайт.

Установить известный плагин «Query Monitor» и посмотреть что он показывает по нагрузкам. Если в нем указаны излишние нагрузки, то при этом обязательно будет видно какой плагин, функция, хук или файл создает нагрузку. Так можно понять, какой плагин виноват...

Установить плагин «P3 (Plugin Performance Profiler)» и возможно он укажет вам на «самое слабое звено».
rss