wprun
wp.run knowledge

How to Test for Plugin Conflicts in WordPress

Isolate a WordPress plugin conflict in a clean, disposable sandbox by activating plugins one at a time — then share the result URL as proof, without touching your live site.

Published Jun 5, 2026 12 min read
WordPress plugin conflicttest for plugin conflictsplugin compatibility testisolate plugin issue

Key takeaways

  • Never bisect plugins on your live site — every deactivation is real downtime for visitors.
  • Reproduce the conflict in a clean, disposable sandbox so the only variables are the plugins themselves.
  • Activate plugins one at a time and name both sides of the conflict, plus the exact versions.
  • Rule the theme in or out with a default theme before blaming another plugin.

To test for plugin conflicts in WordPress, reproduce the problem in a clean, disposable WordPress sandbox and activate your plugins one at a time until the symptom reappears. A WordPress plugin conflict is what happens when two plugins — or a plugin and your theme or WordPress core — fight over the same hook, enqueued script, or database object, and the fix always starts with isolating which two pieces are actually colliding. Doing that isolation on a throwaway site instead of your live one is the difference between a five-minute test and an outage.

You can start now: press Launch WordPress at the top of this page and wp.run opens a clean WordPress install in seconds — the controlled baseline a conflict test needs, with no signup, no credit card, and no risk to your production site.

Why You Can’t Diagnose a Conflict on Your Live Site

The classic advice — “deactivate all your plugins, then reactivate them one by one” — is correct in spirit and dangerous in practice. You run it on the site that is actively serving visitors. Every deactivation is downtime, a broken checkout, or a missing form while you bisect.

There is a second, quieter problem: your production site is the worst place to isolate anything. It carries a custom theme, mu-plugins, drop-ins, object caching, host-level page caching, and a specific PHP build. When the symptom appears, you cannot tell whether the cause is the two plugins you suspect or some interaction with that environment. Too many variables are moving at once.

A clean WordPress sandbox removes every one of those variables. You get a stock theme, no other plugins, and a known WordPress and PHP version. If the conflict reproduces there, it is a genuine plugin-versus-plugin issue — not your cache, not your theme, not your host. If it does not reproduce on a clean install, that is equally useful: the fault lives in your environment, and you have just saved yourself from filing a bug the plugin author can never reproduce.

How to Isolate a WordPress Plugin Conflict, Step by Step

This is the core workflow. Each step runs inside a disposable wp.run sandbox, so nothing you do here can reach your real site.

  1. Read your live stack first. On production, open Tools → Site Health → Info and note the WordPress and PHP versions. You want the sandbox to match, or the test proves nothing about your environment.
  2. Launch a clean baseline. Open a fresh wp.run sandbox on those same WordPress and PHP versions. You land on a temporary *.wp.run URL with admin credentials already generated. With only the default theme and zero extra plugins, confirm the symptom does not occur. This is your control.
  3. Add the suspected plugins. Install the plugins involved — either the two you suspect, or your full active list if you do not yet have a suspect. Pass known presets as launch URL parameters (for example ?plugin=woocommerce) or upload each plugin ZIP from inside wp-admin.
  4. Reproduce the exact trigger. Recreate the precise action that breaks on your site: load the page, submit the form, open the block editor, run the checkout. Confirm you can make the symptom appear in the sandbox. If you cannot, the conflict is environment-specific — stop and move to staging.
  5. Activate one at a time. Turn the plugins on individually, re-running the trigger after each activation. The plugin that makes the symptom appear is your prime suspect. Note it with its exact version.
  6. Confirm both parties. A conflict needs two sides. With the suspect active, toggle the other plugins to find which combination breaks — then name both plugins and the versions involved.
  7. Rule the theme in or out. Switch to a default theme such as Twenty Twenty-Four, then back to your own. If the symptom only returns with your theme active, you have a theme–plugin conflict, not a plugin–plugin one, and the fix belongs in the theme.
  8. Capture proof and share the URL. Record the versions, screenshots, and any browser-console or WP_DEBUG errors, then copy the temporary *.wp.run link into your notes or bug report while the sandbox is still alive.

The whole loop takes minutes, and because the sandbox auto-deletes, you finish with zero cleanup.

A Concrete Example: SEO Plugin vs. Page Builder

