Plugin clashes: how to diagnose and fix them

9 Sep 2026

WordPress plugins clashing with a bang

You activate a new plugin. Suddenly the checkout breaks, or the admin dashboard goes white, or a specific page stops loading. You deactivate it. Everything starts working again.

That’s a plugin clash… two plugins fighting over the same function, the same hook, or the same piece of the DOM. It’s one of the most common problems we see on client sites, and it’s one of the easiest to diagnose if you know where to look.

Why plugin clashes happen

WordPress lets plugins hook into almost everything. That’s powerful, but it’s also a recipe for conflict.

Two plugins might:

  • Register the same function name (PHP fatal error)
  • Both try to modify the same HTML element (one overwrites the other)
  • Both load JavaScript that manipulates the same DOM node (race condition)
  • Both try to handle the same WooCommerce filter (unpredictable sequence)

Most of the time, the plugins don’t know about each other. They just happen to want the same thing.

How to diagnose a clash

Step 1: Isolate the problem

Deactivate all plugins except WooCommerce (if it’s a shop). Does the problem go away?

If yes, you have a clash. If no, the problem is in your theme or WordPress core (less common).

Step 2: Binary search

Now re-activate half of the plugins. Does the problem come back?

  • If yes, the culprit is in this half. Deactivate half of these. Repeat.
  • If no, the culprit is in the other half. Activate that half instead. Repeat.

This narrows it down fast. With 20 plugins, you’ll find the clash in 4–5 rounds.

Step 3: Confirm the clash

Once you’ve identified two plugins that clash, activate only those two (plus WooCommerce if needed). Does the problem reproduce?

If yes, you’ve found it. If no, there’s a third plugin involved so you need to go back to binary search.

Tools that actually help

Query Monitor

Activates a debug bar in the WordPress admin that shows you every database query, every hook that fired, every error, and every slow query. When a page is slow or broken, Query Monitor tells you why. Install it on your staging site and dig in.

Enable WP_DEBUG

Add this to your site’s wp-config.php:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

This logs all PHP errors, warnings, and notices to /wp-content/debug.log. When a plugin clash causes a white screen of doom, the error log will tell you exactly which file and line number broke.

There has been a critical error on this website.
The WordPress white screen of doom

Read the admin email crash-report

Make sure the site’s admin email is set to you (the web designer managing the site). WordPress sends detailed crash reports to this address. When something breaks, you’ll get an email with the error message and the plugin file name. That’s your first clue.

To check: Settings → General → Administration Email Address

These crash report emails can look intimidating if you’re not a coder. But they’re actually straightforward to read. You’ll see a detailed “stack trace”. You don’t need to understand the code itself, just look for the core information:

  • The plugin file name (e.g. wp-content/plugins/elementor/...)
  • The line number where it broke
  • The exact error message

Write these down. You’ll need them when you reach out to the developers for a fix.

Common clashes (and how to fix them)

Elementor + ACF (Advanced Custom Fields)

Elementor and ACF both try to manage custom fields in the editor. On some sites, they fight over the same DOM elements, causing the editor to freeze or not save changes.

Fix: Update both to the latest versions. If it persists, disable ACF’s editor integration in ACF settings and use Elementor’s native custom field support instead.

WooCommerce Payments + Stripe (or PayPal) plugin

If you’re using both the official WooCommerce payment gateway and a third-party Stripe/PayPal plugin, they can both try to process the payment, causing double charges or checkout errors.

Fix: Use only one. If you need features from both, ask the plugin author if they’re compatible, or switch to a single well-maintained payment plugin.

Tip: I recommend avoiding WooCommerce Payments. Stick with the official Stripe plugin. Be careful of the official PayPal plugin – it’s often buggy. I maintain a PayPal Payments plugin patch that helps clean it up.

Yoast SEO + Rank Math

Both are SEO plugins. Both try to manage meta tags, sitemaps, and redirects. Activating both is asking for trouble.

Fix: Pick one. Migrate your settings from the old one to the new one, then deactivate the old one.

WooCommerce + Inventory Management plugin

If you’re using WooCommerce’s built-in inventory and a third-party inventory sync plugin, they can fight over stock levels, causing inconsistencies.

Fix: Use WooCommerce’s native inventory if possible. If you need a sync plugin (e.g. for a POS system), disable WooCommerce’s inventory management by unchecking the “Enable stock management” box under WooCommerce > Settings > Products > Inventory.

Getting help from plugin developers

If the plugin is hosted on wordpress.org, don’t hesitate to post in the support forum. But be specific. Instead of “it doesn’t work — the screen goes white,” include:

  • The exact version of the broken plugin
  • The file name and line number from your crash report (e.g. wp-content/plugins/my-plugin/includes/admin.php on line 42)
  • What you were doing when it broke
  • Which other plugins you have active

Giving a developer the file name and line number is much more likely to get a response than a vague description. They can jump straight to the problem instead of guessing.

Managed hosting takes the pain out

If you’re managing multiple client sites, plugin clashes can eat up your time. That’s one reason managed WordPress hosting is worth it. The hosting provider monitors for clashes, slow queries, and resource conflicts. They catch problems before your clients do, and they fix them without you having to troubleshoot.

For a solo designer managing 5–10 sites, that peace of mind often pays for itself.

Prevention

The best clash fix is prevention:

  1. Keep plugins updated. Most clashes are fixed in updates.
  2. Vet new plugins before activating. Read reviews. Check the support forum. Look at the last update date.
  3. Limit plugins. Each plugin is a potential clash. If you can do something with a theme setting or a single plugin, don’t add a second plugin.
  4. Test on staging. Activate new plugins on a staging site first. If they clash, you’ll find out before your customers do.

curated WordPress & WooCommerce
articles in your inbox once-a-week

no marketing - just interesting WP/Woo news