SYSTEMS OPERATIONAL
WordPress

WordPress Plugin Conflict: How to Find What's Breaking

Getwebup 6 min read

Something on your WordPress site broke right after an update — a page looks wrong, a form stopped submitting, the admin bar shows a JS error in the console, or the dashboard just feels sluggish. Nothing as dramatic as a white screen or a "critical error" message, so the usual fixes don't apply. Nine times out of ten, this is a plugin or theme conflict, and there's a reliable way to find the culprit without guessing.

Symptom

Conflicts show up in more shapes than outright fatal errors. Common patterns:

  • A page layout breaks or a section disappears after installing/updating a plugin
  • Buttons, sliders, or forms stop responding — usually a JavaScript conflict, visible as red errors in the browser console (F12 → Console)
  • The WordPress dashboard becomes slow to load, especially on pages like Posts or Plugins
  • Styling looks broken only on certain pages, or only for certain user roles
  • A feature works on staging but not production, or vice versa

If your site is fully down with a fatal PHP error or a blank white screen, that's a different, more urgent fix — see our posts on the critical error message and the white screen of death. This guide is for the subtler stuff: things that are broken but not fatal, where the error log doesn't tell you much.

Cause

WordPress loads every active plugin's PHP on every request, and most themes and plugins also enqueue their own JavaScript and CSS. Conflicts happen when two of these pieces step on each other:

  • Function or class name collisions — two plugins define the same function name, or one plugin extends a class the other modifies
  • JavaScript library version clashes — one plugin loads jQuery UI 1.12, another expects 1.13, and something silently fails
  • CSS specificity fights — a theme's stylesheet overrides a plugin's, or the other way round, breaking layout
  • Hook priority collisions — two plugins hook into the same action/filter and one's output overwrites the other's
  • Caching plugins serving a stale combined/minified JS or CSS file after an update, which looks exactly like a conflict but isn't one

The error log usually stays quiet for this class of bug because nothing is throwing a PHP fatal error — it's a logic or front-end clash, not a crash.

Fix

1. Rule out caching first

Before touching any plugin, clear every layer of cache: your caching plugin (WP Rocket, LiteSpeed Cache, W3 Total Cache, etc.), any server-side cache in cPanel, and Cloudflare if you're using it. Also hard-refresh the browser (Ctrl/Cmd + Shift + R). A surprising number of "conflicts" are just an old minified JS file still being served.

2. Use the built-in Health Check plugin (works even on a live site)

Install the free Health Check & Troubleshooting plugin from WordPress.org. Its Troubleshooting tab puts your site into a mode that disables all other plugins and switches to a default theme — but only for you, while logged in. Visitors still see the site normally, so you can debug on production without an outage.

  1. Activate Health Check, go to Tools → Site Health → Troubleshooting
  2. Click Enable Troubleshooting Mode
  3. Re-enable plugins one at a time from the troubleshooting bar at the top of the screen, checking the broken behavior after each one
  4. When the problem reappears, the plugin you just re-enabled is the conflict

3. No live-site tool available? Do it manually on staging

If you can't install a plugin (e.g. the dashboard itself is affected), do this on a staging copy instead of production:

  • Deactivate all plugins from Plugins → Bulk Actions, or rename the wp-content/plugins folder via File Manager/SFTP if you can't reach wp-admin at all
  • Confirm the issue is gone with everything off
  • Reactivate plugins one at a time, testing the specific broken behavior after each
  • Once you land on the culprit, reactivate everything else you'd already cleared and leave only that one off, to confirm it's isolated

Do the same with the theme if disabling all plugins didn't fix it: switch to a default theme like Twenty Twenty-Four temporarily. If the problem vanishes, it's theme code or a theme/plugin interaction, not the plugin alone.

4. For JavaScript errors, use the browser console and Query Monitor

Open DevTools (F12) → Console tab and reload the broken page. A red error naming a specific script file or function narrows things down fast — the filename usually includes the plugin's slug (e.g. /wp-content/plugins/some-plugin/js/script.js:42).

For a more precise view, install Query Monitor. It shows, per page load: every hook fired and by which plugin, every enqueued script and style with its source, database query counts per plugin, and PHP warnings/notices that never made it into the error log. It's the single most useful diagnostic plugin for this kind of issue.

5. Once you've found it: fix, don't just disable

What you foundWhat to do
Plugin conflicts with another specific pluginCheck if either has a newer version; open a support ticket with the plugin author naming the other plugin
Plugin conflicts with the themeCheck the theme changelog for recent JS/CSS updates; try the theme's default child theme without custom CSS
Conflict only appears after a specific updateRoll back that one plugin to the previous version via Plugins → Advanced View → rollback (WP 6.5+) or WP-CLI, and report the bug
Two plugins doing the same job (e.g. two SEO plugins, two caching plugins)Keep one, remove the other completely rather than just deactivating it

Command-line shortcut with WP-CLI

If you have SSH access, WP-CLI makes bisecting plugins faster than clicking through the dashboard:

wp plugin deactivate --all
wp plugin activate plugin-one
wp plugin activate plugin-two
# repeat, testing after each, until the issue returns

Prevention

  • Keep the plugin count lean — every extra plugin is another point of failure and another maintainer's release schedule you're depending on
  • Test major plugin and theme updates on staging before applying them to production, especially for anything touching checkout, forms, or page builders
  • Leave Query Monitor installed (but only active for admins) so you have visibility ready when something does break
  • Read plugin changelogs before updating anything that's had trouble before — "Fixed conflict with X" entries are a hint the plugin has a history
  • Avoid installing two plugins that solve the same problem; redundancy causes more conflicts than it prevents

Frequently asked questions

Will putting my site into Troubleshooting Mode with Health Check break it for visitors?

No. Health Check's Troubleshooting Mode only disables plugins and switches the theme for the logged-in administrator who enabled it. Regular visitors keep seeing the site exactly as it normally loads, so you can debug live without any downtime.

I disabled all plugins and the problem is still there. What now?

That rules out plugins entirely. Switch to a default theme like Twenty Twenty-Four next. If the issue persists even with a default theme and no plugins, the cause is likely a server-level setting (PHP version, a caching layer, or a CDN rule) rather than WordPress code.

Is it safe to test plugin deactivation directly on my live production site?

For a quick check it's usually fine since deactivating a plugin doesn't delete its data, but any visitor loading the site during the test sees it without that plugin. If the site gets real traffic, do the bisecting on a staging copy instead so nothing customer-facing is affected.

How is a plugin conflict different from the 'critical error' or white screen issues?

Those two are fatal PHP errors that WordPress catches and displays as a specific message, and they're logged. A plugin conflict as covered here is subtler: a logic clash, JS collision, or CSS override that doesn't crash PHP and often leaves nothing in the error log, so you have to isolate it by elimination instead.

Should I just delete the conflicting plugin once I find it?

Not immediately. First check for an update, since the author may have already fixed the conflict. If it's still broken on the latest version, contact the plugin's support and mention the other plugin by name — that's often faster than switching tools, especially if the plugin does something you rely on.

#wordpress #plugin-conflict #theme-conflict #query-monitor #troubleshooting #wp-cli

Keep reading

Chat with Support