Your contact page renders fine in the editor but throws a broken layout on the front end, and you suspect an SEO plugin and a page builder are colliding.

  1. Launch a sandbox matching your live WordPress and PHP versions.
  2. With the default theme and no plugins, open a page built with blocks — layout is clean. Baseline confirmed.
  3. Install the page builder, rebuild the contact layout, and view it on the front end. Still clean.
  4. Activate the SEO plugin and reload. The layout breaks. You now have your pair.
  5. Open the browser console: the SEO plugin’s output is injecting markup that the builder’s template does not expect. Screenshot the console and the broken render.
  6. Paste the *.wp.run URL, both plugin versions, and the steps into a report for the plugin author.

You proved the conflict, identified both parties, and produced a reproduction a maintainer can open — without ever loading either plugin on your production site.

Share the Result URL as Proof

A conflict you can only describe (“it breaks on my site”) is a conflict no maintainer can act on. A conflict you can hand over as a live, clean reproduction is a fixable bug. Because every wp.run sandbox has a shareable *.wp.run URL, you can attach the exact failing environment to a support ticket, a plugin’s GitHub issue, or a message to a teammate. They open the same install, run the same trigger, and see what you see — no “works on my machine” standoff. This is the same reproducible-environment workflow support and QA teams use to launch a WordPress sandbox as a baseline for any messy customer report.

Common Mistakes

These are process errors that quietly invalidate a conflict test:

  • Debugging on production. Bisecting live plugins is downtime, and the environment noise hides the real cause. Reproduce on a clean disposable install instead.
  • Testing on a site that is not actually clean. Leftover mu-plugins, drop-ins, or a previous test’s database rows defeat the entire point of isolation. Start from a fresh sandbox each time you need a guaranteed baseline.
  • Changing two variables at once. Toggling a plugin and clearing the cache in the same step destroys the signal. Change one thing, test, then change the next.
  • Assuming every conflict is plugin-versus-plugin. Themes and WordPress core are conflict parties too. Always run the default-theme check before you blame another plugin.
  • Not matching versions. Reproduce on the PHP and WordPress versions your live site runs. A conflict that only exists on PHP 8.1 will not surface if you test on 8.4, and vice versa.
  • Letting the sandbox expire before saving proof. Temporary sites auto-delete. Capture screenshots, versions, and the URL while the environment is still live.

When to Reproduce on Staging Instead

A clean sandbox answers one question precisely: do these plugins conflict in isolation? That is the right question most of the time, and it is the fastest way to a plugin compatibility test you can trust. But some conflicts only appear against your real content, user roles, custom fields, or server configuration. When the sandbox refuses to reproduce a bug your users clearly hit, the fault is environment-specific — layer a production-shaped staging site on top and debug there. Use the sandbox to prove the conflict is real and to isolate plugin issues quickly; use staging to confirm a fix against your specific data.

FAQ

What is a WordPress plugin conflict?

A WordPress plugin conflict occurs when two plugins — or a plugin and the active theme or WordPress core — interfere with each other, usually by hooking the same action or filter, enqueuing clashing scripts, or writing to the same database object. The result is a broken screen, a fatal error, a failed save, or a front-end regression that none of the components produces on its own.

How do I find which plugin is causing the problem?

Reproduce the issue in a clean WordPress sandbox, then activate plugins one at a time (or bisect the list in halves for speed), re-running the failing action after each activation. The plugin that makes the symptom appear is the culprit; toggle the rest to find the second plugin it collides with.

Do I have to deactivate plugins on my live site to test for conflicts?

No, and you should not. Deactivating plugins on production causes downtime and mixes environment noise into the result. Launch a disposable sandbox that matches your live WordPress and PHP versions, install the same plugins there, and run the isolation steps on the throwaway site instead.

Can a theme cause a plugin conflict?

Yes. A theme can enqueue conflicting assets, override templates, or hook the same actions a plugin uses. Always test with a default theme such as Twenty Twenty-Four; if the symptom disappears under the default theme, the conflict is between the plugin and your theme, not between two plugins.

How do I share a plugin conflict for a bug report?

Reproduce the conflict in a sandbox, then copy its temporary *.wp.run URL into the bug report along with the exact plugin versions and the steps to trigger it. The maintainer opens the same live environment and reproduces the issue immediately, which turns a vague complaint into an actionable report.

Find the Conflict Before It Finds Your Visitors

Reproduce the symptom on a clean install, bisect until two plugins are named, confirm the theme and versions, and hand over a link the maintainer can open. Your live site stays up the entire time, and the test leaves nothing behind to clean up.