Замедляют ли плагины WordPress? Почему это миф?

Замедляют ли плагины WordPress?

В этой статье мы постараемся ответить на распространенный вопрос: что лучше — установить плагин для добавления нужной функции или добавить свой код в файл functions.php? Это также опровергает мнение, что плагины сами по себе вредны, потому что они замедляют работу WordPress. Давайте разберемся, как один и несколько плагинов могут повлиять на скорость загрузки WordPress.

Важный вопрос

Однажды мне задали следующий вопрос:

Я знаю, что лучше избегать большого количества плагинов на сайте WordPress, так как они его замедляют. У меня вопрос: я использую плагин для создания таблиц на страницах, и после их создания я отключаю плагин — таблицы созданы и работают.
Замедляют ли отключенные плагины скорость сайта? Пожалуйста, объясните подробно. Спасибо!

Давайте выясним...

ФАКТ: АКТИВИРОВАННЫЙ ПЛАГИН НЕ НАГРУЖАЕТ WORDPRESS!

[]

Утверждение, что "большее ��оличество плагинов замедляет сайт WordPress", довольно противоречиво и, по сути, неверно! Всё зависит от самих плагинов, их функционала и качества.

В общем, активированные плагины сами по себе не влияют на скорость сайта, особенно на фронтенде. А вот неактивные плагины вообще не влияют на скорость: они просто занимают место на диске и слегка замедляют загрузку страницы "Плагины" в админке, так как информация о плагинах читается из основных файлов. Больше никак!

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

ПРИНЦИП ЗАГРУЗКИ ПЛАГИНОВ В WORDPRESS

Когда вы активируете плагин, WordPress записывает путь к его главному файлу в опцию active_plugins. Затем, когда вы загружаете любую страницу (админку, фронтенд, Cron, AJAX, REST), WordPress получает список всех активных плагинов из этой опции.

После этого WP просто запускает (включает) главный файл каждого плагина. Функция wp_get_active_and_valid_plugins() возвращает список активных плагинов. Вот как выглядит код для подключения плагинов в файле wp-settings.php:


// Загружаем активированные плагины.
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 вместе! В качестве примера можно взять тяжелый плагин "WooCommerce" и легкие плагины, такие как "Disable Emojis", "Disable File Editor" и "Cyr to Lat".

Поэтому утверждение "чем больше плагинов, тем хуже работает WordPress" неверно. Важны не количество, а качество и сложность!

КОГДА ПЛАГИНЫ ВЛИЯЮТ НА СКОРОСТЬ САЙТА?

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

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

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

КАК УЗНАТЬ, КАКОЙ ПЛАГИН НАИБОЛЕЕ СИЛЬНО ЗАМЕДЛЯЕТ СИСТЕМУ?

Если у вас возникают проблемы и вы думаете, что это ошибка плагина, вы можете:

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

Leave a Reply

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