18.04.2024

Тормозят ли плагины скорость работы WordPress?

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

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

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

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

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

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

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

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

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

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», «Right Now Reloaded».

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

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

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

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

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

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

  • Использовать старый добрый метод: отключать плагины по одному и смотреть как ведет себя сайт.
  • Установить известный плагин «Query Monitor» и посмотреть что он показывает по нагрузкам. Если в нем указаны излишние нагрузки, то при этом обязательно будет видно какой плагин, функция, хук или файл создает нагрузку. Так можно понять, какой плагин виноват…
  • Установить плагин «P3 (Plugin Performance Profiler)» и возможно он укажет вам на «самое слабое звено».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *