Автоматические обновления минорных версий WordPress зарекомендовали себя годами. Но работает ли это также с плагинами? Эта проблема была исследована разработчиком WordPress Флорианом Симетом, и в его обзоре есть полезные советы от эксперта по безопасности и обслуживанию Марка Нилиуса.

Любой, кто использовал WordPress какое-то время, знает, что автоматические обновления основного программного обеспечения работают довольно хорошо и обычно без проблем, если не было плагинов. Как правило, идея автоматического обновления плагинов заставляет большинство разработчиков веб-сайтов встать дыбом. Те, кто стискивает зубы, когда доходит до нажатия кнопки обновления, знают, о чем я говорю.

Плагины WordPress бесплатны?

Вы никогда не знаете, успешны ли обновления. Даже если само обновление не дает сбоев, но где-то (не видимые) под землей таятся ошибки. Большинство коллег, с которыми я беседовал, не выполняли автоматические обновления плагинов, по крайней мере, не для всех плагинов. Но почему?

Когда автоматические обновления плагинов сопряжены с риском

658 добровольцев внесли свой вклад в разработку WordPress версии 5.3. Не все проекты плагинов требуют этого действия. Подавляющее большинство бесплатных плагинов в каталоге плагинов WordPress были разработаны одним человеком (или, возможно, небольшой командой). Нельзя сказать, что эти плагины плохи сами по себе. Однако по опыту мы знаем, что часто именно плагины открывают дыры в безопасности, делая ваш собственный экземпляр WordPress целью для хакеров.

Следовательно, можно предположить, что качество кода страдает или слишком мало проверяется. Я не хотел бы сейчас объяснять, почему это займет время, но это объясняет, почему мы быстро нажимаем кнопку обновления для плагинов, известных как YoastSEO, а для других лучше этого не делать.

«В основном, вы можете распознать проблемные случаи по тому факту, что что-то раньше шло не так, – сказал мне Марк Нилиус в интервью по электронной почте. По его собственным данным, в настоящее время он поддерживает около 200 экземпляров на WordPress и очень хорошо знает свои угрозы. Теперь у Yoast есть отличная команда, стоящая за собственным бесплатным плагином YoastSEO, активным на более чем пяти миллионах сайтов WordPress. Для флагмана компании делает все возможное, чтобы ничего не подводило. Это требует усилий. Усилия, которые промоутер не может или не хочет делать в одиночку. Так что ты можешь сделать?

Возможности минимизировать риски с помощью плагинов

1. Не используйте старые плагины

«Демократизация публикации» – важный и точный принцип в WordPress. То, что любой может быстро получить сайт WordPress, – это здорово, но это автоматически побуждает этих людей в какой-то момент захотеть расширить сайт, конечно, с помощью плагинов. Поскольку они обычно не могут программировать себя, они обращаются к вечной WorldWideWeb в поисках лекарства. А их много. 

Обзор WP-Rocket – лучше, чем Super Cache или W3 Total Cache?

В настоящее время только в каталоге плагинов почти 55 000 расширений. То, что работает, используется. Не обращая внимания на то, разрабатывается ли плагин или совместим ли он с текущей версией WordPress. Это не всегда так, и, в конце концов, это вызывает недоверие к обновлениям, потому что часто этот тип плагинов в какой-то момент перестает работать. Хотя на это может уйти несколько лет.

Конечно, есть и положительные примеры. Например, за WooSidebars стоит крупная компания. Однако плагин не получал обновлений год. Он не тестировался с последними версиями WordPress, но во многих случаях все еще работает нормально. Как долго тебе придется ждать? В первые комментарии в области поддержки уже указывают на конец, но пользователь не замечает ничего. Во время установки появляется небольшое незаметное уведомление, указывающее на этот недостаток. Опасная вещь…

woosidebars

Конечно, когда вы начинаете свое приключение в блоге, у вас часто нет денег на индивидуальную разработку. Для этих людей нет другой альтернативы. Однако имейте в виду, что из-за рисков, упомянутых выше, вам следует использовать как можно меньше (старых) плагинов.

2. Не настраивайте плагины самостоятельно.

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

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

Yoast vs Rank Math: сравнение плагинов SEO для WordPress

3. Не используйте плохие плагины.

Что такое “плохой” плагин? На этот вопрос нелегко ответить, тем более, если человек не является профессионалом в своей области. Конечно, операторов могут спросить, проводят ли они автоматическое тестирование новых версий. Но кто это делает? Многие пользователи WordPress даже не подозревают, что это возможно. Кроме того, эти тесты (если они проводятся) часто не имеют ничего общего с реальными ситуациями, что понятно с точки зрения разработчика. Кто тестирует каждый плагин с каждой темой? Или каждый плагин с каждым другим плагином? Оно не может. Нельзя доверять это и разработчикам.

То же самое и в этом случае: отказ от «плохих» плагинов тоже не является реальной альтернативой. Хотя оценка качества уже является первым препятствием для многих пользователей, вам следует, по крайней мере, самостоятельно активно тестировать новые плагины, прежде чем включать их в действующий сайт. Подробнее об этом чуть позже. 

Почему автоматические обновления не работают?

Реальность такова, что вы не можете просто не использовать плагины WordPress. Упомянутые проблемы будут существовать всегда. Поэтому вам нужно найти другое решение. Возникает вопрос: «Как это возможно, что, несмотря на все проблемы, автоматические обновления для плагинов WordPress все еще производятся?». И этот вопрос неизбежно приводит к следующему: «Что могло пойти не так?».

