Краткий ответ: если сайт WordPress сломался после обновления, не удаляйте файлы и не переустанавливайте сайт сразу. Сначала сделайте копию файлов и базы, проверьте email администратора, включите debug.log, удалите зависший файл .maintenance, отключите плагины через FTP, временно смените тему, проверьте PHP, .htaccess, кеш и error_log хостинга.
После обновления WordPress может сломаться из-за конфликта плагина, темы, версии PHP, кеша, прав файлов, незавершённого обновления или ошибки в базе данных. Официальная документация WordPress указывает, что автоматическое обновление может завершиться ошибкой из-за сбоя соединения, проблем с файлами ядра или неправильных прав доступа; среди симптомов могут быть белый экран, предупреждение об ошибке обновления или PHP-ошибка. :contentReference[oaicite:1]{index=1}
Чаще всего проблема появляется после таких действий:
Важно понимать: “сломался сайт” — это не одна ошибка. После обновления WordPress может показать белый экран, ошибку 500, критическую ошибку, сообщение о техническом обслуживании, пустую админку, сломанный дизайн, неработающие формы, проблемы с корзиной WooCommerce или ошибку базы данных.
Если после обновления вы видите именно внутреннюю ошибку сервера, полезно отдельно проверить инструкцию по теме ошибка 500 WordPress. Если вместо сайта открывается полностью белый экран, рядом по логике подходит материал белый экран WordPress.
Сделайте backup, включите debug.log, проверьте письмо Recovery Mode, удалите .maintenance, отключите плагины через FTP, временно смените тему, проверьте .htaccess, PHP, кеш и логи сервера.
Через FTP, файловый менеджер хостинга или SSH можно отключить плагины, сменить тему, восстановить .htaccess, удалить .maintenance и включить debug.log.
Обновление могло изменить PHP-код, JavaScript, CSS, структуру базы, зависимости плагина или требования к версии PHP. Старый код темы или другого плагина может быть несовместим с новой версией.
Главное правило: сначала определить тип поломки. Не нужно сразу удалять плагины, менять тему или откатывать весь сайт, пока не понятно, что именно произошло.
| Симптом | Вероятная причина | Что проверить первым |
|---|---|---|
| Белый экран | PHP Fatal error, тема, плагин, память | debug.log, error_log, плагины, тема |
| Ошибка 500 | .htaccess, PHP, сервер, плагин | error_log, .htaccess, PHP memory limit |
| Критическая ошибка WordPress | Плагин или тема вызвали fatal error | Email администратора, Recovery Mode |
| Сайт застрял в режиме обслуживания | Обновление не завершилось | Файл .maintenance в корне сайта |
| Админка работает, фронтенд сломан | Тема, кеш, шаблон, визуальный конструктор | Тему, кеш, консоль браузера |
| Фронтенд работает, админка сломана | Плагин админки, редактор, REST API, память | Плагины, debug.log, REST API |
| Сломался только WooCommerce | Конфликт WooCommerce, оплаты, доставки, кеша | Логи WooCommerce, checkout, cart fragments |
Для диагностики WordPress лучше включить WP_DEBUG_LOG, чтобы ошибки писались в файл debug.log, а не показывались посетителям. В официальной документации WordPress указано, что WP_DEBUG_LOG сохраняет ошибки в debug.log и полезен, когда ошибку нужно посмотреть после AJAX-запроса, cron-задачи или скрытого сбоя. :contentReference[oaicite:2]{index=2}
В логе чаще всего нужно искать:
Восстанавливать сайт после обновления нужно по шагам. Цель — вернуть доступ и найти точную причину, а не просто временно скрыть ошибку.
Даже если сайт уже сломан, перед любыми действиями скачайте файлы и экспортируйте базу данных. Это нужно, чтобы можно было откатить неудачные ручные правки.
Сохраните:
WordPress 5.2 добавил Fatal Error Recovery Mode. Этот режим даёт администратору шанс войти в админку и отключить проблемный плагин или тему даже после критической ошибки. :contentReference[oaicite:3]{index=3}
Проверьте почту администратора сайта. Если пришло письмо о технической проблеме, перейдите по ссылке восстановления. В режиме восстановления можно отключить проблемный плагин или тему без полного доступа к обычной админке.
Если письмо не пришло, проверьте:
После неудачного обновления WordPress может показывать сообщение “Коротко недоступно для планового обслуживания”. Обычно это значит, что в корне сайта остался файл .maintenance.
Официальная функция WordPress wp_is_maintenance_mode() проверяет наличие файла .maintenance в корне WordPress и использует его для определения режима обслуживания. :contentReference[oaicite:4]{index=4}
Что делать:
Путь обычно выглядит так:
/.maintenance
Если сайт показывает критическую ошибку, белый экран или ошибку 500, а в админку зайти нельзя, отключите плагины вручную.
Откройте папку:
/wp-content/plugins/
Переименуйте её:
plugins_disabled
Если сайт заработал, проблема почти точно в одном из плагинов. Верните папке старое имя:
plugins
Дальше отключайте плагины по одному, переименовывая папки отдельных плагинов. Так можно найти конкретный плагин, который сломал сайт после обновления.
Если плагины не виноваты, проверьте тему. После обновления WordPress или PHP старая тема может сломаться из-за устаревшего кода, ошибки в functions.php, шаблонах или несовместимости с новым редактором.
Откройте папку:
/wp-content/themes/
Переименуйте активную тему:
my-active-theme_disabled
WordPress попробует переключиться на стандартную тему, если она установлена. Для аварийной диагностики полезно держать одну стандартную тему WordPress в папке themes.
Кеш-плагины, плагины безопасности, редиректы и обновления могут изменить .htaccess. Если файл повреждён, сайт может показать ошибку 500 или циклические редиректы.
Путь:
/.htaccess
Переименуйте файл:
.htaccess_old
Если сайт открылся, зайдите в админку WordPress → Настройки → Постоянные ссылки → Сохранить. WordPress создаст новый базовый .htaccess.
После обновления сайта проблема может быть не в самом WordPress, а в PHP. Например, хостинг переключил PHP 7.4 на PHP 8.x, а старая тема или плагин используют несовместимый код.
Что сделать:
После обновления может сломаться не сам WordPress, а кешированная версия CSS, JavaScript, HTML или object cache.
Очистите:
Если после обновления сломался WooCommerce-магазин, проверьте корзину, checkout, личный кабинет, оплату, доставку и AJAX-запросы. Для магазинов также полезна отдельная инструкция: как ускорить WooCommerce, потому что проблемы после обновлений часто связаны с кешем, базой, cart fragments и тяжёлыми плагинами.
Важно: код ниже влияет на диагностику, работу сайта, память PHP, правила сервера и доступность WordPress. Перед изменениями сделайте копию wp-config.php, .htaccess, файлов сайта и базы данных. Не оставляйте публичный вывод ошибок включённым на рабочем сайте.
Куда вставлять: файл wp-config.php, выше строки “That’s all, stop editing”.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
После этого откройте:
/wp-content/debug.log
Когда ошибка найдена и исправлена, отключите отладку:
define( 'WP_DEBUG', false );
Куда вставлять: wp-config.php, выше строки “That’s all, stop editing”.
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
Если хостинг ограничивает память на уровне сервера, эта настройка может не сработать. Тогда нужно менять memory_limit в панели хостинга, php.ini или через поддержку хостинга.
Куда вставлять: файл .htaccess в корне сайта. Перед заменой сохраните старый файл.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Куда выполнять: SSH в корне сайта. WP-CLI официально поддерживает команду wp plugin deactivate, включая отключение всех плагинов через параметр –all. :contentReference[oaicite:5]{index=5}
wp plugin deactivate --all
Потом включайте плагины по одному:
wp plugin activate nazvanie-plagina
Куда выполнять: SSH в корне сайта.
wp plugin list
Куда выполнять: SSH в корне сайта.
wp theme list
wp theme activate twentytwentyfive
Перед выполнением проверьте, что стандартная тема реально установлена в папке wp-content/themes.
Куда выполнять: SSH на сервере. Пример для wp-config.php:
php -l wp-config.php
Пример для functions.php активной темы:
php -l wp-content/themes/nazvanie-temy/functions.php
Куда выполнять: SSH в корне сайта.
rm .maintenance
Перед удалением убедитесь, что вы находитесь именно в корневой папке нужного сайта.
После восстановления сайт должен открываться, админка должна быть доступна, а в debug.log не должно быть новых критических ошибок.
Проверьте не только главную страницу. После обновления WordPress часто ломается не весь сайт, а отдельные функции:
Если сайт заработал после отключения плагина, не включайте его сразу обратно. Сначала проверьте версию плагина, совместимость с WordPress и PHP, changelog, логи и наличие обновлений.
Если точно понятно, что сайт сломался после обновления конкретного плагина, не всегда нужно откатывать весь сайт. Иногда безопаснее вернуть предыдущую версию только одного плагина или темы.
Перед откатом проверьте:
Если сайт коммерческий и простой слишком дорогой, можно восстановить последнюю рабочую копию. Но после восстановления нужно отдельно выяснить, что именно сломало сайт, иначе проблема повторится при следующем обновлении.
Иногда обновление плагина меняет таблицы, опции или мета-данные. Если процесс оборвался, часть данных может обновиться, а часть остаться в старом состоянии.
Проверьте:
После обновления может сломаться редактор, сохранение страниц, WooCommerce, формы или плагины, которые используют REST API.
Проверьте URL:
/wp-json/
Если REST API возвращает ошибку, смотрите Network в браузере, debug.log и security-плагины.
Если сайт открывается, но не работают кнопки, фильтры, корзина, формы или действия в админке, проверьте AJAX-запросы.
Типичный путь:
/wp-admin/admin-ajax.php
В Chrome DevTools откройте Network, повторите действие и посмотрите, какой запрос возвращает 500, 403, 404 или пустой ответ.
После ручного обновления, переноса или распаковки архива права файлов могут стать неправильными.
| Объект | Частое значение | Комментарий |
|---|---|---|
| Папки | 755 | Обычно достаточно для каталогов WordPress. |
| Файлы | 644 | Обычно подходит для PHP, CSS, JS и изображений. |
| wp-config.php | 600 или 640 | Зависит от настроек сервера. |
Не ставьте 777 на весь сайт. Это небезопасно и может создать новые проблемы.
Если обновление совпало по времени с взломом или заражением, проблема может быть не в WordPress, а во вредоносном коде. Проверьте неизвестные PHP-файлы, странные include, eval, base64_decode, подозрительные cron-задачи и изменённый .htaccess.
Если проблема в плагине, теме, PHP, .htaccess или базе данных, переустановка ядра может не помочь. Сначала нужно посмотреть логи.
Папки лучше переименовывать, а не удалять. Так можно быстро вернуть состояние назад и не потерять файлы.
Откат может вернуть сайт, но если потом снова нажать “Обновить”, ошибка повторится. Нужно найти конкретный конфликт.
WP_DEBUG_DISPLAY на рабочем сайте может показать посетителям техническую информацию. После диагностики отладку нужно отключить.
Ручное удаление записей из базы может сломать настройки, пользователей, товары, заказы, SEO-данные или работу темы.
Если сайт заработал после отключения плагинов, включайте их по одному. Иначе будет сложно понять, какой плагин вызывает ошибку.
Сайт может сломаться не из-за обновления WordPress, а из-за того, что новая версия плагина требует другой PHP или старый код не работает на новой PHP-версии.
Возможная причина: fatal error в плагине или теме.
Что делать: проверить email администратора, открыть Recovery Mode, включить debug.log, отключить проблемный плагин через FTP.
Возможная причина: обновление оборвалось, файл .maintenance остался в корне сайта.
Что делать: удалить .maintenance через FTP или SSH, очистить кеш, проверить, завершилось ли обновление.
Возможная причина: конфликт плагина, ошибка темы, нехватка памяти, REST API, security-плагин.
Что делать: отключить плагины через FTP, проверить debug.log, увеличить memory limit, временно сменить тему.
Возможная причина: кеш CSS/JS, конфликт темы, изменение шаблонов, ошибка конструктора страниц.
Что делать: очистить кеш, отключить оптимизацию CSS/JS, проверить консоль браузера, пересобрать CSS конструктора.
Возможная причина: конфликт WooCommerce, оплаты, доставки, кеша, темы или кастомных шаблонов.
Что делать: проверить логи WooCommerce, checkout, корзину, шаблоны темы, плагины оплаты и доставки.
Возможная причина: миграция базы не завершилась, кеш сброшен, появился тяжёлый запрос, конфликт object cache или cron-задачи.
Что делать: проверить Query Monitor, cron, Action Scheduler, кеш, базу данных и нагрузку сервера.
Возможная причина: REST API, JavaScript-ошибка, security-плагин, конфликт конструктора или темы.
Что делать: открыть консоль браузера, проверить /wp-json/, отключить плагины оптимизации и безопасности, посмотреть debug.log.
Возможная причина: кеш, минификация, объединение CSS/JS, CDN, неправильные пути к файлам.
Что делать: отключить минификацию, очистить CDN, проверить Network, восстановить права файлов.
Сначала сделайте резервную копию текущего состояния, затем включите debug.log, проверьте email Recovery Mode, файл .maintenance, плагины, тему, .htaccess, PHP и кеш.
Да. Через FTP, файловый менеджер хостинга или SSH можно отключить плагины, сменить тему, удалить .maintenance, восстановить .htaccess и включить debug.log.
Обычно причина в плагине, теме или кастомном коде, который несовместим с новой версией WordPress, PHP или другим обновлённым плагином.
Это временный файл в корне WordPress, который создаётся во время обновления. Если обновление оборвалось, файл может остаться, и сайт будет продолжать показывать режим обслуживания.
Если сайт коммерческий и простой критичен, backup может быстро вернуть работу. Но после отката всё равно нужно найти причину, иначе ошибка повторится при следующем обновлении.
Отключите все плагины через FTP или WP-CLI. Если сайт заработал, включайте плагины по одному и проверяйте сайт после каждого включения.
Причина может быть в плагине, который работает только в админке, в редакторе, REST API, dashboard widget, нехватке памяти или security-правилах.
Часто виноваты кеш CSS/JS, минификация, CDN, изменение файлов темы, конфликт конструктора страниц или устаревшие шаблоны.
Можно, но это не должно заменять нормальное обслуживание сайта. Лучше делать backup, тестировать обновления на staging-копии и обновлять сайт контролируемо.
Проверьте, правильно ли включён WP_DEBUG_LOG, есть ли права на запись в wp-content, не пишет ли хостинг ошибки только в server error_log, и не происходит ли сбой до загрузки WordPress.
Если сайт WordPress сломался после обновления, лучше не делать случайные правки. Важно восстановить доступ, найти точную причину в логах и исправить конфликт так, чтобы проблема не повторилась.
Если сайт WordPress сломался после обновления, не нужно паниковать и переустанавливать всё подряд. В большинстве случаев причина находится в плагине, теме, незавершённом обновлении, .maintenance, .htaccess, PHP-версии, нехватке памяти, кеше или правах файлов.
Безопасный порядок такой: сделать копию, включить debug.log, проверить Recovery Mode, удалить .maintenance, отключить плагины, проверить тему, .htaccess, PHP, кеш и логи сервера.
Самый правильный результат — не просто вернуть сайт, а понять, что именно сломалось после обновления. Тогда следующая попытка обновления не повторит ту же ошибку.
Об авторе