How to use Scalability Pro to debug slow WP All Import speeds

Normally, for most users, installing and activating Scalability Pro is enough to bring a radical performance shift in the speed of your imports with reports from customers varying from ‘awesome!’ to ‘omg how is it 12x faster!?’

However, Scalability Pro cannot fix all bad coding practices and sometimes you may need to delve a little deeper to discover why your imports are running slowly.

Why Imports run slowly in the first place

Importing items uses PHP, MySQL and the full WordPress environment, so if your wp-admin is still loading slowly after installing Scalability Pro, this is probably the reason why your imports are not as fast as they could be.

WP All Import imports in batches, so each batch involves a full reload of the WordPress environment.

Fixing slow wp-admin

If your wp-admin is slow, and Scalability Pro has not made a huge difference yet, this normally means a plugin you have installed is creating a bottleneck somewhere.

The quickest and easiest way to figure this out is to clone your site to a staging or dev environment (all good hosts provide cloning options). Once you have your clone:

  1. Deactivate your object cache – this allows you to see raw performance
  2. Install Query Monitor – order queries by row-count and look for which plugins are fetching the most rows. Typically this results in slow PHP time and high RAM usage
  3. Deactivate your plugins one-by-one until your RAM usage and page generation speed drop sufficiently. You should be looking for wp-admin settings pages to use circa 50MB RAM and page generation time of circa 1s.
  4. If you have a lot of plugins, you can deactivate tranches of them at once in your dev environment – e.g. deactivate 5 and then recheck the wp-admin speed looking for lower RAM usage and faster page generation time. Then once you see the drop, you can reactivate those plugins one by one until you find the culprit.

Analysing WP All Import batch speed

  1. Keep Query Monitor activated, as well as Scalability Pro and visit WP All Import > Manage Imports
  2. Click the scheduling link and copy the TRIGGER and PROCESSING URLs. We need these shortly.
  3. Manually load the ‘trigger’ URL directly in your browser – you will see some JSON notifying you the import has been triggered
  4. Copy the processing URL PARAMETERS into your browser, place them after /wp-admin/ and then add &spro_show_import_queries=1 to the URL

e.g. if your processing URL is something like:

http://localhost/wp-load.php?import_key=OxdAHmoD&import_id=21&action=processing

Alter it to this:

http://localhost/wp-admin/?import_key=OxdAHmoD&import_id=21&action=processing&spro_show_import_queries=1

Loading WP All Import through the regular wp-admin page allows Query Monitor to run and Scalability Pro watches for the &spro_show_import_queries=1 URL parameter and in these cases prevents WP All Import from exiting early and returning JSON.

What this means is that you will see the wp-admin page load AND you will see Query Monitor results.

Using Query Monitor, you should be able to quickly find any slow queries and which plugins they come from. Deactivating these plugins should bring you the speed you need for your imports

How to get faster imports without deactivating plugins

Obviously you installed these plugins for a reason, so probably you don’t want to deactivate them on live. Instead, what you can do is to use Asset Cleanup Pro – this plugin allows you to deactivate plugins using wildcards – e.g. you could deactivate a bunch of plugins that are not required for imports but only have them deactivated for the import URLs and keep them activated for wp-admin and/or your front end.

 

Be the first to comment and we'll reply right away.

Leave a reply

Super Speedy Plugins
Logo