Woocommerce can be rather demanding in terms of performance requirements, particularly when it comes to larger Woo sites which are receiving a lot of orders.
With Woocommerce it’s really important to have a good quality host – shared, cheap hosting simply won’t do the trick.
If you’re having trouble with a slow WooCommerce website the simple process outlined below will definitely help but if hosting is your bottleneck you probably want to address that first.
If you’re looking for help with speeding up your WooCommerce site or specific elements of your site like speeding up the cart and checkout, request a FREE speed audit here and one of the team will review your site and tell you how we can help.
Our audit + consult service here is usually the best fit for low to mid weight Woocommerce sites. There’s also a 4-6 “sprint” version of this service which is better suited to bigger sites where changes need to be deployed in a staged manner.
If you’re looking to DIY a fix there’s a bunch of recommendations below but it’d also be worth running your site through our speed test tool HERE – it’s 100% free, takes about 90 seconds to run and will give you detailed recommendations on how to improve your speed AND SEO.
Table of Contents
How To Fix A Slow WooCommerce Checkout
The most common area where WooCommerce is slow is during checkout or anything to do with the shopping cart.
Common issues we see are the add to cart going slow, the cart page being very slow to render or processing the checkout after ordering taking a long time.
There’s a handful of reasons for a slow checkout, we talk about them in more detail below in this article but here’s a quick list:
- Poor quality hosting – the checkout and cart speed are directly tied to the hosting performance. If you’re on slow hosting the cart will go slow. Generally we recommend CloudWays as the host for WooCommerce.
- Underspecced or poorly configured servers – similar to point 1, we see a lot of clients on dedicated VPS hosting but the servers are poorly configured missing things like HTTP2 protocol support, lacking object caching, insufficient RAM, no swap space or small swap space or badly configured PHP.
- Slow database – this post talks in more detail about WordPress database optimization
- No Object Caching – again the post above on database optimization talks about Redis Object Caching which is a form of database caching which is important for high traffic sites or sites with lots of simultaneous checkouts
- No CDN – you NEED a CDN for WooCommerce to reduce the load on the hosting. Using Cloudflare with their APO service ($5/month) can dramatically reduce the load on the site and improve the checkout speed indirectly due to less load on the host.
- Poor security – a typical Woo site gets 1000 to 10000 brute force attacks per day. This post on Cloudflare Rules for WordPress provides several firewall rules that can dramatically reduce the load on Woocommerce even on the free Cloudflare plan. Dealing with threats at the Cloudflare layer instead of WordPress can reduce load significantly on your site and again indirectly speed up the checkout.
- Slow payment or shipping plugins – the cart and checkout pages typically dial out to payment providers and shipping APIs. If these connections are slow it’ll make the checkout slow. Updating payment and shipping plugins can sometimes fix this.
For more advanced troubleshooting and edge cases, using the plugin Query Monitor can help uncover performance and plugin bottlenecks on the checkout. It’ll often uncover PHP errors happening under the bonnet, slow database queries and slow API calls to shipping and payment APIs.
How To Fix Slow Add To Cart
Slow add to cart is caused by similar reasons to a slow Woocommerce Checkout but that said, it’s a little different as different things are happening when you add to cart.
Essentially when something is added to the cart the Woocommerce system starts creating an order in the database so again slow hosting and a slow database will cause problems here.
Here’s a basic action plan for fixing slow add to cart in WooCommerce:
- Optimize the database specifically making sure the database tables are running the InnoDB storage format vs the older and slow MyISAM. this post talks in more detail about WordPress database optimization
- Use a CDN, we recommend Cloudflare. A CDN (content delivery network) moves a lot of the workload off the web hosting freeing it up to focus on tasks like dealing with cart and checkout operations
- Filter malicious traffic using Cloudflare. A typically WooCommerce site gets 1000 to 10000 brute force attempts a day. Our post on CloudFlare Rules for WordPress shows you how to use Cloudflare to protect the WordPress logon pages
- Update all plugins with specific focus on older paid plugins. Many paid plugins don’t utilise the WordPress update system so often go without updates for years.
We’ve seen WooCommerce sites running paid (aka premium) plugins that are 10+ years old. Typically these older plugins are no longer fully compatible with modern versions of WordPress and WooCommerce and are causing errors or issues under the bonnet that presents itself as slowness on the front of the site.
- Use the highest version of PHP the site will support. PHP is the programming language that WordPress and WooCommerce run on. Higher versions run faster than older versions. For example PHP 8.0 is faster than 7.4 and so forth. You want to be using the highest version of PHP your site supports.
- Use high quality hosting – avoid cheap garbage hosting. We typically recommend Cloudways or WPAlpha as our preferred hosts for WordPress. You can see the full list on our Fastest WordPress Hosting post.
- Javascript errors – we see this all the time where agencies or site owners have DIYed their speed optimisation and have gotten too aggressive with javascript optimisation and broken things.
You can check for Javascript errors in most browsers by right clicking on the page->Inspect Element and then clicking the Console tab in the window that shows up. Errors will show in red.
- Crawlers and scrapers hammering the site adding and removing items to the cart in multiple times per second. You can block these crawlers using Cloudflare and by adding the two lines below to your robots.txt file
Disallow: /*?add-to-cart*
Disallow: /*?add-to-wishlist*
1. Test the Speed of Your Site
This is an important first step because it allows you to set a performance benchmark for your site right now, which will give you a baseline to work from.
Our speed test tool will give you detailed information on where specifically your site is slow and how you can improve it – it’s totally free, give it a try here: https://www.wpspeedfix.com/website-speed-test/
When it comes to loading speed, we ideally want to be under the 1-second mark, a reference point at which the site load starts to feel instant. Loading times over 5 seconds will hurt both your rankings on Google and your sales, so we have to make sure your site always runs under at least 5 seconds.
Generally speaking, most sites can load at around 1.5 seconds without too much trouble and will still feel fast enough to the visitor.
2. Use Good Quality Hosting
Speed issues with WooCommerce often are because you’re using a lower quality hosting provider. Your hosting provider is the foundation of everything you do online.
Web host quality is directly connected to the overall effectiveness of your website’s SEO and search engine rankings, Google and Facebook advertisements and also your conversion rate.
WooCommerce sites are different from regular WordPress because the backend speed is also important.
Woo sites are not just a website, they’re also a key line of business application, which means that it’s very likely you and your employees are going to spend a significant amount of time in there, managing orders and customers. The backend is also as important as frontend speed, and on a cheap host, where the available CPU power is of limited capacity, it’s just not going to perform very well.
Good vs. Bad Quality Hosting
A key point of difference between a good and bad quality host is in the CPU allowance to an individual hosting account on the server and also the general configuration of that server.
A good hosting provider will give you lots of processing capacity for your site and will be able to maintain your website’s speed even in situations when there’s an influx of orders and site traffic.
A high-quality host will also make use of advanced caching applications such as Memcached which will allow the site to use Object and Database caching which considerably speeds up the backend and heavy front-end operations like users submitting carts and checkouts.
Bad quality hosts can have thousands of websites stacked on the same server, thus limiting their resources and each one gets only a small piece of the CPU power; this also means that they can only handle a small number of site visitors at once.
There’s not that much difference in price between a “cheap” host and a high-quality host.
For example, a dedicated Cloudways server starts at $10/month and will run considerably faster than a lot of other shared hosting services out there.
Here’s a list of hosts we use ourselves and recommend to clients:
GOOD WooCommerce Hosts
WPX Hosting – great balance of speed and price; also has data centers in the US and UK
Cloudways – a relatively new provider that offers dedicated VPS servers on a speed optimized server stack; this translates into lightning fast speeds (for more detail, see our Fastest WordPress Hosting article)
**If you sign up to Cloudways, you can use the coupon code FASTHOSTING and get $25 off your first invoice
WPEngine – this provider is one of the more expensive ones BUT they include a lot of additinoal features such as staging areas, backups and malware protection.
Siteground – a fast cPanel host and probably the minimum standard you need – it’s cheap, acceptable when it comes to speed and overall a much better option than Hostgator, Bluehost, Godaddy and other cheap cPanel hosts.
BAD WooCommerce Hosts
As we mentioned earlier, these are the hosts that cram thousands of sites on one server, making none of them load fast.
If you happen to Google “cheapest WordPress hosts,”, the names of Bluehost, Godaddy, Hostgator will immediately show up.
The following list is one of web host we personally have experience with we can confirm that they have a negative impact on the speed of a WooCommerce site.
- Bluehost
- Godaddy
- Site5
- Hostgator
- 1and1
- Crazydomains
- Netregistry
- Dollar2Host
- eHost
- EntryHost
- Any other subsidiary of EIG Hosting
Another good reason for investing in a high-quality web host is uptime – you’ll see far less outages with a quality host versus a cheap host.
The hosts we’ve listed above will likely have several short outages every day. Good quality web hosts will make sure the service maintenance times and site outages are done at a time when your site traffic is at a minimum.
We wouldn’t recommend using a standalone VPS host unless you are a server specialist. VPS hosts grant more server power (if you know how to utilize it), but the configuration of your host server is far more important, which is why we recommend Cloudways – they take care of that for us.
3. Use a Caching Plugin
Besides a good quality web host, caching is another key element in speeding up and fixing your WooCommerce site.
A “cache” prebuilds your website’s pages and gets them ready to go when the next visitor makes a request. Without this caching plugin, your site’s pages will have to be compiled from scratch for every visitor who arrives at the site.
Caching plugins significantly speed up your site as all the processing done to generate a page is done in advance and one time per page versus every page load.
These are the plugins we use and recommend:
W3 Total Cache – W3TC is free and one of the fastest caching plugins on the market BUT can be quite complex so not ideal for the DIYer.
WP Rocket – this is an easy to use plugin, perfect for the DIYER but is a paid plugin (although still dirt cheap).
Important Note on Caching Plugins
When doing the setup of the caching plugins for Woocommerce, be mindful to exclude the /myaccount, /cart, /checkout and /wishlist pages and all their child pages from caching. If you don’t do this, you’ll also end up breaking the functionality of your checkout; also shopping carts will start jumping between users.
Note that the caching plugins don’t usually show the cached version of pages when you’re logged into the site’s backend. So, make sure to always do a test in a different browser, one that’s logged out of the site when you’re tinkering with caching plugins.
If your site has become fast after installing a caching plugin, BUT the WordPress or Woocommerce backend or the Woocommerce checkout is still slow, this usually indicates an issue with your web host performance or it might also be a plugin conflict. The plugin Query Monitor can help uncover plugin conflicts.
If your host supports Memcached, configuring W3 Total Cache to use Memcached for database and object caching will significantly speed up the Woocommerce and WordPress backend.
DO NOT use disk caching for database and object caching because it will actually slow things down – database and object caching must use a memory based cache.
4. Use a Content Delivery Network (CDN)
A CDN will make a significant improvement in the loading times of your website, regardless of where the visitors come from.
A CDN or content delivery network is a network of servers around the world that serve up part of your website. This speeds up the site for international visitors and visitors geographically further away and also removes some of the load off your web host.
The one we use and recommend is Cloudflare. They have more than 150 server locations around the world, and have a free plan that works well for most sites out there. They also offer security features that can eliminate some of the risky traffic that may be hitting your site, as well as contact form spammers reaching your site.
5. Image Compression and Optimization
The size of your site (or the amount of data the users will need to download once they hit the site) can be reduced with image compression. In some cases, compressing your site images can show a dramatic increase in speed cutting several seconds of load times as the amount of data to download is significantly reduced.
Compressing the images won’t have an impact on their quality (as long as you use lossless compression) but will reduce their file size.
Most image compression plugins are more or less equal in performance, with about 3-5% difference in the performance of each.
Our plugin of choice is ShortPixel and here are three reasons why we love using it:
- Speed – Woocommerce sites have a ton of images so bulk compressing images can take time. Shortpixel make it easy to compress images in bulk.
- PNG to JPG conversion – many sites use images in PNG format where JPG would be smaller. Shortpixel can automatically convert PNG without transparency into JPG files thus reducing page sizes further.
- WEBP file format support – Webp images are usually 2-5x smaller than their PNG or JPG counterparts at the same image quality. Some browsers don’t support .webp so you can’t just change all images at your site in bulk.
There are two ways to use .webp image files safely: the first one would be to use a cloud-based service that charges you every month. These services can detect whether the browser that’s accessing the site is able to support webp files and if it does, than it can serve them up instead of JPG or PNG.
The second way is to use the HTML <picture> markup or tags. This tag informs the browser that there’s an alternative webp image file that’s available for use and if the browser supports webp, it will use those images instead.
Although ShortPixel is not free, it is pretty cheap and you can have a free trial – just click this link and you’ll be able to get free optimization for 100 images.
Configuring ShortPixel
The screenshots below will give you a detailed view of the settings that we use on ShortPixel to get maximum performance.
GENERAL TAB
We’d like to compress thumbnails (since they’re most likely in use), to use backup for the original images just in case, and also keep the EXIF tags on them. The EXIF data or tags is important because it sometimes contains information that will give us a small amount of SEO boost.
*** Please remember to use LOSSLESS compression and NOT lossy compression.
Lossless = same quality for a smaller file size
Lossy = even smaller file size, but comes with a reduction of quality. It’s recommended that you don’t sacrifice image quality over a boost in speed, since it’s rather important in e-commerce and generating sales.
ADVANCED TAB
In this section, we’d like to enable the PNG to JPG feature, to create the WEBP file alternatives and to convert to RGB format, since these are much smaller than CMYK files.
Sometimes our theme files will contain uncompressed, which is why we generally add that into the Additional Media Folders field.
Once you’re done with the bulk optimization, you can enable the WEBP <picture> tag markup.
Click here for Shortpixel trial and get 100 images optimized for free.
6. Switch to HTTPS from HTTP so you can use HTTP2
By making your site run in HTTPS (encrypted) mode, you’ll make your web browser software to use the newer HTTP2 protocol (as long as your host supports it, that is). This protocol is considerably faster than the older HTTP 1.1 one. In the video below you can see the difference in speed between the two of them.
Important: Your host will need to support HTTP2, and unfortunately most of the cheap hosts out there just don’t. Our speed test tool will test for HTTP2 support – try it at https://www.wpspeedfix.com/website-speed-test/
7. Upgrade from PHP 5.6 to PHP 7
PHP is the programming language which WordPress and WooCommerce are built on.
PHP version 7 is 2-3x as fast as the old PHP version 5.6. If your site is still running on 5.6, with the upgrade you’ll notice around a 30% speed boost to the frontend and backend functions of your site.
Note that not all sites are PHP7 compatible. You can use this free plugin from WPengine to test your site’s compatibility (and, it can be used regardless of the hosting provider).
You can do the PHP7 switch directly from your CPanel or management console.
Right now, PHP 7 comes in four versions: 7.0, 7.1 and 7.2 and 7.3 – switch to the v7.3 if you can, as it’s the newest and fastest out there.
8. Disable Plugins You Don’t Use
Sites that have been running for several years often contain plugins that they don’t use anymore which can slow them down considerably.
It’s worth doing a review and audit of all the plugins in use on your site and disabling or deleting any that are no longer used or inactive.
9. More Advanced Troubleshooting
Here we’ve got a couple of more advanced troubleshooting ideas you can go through:
- Update all plugins up to the latest version – something that we see pretty often, sites running plugins several years old and thus being incompatible with the newer versions of WordPress and WooCommerce the site is being run on. These updates can also fix bugs that might be slowing down the site.
- Query Monitor plugin – https://wordpress.org/plugins/query-monitor/ – a plugin that will let you have a look into each page load and tell you what’s going on. Often it will help in uncovering broken plugins or code that might be part of the reason behind slow loading times. A lot of the time we find Woocommerce plugins that are old and thus not fully compatible with the version of Woocommerce the site is running, logging errors into the event log which are adding delays into the page load but aren’t actually showing visible errors in the WordPress backend.
- WP Optimize – https://wordpress.org/plugins/wp-optimize/ – use this plugin to optimize your database queries.
Other Resources:
- The FAST WordPress Hosting Companies – an article on the fastest WP hosts on the web right now
- Fixing Slow WordPress – a more generic article on WordPress Speed Optimization