Быстрые ссылки

Как безопасно обновить WordPress, тему и плагины (и что делать, если всё сломалось)

Обновления в WordPress закрывают уязвимости и сохраняют совместимость с новыми версиями PHP. Но именно после обновлений сайты чаще всего и ломаются: несовместимый плагин, устаревшая тема, правки в файлах, которые затёрлись. Ниже — порядок, при котором обновление не превращается в лотерею, и план действий, если что-то всё-таки сломалось.

Почему обновлять обязательно

  • Безопасность. Большинство взломов WordPress — через известные уязвимости в устаревших плагинах.
  • PHP. Хостинги отключают старые версии PHP. Старые плагины и темы на новых версиях PHP падают с критической ошибкой.
  • Совместимость. Чем дольше не обновляешься, тем больше накапливается изменений и тем выше риск, что обновление сразу всего сломает сайт.

Регулярные небольшие обновления безопаснее, чем одно большое раз в два года.

Перед обновлением

1. Резервная копия

Полная копия файлов и базы данных. Проверьте, что она действительно создалась и хранится вне сервера. Плагины UpdraftPlus или BackWPup, копии хостинга, вручную через WP-CLI:

wp db export backup-$(date +%F).sql
tar -czf files-$(date +%F).tar.gz wp-content

2. Список того, что будет обновляться

Админка — Обновления покажет ядро, плагины, темы и переводы. Отметьте:

  • крупные обновления (смена первой или второй цифры версии) — у них выше риск;
  • плагины, от которых зависит выручка: WooCommerce, платёжные модули, формы;
  • тему и конструктор страниц.

3. Списки изменений

У важных плагинов откройте список изменений (Changelog). Если там написано о смене минимальной версии PHP, переписанных шаблонах или удалённых функциях — обновление надо проверять особенно внимательно.

4. Тестовая копия

Для сайтов, которые приносят деньги, обновляйте сначала копию: поддомен на хостинге (многие хостинги создают staging одной кнопкой) или локальная копия. Закройте копию от индексации паролем.

Порядок обновления

  1. Плагины по одному или небольшими группами, начиная с некритичных. После каждой группы открывайте сайт.
  2. Конструктор страниц и его дополнения — вместе, версии должны быть совместимы.
  3. WooCommerce и его расширения — после проверки списка изменений.
  4. Тема — родительская. Если правки сделаны в дочерней теме, они сохранятся.
  5. Ядро WordPress.
  6. Переводы.

Если тестовой копии нет, хотя бы обновляйте в часы минимальной посещаемости и по одному крупному компоненту за раз.

Что проверить после обновления

  • Главная, страница услуги, запись блога — внешний вид на компьютере и телефоне.
  • Формы — отправить тестовую заявку и убедиться, что она пришла.
  • Корзина и оформление заказа, если есть магазин.
  • Вход в админку и редактор страниц.
  • Консоль браузера — нет ли новых ошибок JavaScript.
  • Журнал ошибок PHP или debug.log — нет ли новых предупреждений.

Если что-то сломалось

Критическая ошибка или белый экран

  1. Проверьте почту администратора: WordPress присылает письмо со ссылкой на режим восстановления и названием плагина, вызвавшего ошибку.
  2. Если письма нет — включите журнал отладки в wp-config.php:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
  1. Откройте сайт и посмотрите wp-content/debug.log — в строке Fatal error указан файл плагина или темы.
  2. Переименуйте папку виновника в wp-content/plugins через FTP или файловый менеджер — WordPress его отключит.

Подробно — в статье о белом экране WordPress.

Откат плагина к предыдущей версии

  • Через WP-CLI:
wp plugin install contact-form-7 --version=5.9.8 --force
  • Вручную: скачайте предыдущую версию со страницы плагина на WordPress.org (раздел «Расширенный» — «Предыдущие версии»), удалите папку текущей версии и загрузите старую.
  • Для платных плагинов предыдущие версии обычно доступны в личном кабинете у автора.

После отката отключите автообновление этого плагина, пока не разберётесь с причиной.

Откат темы

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

Восстановление из копии

