If the site goes down right after a plugin update, the first goal is to restore access, not continue updates. The failure can be due to PHP incompatibility, interference with another plugin, incomplete database migration, or file replacement being interrupted. Record the plugin name and error text; Then just decommission the same change in a controlled manner.
Shortcut: Take a backup of the current state, read the PHP log, temporarily disable the newly updated plugin, and reproduce the cause in staging after the site comes back. It is not always safe to restore the old version of the files regardless of the database changes.
Is the plugin update really the cause of the crash?
Sync is an important sign, but not enough. Compare the error time with log, file history and administrator activity. It may be that the PHP version or the template has changed, the disk is full, or the OPcache is holding the previous code. If only plugin-dependent paths are broken, attribution is stronger.
When wp-admin won't open
- Go to
wp-content/pluginsfrom File Manager or SSH. - Name the suspect plugin folder, e.g. from
sample-pluginSwitch tosample-plugin.disabled. - Test the site and admin in an incognito window.
- If the site comes back, don't delete the folder; Keep the log and compare the versions.
If the plugin is not known, renaming the entire plugins folder is an emergency test. After entering, return the folder name and activate the plugins one by one. In WooCommerce, consider the impact of port stops, transports, subscriptions, and scheduled jobs.
What does the log show?
Statements like Uncaught Error, Call to undefined function, Class not found or Allowed memory size have different paths. The first plugin file in the stack trace is more important than the last WordPress public line. See the PHP-FPM or host log next to debug.log; Some fatals occur before the WordPress logger is activated.
wp plugin status plugin-slug
wp plugin deactivate plugin-slug
wp plugin list --update=available
These commands must be executed on the correct site and slug. Check the network-active status in multisite. Do not guess the name of the plugin and have a backup before the modifier command.
When is rollback appropriate?
If the previous version is available from a valid source and backup and the irreversible migration plugin does not have a database, restoring the files can be a temporary way. First, read the changelog and the downgrade documentation. For store and security plugins, the old version may not recognize the new schema or data.
Lower risk path to decision
- Clone the site in staging.
- Keep the version of PHP, WordPress and active plugins same as production.
- Reproduce the crash with the same request.
- Install the previous version or official patch and check the data.
- After deploy, monitor the log and business paths.
If the update is incomplete
Interrupting the process may leave a maintenance file or an incomplete set of plugin files. Check the existence of .maintenance and the completeness of the package, but don't delete the file just hoping for a fatal solution. If the package is incomplete, redeploy the same valid version and check the checksum or file index.
What compatibility should be checked?
| Layer | Diagnostic question | Reliable witness |
|---|---|---|
| PHP | Are the necessary versions and extensions supported? | Official plugin requirement and PHP error |
| WordPress | Is the minimum kernel version met? | readme and changelog of the same release |
| Extensions | Does hook, class or shared library interfere? | Stack trace and phased activation test |
| Database | Is migration complete and can be downgraded? | Plugin report, schema and backup before change |
| Cache | Old code still in OPcache or object cache? | Purpose cleanup after healthy deploy |
The message "This plugin has not been tested with your version of WordPress" alone is not proof of incompatibility; Just as its absence does not guarantee it. The decision should be based on version requirement, log and real scenario testing.
Acceptance testing after recovery
Seeing the home page is not enough. If the plugin is a form builder, test sending and receiving emails; If the plugin is a store, make a test order with a secure payment method and suitable environment; If the plugin is cache or security, check login, REST API and webhooks. The cron queue and new log errors should also be monitored for a few minutes.
In a site that has automatic deployment, the package and commit version should be recorded in the release. Changing the file directly on the server, although it may fix the outage quickly, creates drift and disappears in the next deploy. Revert final modification to source code or managed process.
Common errors
- Total replacement
wp-contentand damage to uploads. - Update all plugins to "sync" when outages.
- Clearing the log before recording the stack trace.
- Installing the plugin version from an unknown source.
- Restoring the old store database without keeping new orders.
Prevention for the next update
Each change should be done with backup and smoke test. Select login test, contact form, search, shopping cart, checkout and cron based on plugin role. Status code and error rate monitoring should continue after release. Auto-update is not the same decision for all plugins; Sensitivity, the possibility of rollback and staging are decisive.
When should we stop working?
If a general critical error message is seen, follow the WordPress Critical Error Guide for Recovery Mode and debug. The HTTP 500 response also has a separate path, which is explained in the 500 error guide.
If the plugin keeps business data, runs a database migration, or PHP workers still crash after disabling, it doesn't make sense to tinker further on production. In WordPress troubleshooting you can check the versions, stack trace and database changes together.
Frequently asked questions
Is it better to delete the plugin or disable it?
Deactivation is sufficient and reversible for detection. Removal may run uninstall hook or clear data.
Would clearing cache solve the problem?
Useful if OPcache keeps the previous version; cache does not fix the cause of a real fatal.
Should we restore the previous version from backup?
Only after checking the compatibility of schema and backup source. In the transactional site, database restore requires a program to save new data.