Conflict Testing, Why and How

person typing on a Macbook while working on a WordPress website from the Administration pages

I tend to see a lot of issues in my work where the problem is caused by interference from the site’s theme or one of the active plugins. A conflict test is not the first thing I recommend to but it is something I ask users to do this quite bit. The process itself can be tedious and many site owners are afraid of damaging their site or losing sales while testing. There are ways to work around these issues though.

In most cases, the cause of an issue can be found by looking at the status report and logs for the site. If the issue is found this way then a conflict test is not actually needed. If the cause cannot be determined with these there is a good chance the issue is a conflict with either the theme or one of the active plugins. If WooCommerce or one of a number of security plugins are being used it’s possible to check the system status from the site dashboard. If not using WooCommerce or a security plugin there are others that offer this report. I have found this free plugin in the WordPress.org repository that should work in most cases. All plugins and the theme should be updated to the latest versions as well. This will ensure that the latest and most secure code is used.

Checking Logs and System Status Report

A system status is a comprehensive report that shares a lot of information that can be useful in diagnosing problems. They vary from one plugin to another but some common issues they will show are:

  • Outdated plugins and extensions
  • Outdated PHP and MySQL versions
  • The WordPress Memory Limit being set too low
  • Bloated database and the entry(ies) causing issues
  • Missing SSL/HTTPS

There are certainly other less obvious issues this type of report can show but they tend to be obscure. If seeing a plugin issue, contact the support team for it. They are likely hearing about the same problem from other customers and know how or are working on a way to correct it.

To check the logs it is necessary to enable them by editing the wp-config.php file or using a debug plugin. I recommend the editing of the wp-config.php file because it is more secure than a plugin. But if it is not feasible to edit the file then the plugin option is okay. Good logging plugins have been updated recently, have decent ratings, and have been tested with the site’s version of WordPress, or at least within the last few minor versions.

Once the preferred logging system is configured, the issue should be forced to occur as a test. The logs should then show what is occurring behind the scenes. They typically provide error codes and error messages that a system status report cannot see. If any errors are found, a search of the internet can show if the error has already been reported. Many times there are reports and workarounds that will help. If nothing has resolved the issue by this point it is recommended to conduct the Conflict Test.

Conducting a Conflict Test

The first thing I recommend before conducting a conflict test, or any other test for that matter, is to ensure there is a recent backup of the entire site (including the database). There are many backup plugins available for free and just as many premium options from various vendors. Once that occurs the theme should be changed to a default theme to ensure the cleanest and safest code is used during the test.

The Twenty Twenty theme is best for this because the base code has been tested a lot. It is a common theme used for testing because of this. If the site uses WooCommerce, I recommend using the Storefront theme instead. It also has a base code that has been thoroughly tested and is configured to work with WooCommerce specifically. So it’s good for having clean code on the shop, cart, and checkout pages.

The next step is to deactivate all of the plugins in the site. The easiest way to do this is to use the Bulk actions tool on the Plugins page. Selecting the checkbox at the top of the list of plugins will select all of them. The dropdown menu that shows “Bulk Actions” has a “Deactivate” option. Selecting the “Apply” button will then deactivate all plugins. Testing for the issue at this point will show if there is a conflict. If the issue is resolved, there is a conflict.

To find out which plugin is causing the issue they should be activated one at a time and tested after each activation. The plugin causing the issue is revealed when the issue occurs after it is activated. Once that is known the plugin developer or their support team can be contacted for assistance. Free plugins are typically supported from the WordPress.org support forums.

If the site shows the issue with all plugins disabled then the web host support team will need to be contacted. If all of the plugins are active and the issue still does not occur then it is likely a theme conflict. That can be determined by activating the theme and testing again. If the issue still does not occur then the problem was likely a plugin or the theme having a temporary glitch that was reset when deactivated.

In some cases this test needs to be run behind the scenes. Normally this should be done from a testing or staging environment so the main site is not affected. Sometimes there is no testing or staging environment, though. In cases like this I recommend using the Health Check plugin. It has a Troubleshooting Mode that allows for testing in a private, secure environment. When activated the live site remains unchanged but a private test environment is activated for the Administrator. This view of the site will use the installed Twenty Twenty theme and will “deactivate” all plugins. Enabling them in the test environment one at a time and testing after each activation will show what plugin causes the issue.

Conclusion

The process for this can be described simply as disabling and enabling plugins then testing until the cause is identified. It can get rather monotonous if there are a lot of plugins but it’s rather easy to repeat after doing it once or twice. And, as I said in the beginning of this post, it is one of my “go to” tests for customers because it usually works. I hope this helps you too. If it does, or if you have questions, feel free to leave a comment below. Take care!