New 24/7 monitoring and daily cloud backups now included in every Shield Pro plan.

Plugins

How to deactivate a WordPress plugin without wp-admin

When a plugin fatals, wp-admin often dies with it. You do not need the dashboard to turn a plugin off. This tutorial shows file-level deactivation, bulk isolation, and WP-CLI commands that work when the Plugins screen is unreachable.

Time: 10-20 minutes Level: Intermediate

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

  1. Connect to hosting or SFTP.
  2. Browse to wp-content/plugins/
  3. Find the plugin folder slug, for example woocommerce or contact-form-7.
  4. Rename it by adding .off at the end: woocommerce.off
  5. 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:

  1. Rename wp-content/plugins to wp-content/plugins.disabled
  2. Create a new empty folder named plugins
  3. 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:

bash
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.

Do not delete plugin folders until you have a backup and you are sure you will not need the settings stored in the database. Deactivation preserves settings; deletion may not.

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.

FAQs

Does renaming plugins delete settings?

No. Settings stay in the database. WordPress simply stops loading that plugin’s code until you rename the folder back or reinstall.

Can I deactivate plugins from the database?

Yes, by editing the active_plugins row in wp_options, but it is error-prone due to serialized PHP data. FTP or WP-CLI is safer for most users.

What if only the front end is broken but admin works?

Deactivate the suspect plugin from wp-admin normally, or use a health check plugin to identify front-end-only fatals.

When should I hire BugShield instead?

If the site still fatals after all plugins are off, the theme or core may be corrupt. BugShield diagnoses plugin conflicts at a fixed price.

Rather someone else fixed it?

Request a fix at a confirmed price. Named UK developer, secure Vault, direct chat.

Request a Fix