WordPress сломался после обновления плагина: как восстановить сайт

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

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

Что сделать сразу после сбоя

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

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

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

До любых изменений желательно сохранить:

  • копию текущих файлов сайта;
  • дамп базы данных;
  • текст сообщения об ошибке;
  • журналы веб-сервера и PHP, если они доступны;
  • сведения о версии WordPress, PHP и проблемного плагина.

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

Проверка причины и безопасное отключение плагина

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

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

Проверить подходящий вариант можно на странице Beget.

Когда админка недоступна, отключение можно выполнить через файловый доступ. Перед переименованием каталога убедитесь, что работа ведётся с корнем нужного сайта, а не с резервной копией или соседним проектом. Обычно каталог расширений WordPress находится внутри wp-content/plugins. Название каталога проблемного плагина можно временно изменить, добавив к нему суффикс вроде .disabled. WordPress перестанет загружать расширение, но исходные файлы останутся на месте.

Если на сервере доступен WP-CLI и он уже настроен для этого сайта, можно использовать команду:

wp plugin deactivate имя-плагина

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

После отключения проверьте журналы. В них могут быть указаны файл и строка, вызвавшие сбой, несовместимый класс, отсутствующая функция или ошибка подключения к базе данных. Это помогает отличить неисправность самого плагина от нехватки памяти, неправильной версии PHP или повреждённых файлов.

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

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

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

Порядок действий обычно выглядит так:

  1. Перевести сайт в режим обслуживания или временно ограничить доступ к нему.
  2. Сохранить текущие файлы и базу, даже если они неисправны.
  3. Проверить, что выбранная резервная копия относится к нужному домену и проекту.

Перед настройкой откройте Beget и сверьте актуальные условия.

  1. Восстановить файлы и базу согласованно, если резервная система предусматривает оба компонента.
  2. Проверить конфигурацию подключения к базе, права доступа и адрес сайта.
  3. Открыть сайт и админку в отдельной сессии браузера.
  4. Проверить формы, авторизацию, загрузку изображений и ключевые бизнес-сценарии.

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

Откат версии и повторная установка

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

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

После установки совместимой версии проверьте:

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

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

Проверка сайта после восстановления

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

Когда требования понятны, перейдите в Beget и проверьте выбранный вариант.

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

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

После проверки обновите резервную копию уже исправленного состояния. Зафиксируйте рабочие версии WordPress, PHP, темы и расширений, а также дату последнего успешного обновления. Такая запись поможет быстрее восстановиться при следующем сбое.

Как подготовить безопасное обновление

Перед будущим обновлением проверьте совместимость новой версии плагина с установленными версиями WordPress и PHP. Изучите журнал изменений и отзывы о версии, особенно если расширение отвечает за платежи, авторизацию, SEO или обмен данными с внешними сервисами.

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

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

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

Что почитать дальше

Обложка вдохновлена гравюрой Альбрехта Дюрера «Меланхолия I» (1514). Посмотреть оригинал в коллекции Метрополитен-музея.