How to Speed Up WooCommerce
WordPress ecommerce - WooCommerce
After years of working in WordPress – I can tell you that WooCommerce is by far the #1 plugin for ecommerce. Not only has it continued development since it’s creation in 2011 – but it remains the staple for anyone looking to pop a store up in minutes. It’s well coded, easy to use and frequently updated. WooCommerce also powers 8% of all ecommerce websites in existence – 21% of the top 1 million sites. And to top it off… it’s free.
That all being said, it does have drawbacks. Particularly when it comes to load times. Shopping online is fun – but not when it’s slow. The average frustration level of a shopper tends to fall in the 1-3 second range – meaning you have a few precious moments to make that shopper stay. More often than not, those types of load times for ecommerce can be tricky (especially on mobile).
In comes PressPickle. Having experienced every possible problem, bug or quirk within the WooCommerce system – we can share a variety of tricks to speed up your ecommerce site. Some of our recommendations are specific to WooCommerce. Here’s the list in no particular order.
8 ways to speed up WooCommerce
Meraki Moon - from ~6 to ~2 seconds
Our client came to us with roughly 1500 products and over 48GB of images stockpiled over the past few years on WooCommerce. There had never been any optimization to date so we had a clean slate to make improvements. Using the tips above – plus a few of our own tricks (we can’t give everything away – but it’s nothing you couldn’t figure out on your own) – we successfully cut load times by MORE than half.
The biggest time saver was image compression – we chopped this down to less than 10GB of uploads (from 48) – do the math. That shaved 4X time spent downloading images. Imagify was our plugin of choice – but there are plenty to choose from.
Next was caching – they had a crude caching system in place using WP Super Cache (and previously W3C – which is a nightmare if you haven’t tried it) – we switched to WP Rocket and the instant loads began. Very intuitive to configure – you can get heavy handed if you’re using every feature – but generally it’s very user friendly.
Of course, other adjustments were made; removing theme bloat, reducing the number of plugins used, optimizing the WP database (this was a big one), using WooCommerce tools, etc.
At this point in time – we were in the 3.5-4.5 second range.
Time to chop the autoloaded data. Be careful with this if you see “theme options” or any sort of setting for a plugin, don’t just remove everything. Look at the largest ones – if you see any above 100K – determine if you can axe them or not. Here’s a nice little snippet to help find autoloaded data in SQL:
SELECT LENGTH(option_value),option_name FROM wp_options WHERE autoload='yes' ORDER BY length(option_value) DESC LIMIT 20;
Our last and final change was the migration to our hosting service (they were using WPEngine, who we used to swear by, but that’s changed recently – we’ll cover this in another blog soon) – that seemed to knock it down another full 1-2 seconds. Like we said, hosting matters even with nothing else modified.
We capped it off with our built-in CDN and a fresh SSL.
There you have it. You can see the before/after above on both Pingdom and GTMetrix. Be careful reading these – don’t focus on the “scores” too much. That’s a common mistake we come across with clients attempting to self-assess the issues. These are merely tools and guidelines to point you in the right direction – don’t argue with load times to achieve good scores. You can see how fast we’re loading – the scoring can be very misleading if you’re going for perfect marks. Read through the notes, of course, but don’t take them to heart if you know better. In many cases dings against your speed come from third parties which you can’t control (unless you remove them).