Вот несколько возможностей:

  1. PHP-Fatal-Error: веб-сайт вообще не работает из-за фатальной ошибки.
  2. Плагин не работает (больше) с другими плагинами и / или с темой. Это проявляется несколькими способами:
    а) функции больше не доступны или
    б) макет во внешнем интерфейсе изменяется.
  3. Отсутствие обратной совместимости затрудняет откат.
  4. База данных настолько велика, что резервное копирование займет много времени.

Предложения по решениям для обеспечения успешного обновления плагинов

Распознавайте плохие плагины

Начнем с пользователя. Как можно распознать «плохой» плагин? Поскольку этот / а не может проверить, хорошее ли качество кода, было бы необходимо создать систему, которая это делает. Возникает вопрос: сработает ли что-то подобное? И ответ вполне ясен: да!

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

Он еще не готов, но в будущем Tide поможет непрофессионалам лучше определять тип устанавливаемых плагинов. А пока обратите внимание на метаданные плагина, которые появляются на wordpress.org в каталоге для каждого из плагинов:

мета-плагин
  1. Дата последнего обновления. Частое обновление может свидетельствовать об активном процессе разработки. В большинстве случаев разработчики также исправят ошибки.
  2. Количество установок. Очень высокое число не только указывает на популярность, но также может указывать на то, что авторы зарабатывают на плагине (например, через версию Pro). Это создает некоторое давление со стороны производителя. Без сомнения, я уверен, что он также заинтересован в том, чтобы бесплатный плагин работал идеально.
  3. Проверено до. Опять же, это просто номер версии, который может быть изменен разработчиком в любое время без какого-либо стороннего тестирования. Однако номер текущей версии указывает на то, что авторы регулярно обновляют плагин.
  4. Версия PHP. Хотя хорошо, что разработчики продолжают поддерживать низкие номера версий PHP, более высокая версия будет более безопасной. PHP версии 5.6.x не получает обновлений безопасности с конца 2018 года. В настоящее время текущая версия – 7.4. Вы будете получать обновления безопасности до декабря 2022 года.
Узнавайте хорошие и безопасные плагины

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

Автоматизированное тестирование браузера

Теперь становится немного сложнее. Специально для пользователей WordPress, у которых нет навыков программирования. Тот, кто зависит от важных функций, должен регулярно их тестировать, желательно, конечно, в автоматическом режиме.

Puppeteer – это библиотека NodeJS, которая предоставляет высокоуровневый API для управления браузером Chrome через протокол DevTools. По умолчанию Puppeteer работает «без головы», но его можно настроить так, чтобы он открывал браузер, чтобы вы могли видеть, что происходит.

Функциональное тестирование

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

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

Визуальные регрессионные тесты

Даже «визуальный осмотр» можно автоматизировать с помощью имеющихся средств. Это работает относительно легко, например, с BackstopJS. Конфигурация выполняется быстро с помощью файла JSON. Для начала сравнения достаточно теста безопасности на консоли. Наконец, инструмент открывает окно браузера и показывает различия:

Визуальное регрессионное тестирование с помощью BackstopJS – кнопка Купить исчезла после обновления плагина на моем сайте.

Поскольку BackstopJS также предоставляет подробный машиночитаемый отчет со значением процентного различия, вы можете, например, получить уведомление по электронной почте, когда произошло значительное изменение дизайна.

Откат

Допустим, все обновления были выполнены, а самотестирование не прошло. Делать? Конечно, резервные копии можно импортировать автоматически. Но это работает только в трех случаях: 

  1. Когда у хостера есть интерфейс, через который можно автоматически активировать откат.
  2. Или если у вас есть доступ по SSH.
  3. И если бэкап достаточно маленький. В противном случае восстановление займет в худшем случае несколько часов.

Многие разработчики прекрасно знают, что в большинстве случаев это невозможно. Либо доступ по SSH недоступен, либо есть тайм-ауты из-за нехватки ресурсов на сервере.

Преимущества автоматических обновлений

Автоматические обновления также приносят заметные преимущества. Особенно если вы управляете несколькими сайтами WordPress, вы сэкономите много времени. Еще одно преимущество: в случае уязвимостей безопасности ваш плагин обновится автоматически, как только будет доступно безопасное обновление. Вы можете узнать больше о преимуществах автоматических обновлений в нашей новой электронной книге.

Другие решения?

Понятно, что мое мнение лишь одно из многих. Есть и другие решения, в основном более дорогие. Например, вместо того, чтобы потом импортировать резервную копию, вы можете заранее сделать копию сайта (промежуточная концепция ) и проводить с ней все возможные обновления и тесты. Если тест положительный, обновления также можно установить на действующий сайт (в большинстве случаев) полностью автоматически и без подозрений.

Другая идея – просто создать статические страницы с помощью WordPress. Таким образом, сайт будет немного более независимым от реального ядра. Плагины для этой цели существуют уже восемь лет: например, WPStatic. Но опять же, это работает не для всех, и совсем не для очень динамичных сайтов, таких как интернет-магазины.

заключение

Независимо от того, какой стратегии вы придерживаетесь, вы делаете это неправильно, верно? Нет. В конечном счете, это зависит от самого веб-сайта, ваших потребностей и, конечно же, вашего кошелька. Кто не запускает критические сайты и время от времени имеет сайт, который выдает ошибки, может быть установлен плагин автоматического обновления

В RAIDBOXES с полностью управляемой скоростью у вас есть возможность активировать автоматические обновления плагинов и тем. В настройках BOX вы также можете выбрать некоторые плагины и темы, с которыми у вас раньше были проблемы, и исключить их из этих автоматических обновлений. 

Автоматические обновления плагинов, вероятно, будут работать относительно хорошо для большинства небольших сайтов. Те, у кого есть более крупные сайты, также могут позволить себе больший бюджет для принятия соответствующих мер. Каждому посередине придется найти собственное решение.