Как безопасно обновить 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 одной кнопкой) или локальная копия. Закройте копию от индексации паролем.
Порядок обновления
- Плагины по одному или небольшими группами, начиная с некритичных. После каждой группы открывайте сайт.
- Конструктор страниц и его дополнения — вместе, версии должны быть совместимы.
- WooCommerce и его расширения — после проверки списка изменений.
- Тема — родительская. Если правки сделаны в дочерней теме, они сохранятся.
- Ядро WordPress.
- Переводы.
Если тестовой копии нет, хотя бы обновляйте в часы минимальной посещаемости и по одному крупному компоненту за раз.
Что проверить после обновления
- Главная, страница услуги, запись блога — внешний вид на компьютере и телефоне.
- Формы — отправить тестовую заявку и убедиться, что она пришла.
- Корзина и оформление заказа, если есть магазин.
- Вход в админку и редактор страниц.
- Консоль браузера — нет ли новых ошибок JavaScript.
- Журнал ошибок PHP или debug.log — нет ли новых предупреждений.
Если что-то сломалось
Критическая ошибка или белый экран
- Проверьте почту администратора: WordPress присылает письмо со ссылкой на режим восстановления и названием плагина, вызвавшего ошибку.
- Если письма нет — включите журнал отладки в wp-config.php:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
- Откройте сайт и посмотрите wp-content/debug.log — в строке Fatal error указан файл плагина или темы.
- Переименуйте папку виновника в 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 на хостинге — отдельное обновление, не менее важное, чем обновление плагинов. Порядок:
- Обновите WordPress, тему и плагины на текущей версии PHP.
- Сделайте копию сайта и переключите на копии PHP на новую версию.
- Включите журнал отладки и пройдите по ключевым страницам.
- Исправьте или замените компоненты, которые выдают ошибки.
- Переключите рабочий сайт.
Плагин PHP Compatibility Checker и аналогичные инструменты частично помогают найти несовместимый код, но окончательную проверку даёт только тестирование на копии.
Как организовать обновления, если сайтов несколько
Если у вас несколько сайтов на WordPress, удобно вести таблицу: сайт, версия WordPress, PHP, дата последнего обновления, особенности (конструктор, магазин, правки). Обновляйте в одном и том же порядке и после каждого сайта отмечайте результат. Так проблемы не теряются, а обновления не откладываются на месяцы.
Обновления в рамках поддержки
На техподдержке я обновляю сайты по этому порядку: копия, проверка изменений, тестовая копия для крупных обновлений, обновление рабочего сайта, проверка форм и ключевых страниц, отчёт.
Короткий итог
Копия, тест, проверка, план отката — четыре правила, после которых обновления перестают пугать. Чем регулярнее вы обновляетесь, тем меньше изменений за раз и тем ниже риск.
Если сайт приносит заявки или продажи, обновления лучше поручить тому, кто делает их по этому порядку постоянно.
Обновления и кэш
После любого обновления очищайте кэш: плагина кэширования, серверный, CDN и браузера. Многие «поломки» после обновления — это старые стили и скрипты, которые отдаёт кэш.
Если кэш очищен, а проблема осталась, — переходите к журналу ошибок.
Чек-лист безопасного обновления
- Резервная копия файлов и базы вне сервера.
- Список обновлений и чтение изменений у важных плагинов.
- Обновление на тестовой копии.
- Порядок: плагины, конструктор, WooCommerce, тема, ядро.
- Проверка страниц, форм, корзины, админки.
- Очистка кэша.
- Перенос на рабочий сайт.
- План отката на случай проблем.
Частые вопросы
Как часто нужно обновлять WordPress?
Проверять обновления — раз в неделю, обновления безопасности ставить сразу. Крупные обновления — после проверки на копии.
Можно ли просто включить все автообновления?
Для простого сайта с несколькими надёжными плагинами — да. Для магазина и сайтов с конструктором страниц лучше обновлять ключевые компоненты вручную после проверки.
Обновление удалит мой контент?
Нет. Страницы, записи и медиафайлы хранятся в базе и папке uploads. Теряются только правки, сделанные прямо в файлах плагинов или родительской темы.
Что делать, если нет резервной копии, а сайт сломался?
Отключить виновника переименованием папки, откатить версию плагина и сразу настроить регулярные копии. Если не получается — обратиться к специалисту.
Нужна помощь?
Если не хочется разбираться самому или не получилось — напишите мне. Посмотрю задачу и скажу, что нужно сделать, сколько это займёт и сколько будет стоить.
Связанные услуги
