WordPress plugin conflict test: find the plugin that breaks the site
Short answer
Reproduce the problem first, then switch plugins off without affecting visitors: the Health Check & Troubleshooting plugin gives you a session with all plugins disabled and a default theme, for your user only. If the problem disappears, turn plugins back on in halves until it returns: the last half you enabled contains the culprit. On a staging copy you can do the same by deactivating plugins normally. Always read the error log too: it often names the plugin at once.
Start with the error log
Many “conflicts” are a single plugin failing, and the error message says which. Look in your host’s error log or the WordPress debug log: the folder after wp-content/plugins/ in a fatal error names the plugin. If the problem began right after a PHP version change, read the critical error guide instead: it’s probably not a conflict.
Test without affecting visitors
The Health Check & Troubleshooting plugin, from wordpress.org, has a troubleshooting mode: “Troubleshooting allows you to have a clean WordPress session, where all plugins are disabled, and a default theme is used, but only for your user until you disable it or log out.” (wordpress.org)
- Write down how to reproduce the problem: which page, which button, logged in or not.
- Install Health Check & Troubleshooting and start troubleshooting mode.
- Reproduce the problem. Still there with no plugins and a default theme? Then it isn’t a plugin conflict: look at the server, the PHP version or WordPress itself.
- Gone? Enable half of the plugins (within troubleshooting mode) and try again.
- Problem back? The culprit is in that half: disable half of those. Still gone? It’s in the other half.
- Repeat until one plugin is left. Then enable the real theme too: some conflicts are between a plugin and the theme.
Each round halves the suspects: 20 plugins take about five rounds, not twenty.
On a staging copy
Problems in checkouts, emails or scheduled tasks are hard to test in a session that only you see. Make a staging copy and deactivate plugins there the normal way, with the same halving method.
Once you’ve found it
- Update both plugins (or the plugin and the theme) involved: the conflict may already be fixed.
- Tell the developer: the steps to reproduce, the other plugin’s name, the versions of WordPress, PHP and both plugins.
- Decide: wait for a fix, use a settings workaround, or replace one of the two.
- Write it down in the site’s notes, so the next update day doesn’t repeat it.
If the conflict appeared right after an update, the faster route back is in a plugin update broke the site.
Key takeaways
- Read the error log first: a fatal error names the plugin’s folder, which can end the search immediately.
- Troubleshooting mode (Health Check & Troubleshooting plugin) disables plugins and switches theme for your session only.
- Re-enable plugins in halves: each round halves the suspects, so 20 plugins take about 5 rounds.
- Test the theme too: a conflict can be between a plugin and the theme.
- Once found, tell the developer with the exact steps and versions, and decide whether to replace the plugin.
Frequently asked questions
Does troubleshooting mode affect my visitors?
No. The plugin’s description: it disables plugins and uses a default theme “only for your user until you disable it or log out”. Visitors keep seeing the normal site.
How do I get out of troubleshooting mode if I’m stuck?
The plugin’s FAQ: you can disable it “by clearing your cookies”.
Is it a conflict or a PHP version problem?
If it started right after the host changed the PHP version, check that first: a plugin that doesn’t support the new version fails on its own, with no other plugin involved.
Check your own site before you upgrade
CompatNav is a free WordPress plugin. It reads the code of your plugins and themes on your own server and tells you, in plain words, what will break and what will only show notices on the PHP version you choose. It never changes your code. It can’t see problems that only appear while code runs with real data, so a quick check of your site after the upgrade still matters.
Sources
About the code examples: each output is the real output of the code shown, run with the official PHP builds, without a php.ini, with all errors reported and displayed. Only the file path was replaced by a neutral server path.