What this problem looks like
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.
Step 1: Deactivate a single plugin via File Manager, SFTP, or FTP
- Connect via File Manager, SFTP, or FTP.
- Browse to
wp-content/plugins/. - Find the plugin folder slug, for example
woocommerceorcontact-form-7. - Rename it by adding
.offat 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.
Step 2: Deactivate all plugins at once
When you do not know which plugin failed, rename the whole plugins directory:
- Go to
wp-content/in File Manager, SFTP, or FTP. - Rename
pluginstoplugins.disabled. - Reload the site and
wp-admin. - If the site works, rename
plugins.disabledback toplugins. WordPress will see the plugins again, but they should remain deactivated. - In
wp-admin, activate plugins one at a time and reload the site after each activation. - When the fatal error returns, the plugin you just activated is the culprit.
Step 3: Deactivate with WP-CLI (SSH)
Only run these commands if you have SSH access to the server. WP-CLI updates the database active_plugins option directly without renaming folders:
cd /path/to/wordpress
wp plugin list
wp plugin deactivate woocommerce
wp plugin deactivate --all Step 4: 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.
Step 5: 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 a maintenance plan for future updates.
When to stop DIY and hire help
If the site still fatals after all plugins are off, the theme or core may be corrupt. BugShield diagnoses plugin conflicts at a confirmed fixed price without hourly billing surprises.