Errors
How to Isolate a Plugin Conflict Without Killing Your Site
When a WordPress site starts misbehaving — broken layouts, JavaScript errors, admin pages that won't load, or features that suddenly stop working — a plugin conflict is the most common cause. The direct answer: deactivate all plugins at once, confirm the problem disappears, then reactivate them one at a time until the symptom returns. The last plugin you activated is the conflict. But doing that safely, without wiping out settings or breaking a live site for visitors, is where the details matter.
What a Plugin Conflict Actually Looks Like
Plugin conflicts do not always produce a dramatic error message. Sometimes they are subtle. Here are the most common symptoms that point to a plugin-versus-plugin (or plugin-versus-theme) conflict rather than a server issue or corrupted file:
- A feature works perfectly with one plugin active, but breaks when a second plugin is turned on.
- Your admin dashboard shows a blank area, overlapping UI elements, or JavaScript console errors.
- A specific page or post type stopped rendering correctly after a recent plugin update.
- Checkout, forms, or sliders stopped working — even though nothing obvious changed.
- You see a White Screen of Death or a critical error that mentions a plugin file in the stack trace.
- WooCommerce cart or checkout errors that appear only when a third-party extension is active.
If the symptom is sitewide and appeared right after an update, check out WordPress Site Broke After an Update for a fuller picture. If it is clearly one plugin's area of the site, the isolation steps below will get you there faster.
Before You Touch Anything: Back Up and Stage
This is not a formality. Plugin deactivation is mostly safe, but on complex sites — especially those running WooCommerce, membership systems, or page builders — deactivating a plugin can temporarily break relationships between stored data and active code. Always take a full backup (files and database) before you start.
If your host provides a staging environment, clone the site there first. Conflict diagnosis on staging means zero visitor impact. If you do not have staging, many hosts (SiteGround, WP Engine, Kinsta, Flywheel) offer one-click staging. Alternatively, the free WP Staging plugin can create a local clone on the same server.
If the conflict is already causing a 500 error or a completely broken admin, skip down to the section on diagnosing from outside the dashboard.
Step 1: Rule Out the Theme First
Before touching a single plugin, switch to a default WordPress theme — Twenty Twenty-Four or whichever default ships with your WordPress version. Go to Appearance → Themes and activate it. Then check whether the symptom persists.
If the problem disappears with the default theme active, you have a theme conflict, not a plugin conflict. If the problem persists with the default theme, you have confirmed it is plugin-related (or a deeper server/database issue). Switch back to your theme and proceed.
Step 2: The Safe Bulk-Deactivate Method
This is the standard approach when your admin dashboard is accessible:
- Go to Plugins → Installed Plugins.
- Check the checkbox at the top of the list to select all plugins.
- From the Bulk Actions dropdown, choose Deactivate and click Apply.
- Check whether the symptom is gone. If yes, you have confirmed a plugin is the cause.
- Now reactivate plugins one at a time, checking the symptom after each one, until it returns.
- The plugin that, when activated, brings the symptom back is the primary suspect.
Once you have found the suspect, do not stop there. Reactivate all other plugins and then activate the suspect plugin alone. If the symptom does not appear in isolation, you have a conflict between two plugins, not a bug in one plugin by itself. In that case, try deactivating all others again, activating the suspect, then adding the remaining plugins back two or three at a time. The symptom will return when you add the second conflicting plugin to the mix.
Step 3: When the Admin Is Broken — Diagnose via FTP or File Manager
If you cannot access the WordPress dashboard, you can still deactivate all plugins by renaming the plugins folder. This is safe and reversible.
- Connect to your server via FTP (FileZilla, Cyberduck) or your host's File Manager.
- Navigate to
wp-content/. - Rename the
pluginsfolder to something likeplugins_disabled. - Reload your site. WordPress will detect that the plugins folder is missing and deactivate everything gracefully, without deleting any plugin data or settings.
- If the site recovers, rename the folder back to
plugins. - Now go into the
pluginsfolder and rename individual plugin sub-folders one at a time (e.g., renamewoocommercetowoocommerce_off). WordPress treats a missing folder as a deactivated plugin. - Reload the site after each rename until you find the one that fixes it.
This method leaves all plugin settings in the database intact — nothing is uninstalled. When you rename the folder back, WordPress reactivates the plugin and picks up where it left off.
Step 4: Use Query Monitor to Catch Conflicts Without Deactivating Anything
Query Monitor is a free, well-maintained plugin in the official WordPress repository. It is one of the most powerful diagnostic tools available to WordPress engineers and it works without deactivating a single plugin.
Once installed and active, Query Monitor adds a toolbar menu. Go to the PHP Errors panel — it will name the exact file and plugin throwing PHP notices, warnings, or fatal errors. Go to the Scripts and Styles panels to see which plugins are enqueueing JavaScript or CSS that might be clashing. The Hooks & Actions panel shows every hook that fired on a given page load, which helps you spot two plugins hooking into the same action in a destructive way.
If the conflict is producing a visible JavaScript error (broken sliders, buttons that do not fire, AJAX calls that fail), open your browser's developer console (F12 in Chrome or Firefox) while Query Monitor is active. The console will usually name the script file, and from the filename you can identify which plugin owns it.
Step 5: Check Error Logs for Stack Traces
PHP errors are often logged even when they are not displayed on screen. Ask your host where the PHP error log lives, or enable WP_DEBUG_LOG in wp-config.php:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
With those three lines in place, WordPress writes errors to wp-content/debug.log. Open that file and look for the most recent entries. A fatal error will include a full stack trace naming the plugin file, function, and line number. That is your culprit without needing to deactivate anything else.
Turn off WP_DEBUG when you are done — you do not want debug output leaking on a production site.
What to Do Once You Find the Conflicting Plugin
Finding the conflict is only half the job. Here are your options, in order of least to most disruptive:
- Check for updates. The conflict may already be fixed in a newer version of one or both plugins. Update both and retest.
- Check support forums. Search the WordPress.org support forum for the plugin name plus a keyword from your symptom. You may find a known conflict and a workaround already posted.
- Contact the plugin author. Most commercial plugins have a support channel. Describe which two plugins conflict and on what action — developers can usually patch it.
- Find an alternative plugin that provides the same feature without the conflict.
- Use a code snippet to resolve a hook priority conflict. This is a developer-level fix — if one plugin is hooking too early or too late relative to another, adjusting the priority in a site-specific plugin or via a hook in your child theme's
functions.phpcan resolve it without touching either plugin's code.
When This Gets Complicated
Most conflicts are straightforward. But some are intermittent — they only appear under certain conditions (a specific user role, a particular post type, a caching edge case, or a race condition between two AJAX calls). Others involve three or more plugins interacting, making the binary search approach much slower.
If you have been through the steps above and the conflict is still elusive — or if the diagnosis is taking time you do not have — that is a good moment to bring in a second set of eyes. Mend's engineers deal with plugin conflicts daily. You can start with a free diagnosis: describe what you are seeing, and a senior engineer will triage it and give you a flat price before any work starts. Most straightforward conflict fixes go out the same day.
Preventing Plugin Conflicts Before They Happen
The best plugin conflict is the one you never have. A few habits that make a real difference:
- Update plugins on a staging site first before pushing to production. See the safe update order guide for the exact sequence.
- Keep your plugin count reasonable. Every additional plugin is another potential conflict surface. Audit quarterly and remove what you are not using.
- Read changelogs before updating. Authors often flag known conflicts or breaking changes in the changelog. A two-minute read can save an hour of debugging.
- Run uptime and error monitoring. Catching a conflict the moment it surfaces — rather than hours later when a customer reports it — limits the damage. Mend's Care Plan includes uptime monitoring and managed updates as part of the monthly service.
Plugin conflicts are solvable. The methodology above — isolate the theme, bulk-deactivate, binary-search reactivation, FTP fallback, Query Monitor, error logs — covers the full spectrum from beginner-friendly to technically thorough. Work through them in order and you will find the culprit. If the site is too broken to work from the dashboard, the FTP rename method gets you in without losing a single setting. If it is intermittent or multi-plugin, the error log and Query Monitor combination is your best tool.
Frequently asked questions
Will deactivating all plugins delete my plugin settings?
No. Deactivating a plugin leaves all its stored data in the database untouched. Settings, records, and content created by the plugin are only removed if you explicitly delete the plugin (and even then, some plugins leave their database tables behind). Reactivating the plugin restores full functionality.
What if the conflict only happens on the live site and not on staging?
This usually means the conflict is environment-dependent — often related to different PHP versions, server configurations, caching layers, or real data (user roles, post counts) that differ between environments. Enable WP_DEBUG_LOG on the live site temporarily and check the debug.log immediately after reproducing the symptom. The stack trace will name the conflicting code.
Can two well-maintained, reputable plugins still conflict?
Absolutely. Conflicts are often not the result of bad code — they happen when two plugins legitimately hook into the same WordPress filter or action, load JavaScript libraries in incompatible versions, or both try to modify the same output at the same time. A conflict says nothing about the quality of either plugin individually.
How do I tell whether it is a plugin conflict or a theme conflict?
Switch to a default WordPress theme (Twenty Twenty-Four) and test the symptom. If it disappears with the default theme active, the issue involves your theme — either the theme itself or an interaction between the theme and a plugin. If the symptom persists with the default theme, focus your search on plugins alone.