Если сломалось многое и быстро не разобраться, восстановите сайт из копии, сделанной перед обновлением. Затем повторите обновление на тестовой копии и найдите виновника спокойно. Учтите: если с момента копии появились новые заказы или заявки в базе, при восстановлении базы они пропадут. Для магазина их нужно сохранить отдельно.

Автообновления: как настроить разумно

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

  • минорные обновления ядра (исправления безопасности) — автоматически, это поведение по умолчанию;
  • небольшие проверенные плагины — автоматически;
  • WooCommerce, конструктор страниц, платёжные модули, тема — вручную после копии;
  • настроенная почта, чтобы письма об автообновлениях и ошибках доходили.

Отключить автообновления конкретного плагина можно в списке плагинов ссылкой в его строке. Полностью запретить автообновления ядра — константой в wp-config.php, но делать это без регулярного ручного обновления не стоит.

Частые причины поломок после обновления

  • Правки в файлах плагинов или родительской темы.
  • Нелегальные копии платных плагинов, которые не обновлялись годами.
  • Несовместимые версии конструктора и его дополнений.
  • Новая версия плагина требует более свежий PHP.
  • Плагин кэширования отдаёт старые стили после обновления — помогает очистка кэша.

Обновление версии PHP

Смена версии PHP на хостинге — отдельное обновление, не менее важное, чем обновление плагинов. Порядок:

  1. Обновите WordPress, тему и плагины на текущей версии PHP.
  2. Сделайте копию сайта и переключите на копии PHP на новую версию.
  3. Включите журнал отладки и пройдите по ключевым страницам.
  4. Исправьте или замените компоненты, которые выдают ошибки.
  5. Переключите рабочий сайт.

Плагин PHP Compatibility Checker и аналогичные инструменты частично помогают найти несовместимый код, но окончательную проверку даёт только тестирование на копии.

Как организовать обновления, если сайтов несколько

Если у вас несколько сайтов на WordPress, удобно вести таблицу: сайт, версия WordPress, PHP, дата последнего обновления, особенности (конструктор, магазин, правки). Обновляйте в одном и том же порядке и после каждого сайта отмечайте результат. Так проблемы не теряются, а обновления не откладываются на месяцы.

Обновления в рамках поддержки

На техподдержке я обновляю сайты по этому порядку: копия, проверка изменений, тестовая копия для крупных обновлений, обновление рабочего сайта, проверка форм и ключевых страниц, отчёт.

Короткий итог

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

Если сайт приносит заявки или продажи, обновления лучше поручить тому, кто делает их по этому порядку постоянно.

Обновления и кэш

После любого обновления очищайте кэш: плагина кэширования, серверный, CDN и браузера. Многие «поломки» после обновления — это старые стили и скрипты, которые отдаёт кэш.

Если кэш очищен, а проблема осталась, — переходите к журналу ошибок.

Чек-лист безопасного обновления

  1. Резервная копия файлов и базы вне сервера.
  2. Список обновлений и чтение изменений у важных плагинов.
  3. Обновление на тестовой копии.
  4. Порядок: плагины, конструктор, WooCommerce, тема, ядро.
  5. Проверка страниц, форм, корзины, админки.
  6. Очистка кэша.
  7. Перенос на рабочий сайт.
  8. План отката на случай проблем.

Частые вопросы

Как часто нужно обновлять WordPress?

Проверять обновления — раз в неделю, обновления безопасности ставить сразу. Крупные обновления — после проверки на копии.

Можно ли просто включить все автообновления?

Для простого сайта с несколькими надёжными плагинами — да. Для магазина и сайтов с конструктором страниц лучше обновлять ключевые компоненты вручную после проверки.

Обновление удалит мой контент?

Нет. Страницы, записи и медиафайлы хранятся в базе и папке uploads. Теряются только правки, сделанные прямо в файлах плагинов или родительской темы.

Что делать, если нет резервной копии, а сайт сломался?

Отключить виновника переименованием папки, откатить версию плагина и сразу настроить регулярные копии. Если не получается — обратиться к специалисту.

Нужна помощь?

Если не хочется разбираться самому или не получилось — напишите мне. Посмотрю задачу и скажу, что нужно сделать, сколько это займёт и сколько будет стоить.

Техподдержка сайтаНаписать в TelegramНаписать в Viber

Leave a comment