Why wp-admin stops working
Plugins load on every request, including wp-admin. A fatal error in plugin code prevents the Plugins list from rendering, so you cannot click Deactivate. File-level deactivation skips WordPress hooks entirely because PHP never loads that folder.
Deactivate a single plugin via FTP
- Connect to hosting or SFTP.
- Browse to wp-content/plugins/
- Find the plugin folder slug, for example woocommerce or contact-form-7.
- Rename it by adding .off at the end: woocommerce.off
- Reload the site and wp-admin.
WordPress treats missing plugin folders as deactivated. The plugin row may show a “file not found” notice in admin until you delete or reinstall it. That is normal after manual deactivation.
Deactivate all plugins at once
When you do not know which plugin failed, rename the whole directory:
- Rename wp-content/plugins to wp-content/plugins.disabled
- Create a new empty folder named plugins
- Confirm the site and admin load.
Move plugin folders back from plugins.disabled into plugins one at a time, refreshing after each move, or activate individually from wp-admin once it works.
Deactivate with WP-CLI
If you have SSH and WP-CLI, deactivation does not require renaming folders:
cd /path/to/wordpress
wp plugin list
wp plugin deactivate woocommerce
wp plugin deactivate --all
WP-CLI updates the database active_plugins option directly. This is cleaner than renaming when CLI access exists.
Must-use plugins and drop-ins
Plugins in wp-content/mu-plugins/ load automatically and do not appear on the normal Plugins screen. Rename or remove the offending PHP file in mu-plugins if a must-use plugin is the cause.
Drop-ins like advanced-cache.php or object-cache.php sit in wp-content/ itself. Rename them only if you know which caching layer they belong to, or you may disable caching entirely.
After the site is back
- Update the plugin that caused the fatal, or replace it with a supported alternative.
- Test checkout, forms, and cron-dependent features.
- Re-enable auto-updates only on low-risk plugins.
- Consider staging or Shield maintenance for future updates.