Restoring a site after a failed update
White screen, critical error, inaccessible admin area after an update: the method to get back to a working state without losing orders placed in the meantime.
What I check first
A failed update doesn’t always show up the same way, and the symptom points directly to the diagnosis. Before restoring anything, I work out exactly what’s broken: the entire site, only the admin area, or just one specific feature such as the WooCommerce checkout. Restoring a full backup blindly, without this diagnosis, often means fixing a minor problem at the cost of avoidable data loss.
The exact cause is almost always one of three things: maintenance mode stuck on after an interruption, a plugin or theme incompatible with the new version, or a PHP fatal error in code that was never tested against this configuration. Telling these three cases apart before acting avoids restoring a full backup when a simple plugin deactivation would have been enough.
What you see after an update that went wrong
- White Screen of Death: no page renders, neither on the front end nor in the admin area
- "There has been a critical error on this website" message, with or without visible technical detail
- Admin area inaccessible while the public site seems to work normally
- Public site erroring out while the admin area stays accessible, often a sign of an issue specific to the active theme
- Site stuck in maintenance mode after an interrupted update, showing the usual "briefly unavailable for scheduled maintenance" message
How I restore a site after a failed update
-
Reading the debug.log
I enable or check the debug log to pinpoint the exact cause: maintenance mode stuck on (the .maintenance file not removed), an incompatible plugin, or a specific PHP fatal error with the file name involved.
-
Isolating via FTP rename
If the log points to a specific plugin or theme, I disable it by renaming its folder over FTP, bypassing the admin area if it’s inaccessible. WordPress treats a renamed folder as a missing plugin and disables it automatically.
-
Checking after isolation
If the site works again after this targeted deactivation, the cause is confirmed. I can then look for a compatible version of the plugin or an alternative, without having touched the database.
-
Full restore if the cause stays unclear
If the log doesn’t allow the cause to be isolated quickly, or if several elements seem responsible at once, I restore the database and files backup taken before the update rather than keep searching blindly.
Related pages
-
Critical error on this site
The possible causes behind this generic message and the method to tell them apart quickly.
-
Enabling WordPress debug mode
How to enable WP_DEBUG and read debug.log without exposing errors to site visitors.
-
Reading WooCommerce error logs
Where to find and how to interpret WooCommerce-specific logs, distinct from the general WordPress log.
-
Backing up a shop before an intervention
What a backup needs to cover before any update or risky intervention, so it’s actually useful the day you need it.
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.