How To Fix A Slow WooCommerce Checkout in 9 Easy Steps

For many e-commerce stores, a slow WooCommerce checkout process is the primary cause of high cart abandonment rates and lost sales. Even the smallest delay in the checkout process can lead to frustrated customers and a negative shopping experience. 

Fortunately, there are simple and effective ways to speed up your checkout process and improve overall website performance.

In this guide, we will walk you through 9 easy steps to fix a slow WooCommerce checkout and boost your sales.

What Causes a Slow WooCommerce Checkout?

Before we dive into speeding up your WooCommerce checkout, it’s essential to understand the potential causes of a slow checkout process. Here are the most common culprits:

Poor server performance: If your server is struggling to handle a large number of requests, it can significantly slow down your checkout process.

Bloated or unoptimized plugins: Plugins that are not optimized or have excess code can impact your website’s speed and cause delays during checkout.

Large images and media files: Large image sizes and unoptimized media files can increase page load times and slow down the entire checkout process.

High traffic volume: A sudden spike in traffic can put a strain on your server and cause slow checkout performance.

How to Fix a Slow WooCommerce Checkout

Video transcript: How To Fix a SLOW WooCommerce Checkout

0:00Introduction: Fixing a Slow WooCommerce Checkout

Hello from WP Speed Fix. In this video we're going to talk about fixing a slow WooCommerce checkout. We have this post on our website, How To Fix a Slow WooCommerce Checkout in 9 Easy Steps. We probably have more than nine steps in it now, but let me talk you through it. I'll try and keep the video as short as possible and try not to get too technical, but it is a technical problem, so bear with me if it gets too technical. If you have any questions, you can ask in the comments and we'll come back and clarify.

Let me just talk through these. I'll put them in the show notes. These are kind of our bullet points of what we're going to talk through, so let's get started. Here's the link to the article on the website if you want a lot of detail there.

0:23Use Good Hosting for WooCommerce

The first one is obvious, and it's one we come across all the time: you've got to use good hosting. We see so many customers come through at WP Speed Fix who have WooCommerce problems and they're just on bad or underpowered hosting. At the most basic level, the difference between good hosting and bad hosting is probably akin to the cost of a cup of coffee versus the cost of a nice lunch. Typically for WooCommerce hosting, if we were going to recommend you a host, it would probably be Cloudways, cways.net.

The reason why is that they're very good value in terms of price for performance. There are a lot of configuration options there, but there's also a lot of guard rails in place, so you get the power of a VPS server with a managed service as well. They have a bunch of add-ons that will help make managing the site easier, things like automated patching with AI. If you want to check that out, go to cways.net. We also have this post on our website about the fastest WooCommerce hosting, the hosts we typically recommend on top of Cloudways, so check that out.

But you've got to use good hosting, so start with that. If your hosting is costing you two bucks or five bucks a month, it's probably just not good enough and it's time to upgrade. Pretty straightforward, but we say it time and time again, and probably half the customers we see are just on hosting that isn't good enough for what they're looking to do. So that's out of the way.

1:58Switch to High Performance Order Storage

Let's talk about High Performance Order Storage, or HPOS. WooCommerce is pretty old now, but it was kind of hacked into WordPress. WordPress was never really designed for e-commerce in the first place, so a lot of the e-commerce features originally with WooCommerce were just shoved into the posts table in the database, the same database table as the normal posts or pages in WordPress. That's a problem when you start to scale up, because that database table was never really designed for managing e-commerce.

In a recent version of WooCommerce they introduced something called High Performance Order Storage. This splits out the database tables related to the WooCommerce e-commerce function, so products, orders and customers, into their own tables, which makes things so much faster. There is a link there to the WooCommerce website with more details on it. There's a lot of technical detail there, but basically there's a setting in the WooCommerce settings, under Advanced Features, where you can turn it on. To use it, all your plugins have to be compatible with it. If you have plugins that are out of date, they're probably not going to be compatible and you need to update them.

It will say here in this screen inside your WooCommerce installation which plugins are problematic. It's a pretty straightforward process of either updating those plugins if they're out of date, or going and talking to the plugin vendor and finding out when they're going to support it, if they support it, or what the story is. Once you're good to go, you turn this on, and it needs to synchronize the orders from the posts table into the new high performance storage table. Once that's done, you can fully enable it, and you'll get a significant speed boost in the cart, in the checkout, in the My Account area, and in anything in the back end related to managing products, customers and orders. Basically all the e-commerce stuff will be significantly faster.

If you're getting a 2 to 5 second load time when you're messing around with orders and managing orders, you'll probably drop that at least in half. We've seen sites go from 3 seconds to maybe 1 second load time on orders in the back end just by making that change. The reason is that the database tables are more optimized and it splits them out from the posts table, so it just makes it faster and better for any of the e-commerce features. That's High Performance Order Storage. It's a free optimization, super easy to do, and it's not that technical either, so you can DIY that for the most part, depending on how complex your WooCommerce install is.

4:17Optimize Database Tables With InnoDB and Indexes

The next one is kind of similar. It's another essentially free optimization, and it's going to be more important if you have an older WooCommerce site. There is a post I've linked to on our website about optimizing your database. There's a bunch of things in this post, but this is the one we're really talking about here. For some basic background, and you can see in these images here, WooCommerce and WordPress use a MySQL database, and a MySQL database uses two different formats, or two different storage engines, for the database tables. If you think of the database tables as files, the older format is MyISAM.

With this type of storage engine, only one write can be happening to the database at a time. The writes basically queue up and wait in a queue. If you're getting a lot of checkouts, a lot of things happening on the site, a lot of people adding to cart, those modifications of the database will start to queue up, and they might take a second or two. There might be some delay there, depending on how busy your site is. With the InnoDB storage engine, which is not so new anymore, the database table is not locked while those writes are happening. Only the row in that database table is locked, so multiple writes to the table can be happening at once.

If you have a busy site, or even a moderately large or medium-sized site where people are adding to the cart all the time and checking out all the time, it makes a significant difference to anything that is modifying the site or writing to the database. The older format is kind of like having an Excel document that you have to email around, where only one person can edit it at a time. The newer InnoDB format is more like a Google Sheet, where you can have multiple people working on it at once. That's a good metaphor for the difference.

There is some detail in this post here. We use a plugin called Servebolt Optimizer. It's from the hosting company Servebolt, but it gives you a really easy way, basically a one-click optimization or one-click fix for this problem. It will convert the database tables, and it will also add indexes to a couple of the tables, which will speed them up as well. Before you do this, make sure you have a backup. It's pretty risk-free and we've rarely had it go wrong. If you have a very, very big database it may be problematic, or if your hosting is slow and getting hammered then it could be a problem as well, because it does work the database hard when it changes that format. If your database is one or two gig it should be okay, but make a backup first, that's what we're saying. Make sure you're doing it in off-peak times and make sure you have a backup first, but it's a pretty easy optimization and it makes a huge difference.

Similar to High Performance Order Storage, it'll probably drop the load time for things in half, if not more, if you're using the older format. If you have an old site, if the site is 5 years old or 10 years old and no optimization has been done, you'll definitely have some, or maybe all, of the tables in that older format. So it's a really easy one. It's a free optimization, it's very quick to do, and if you're a little bit technical you can DIY that one as well. That's optimizing the database.

7:23Implement Object Caching With Redis

Next, get object caching in place. Object caching is a type of database cache essentially, so again it'll speed up any operations that are related to the database. That's adding to cart, adding to wish list, checkout, and things in the back end, again with managing orders and things like that. It's not as big an impact as those last two optimizations, but it will make a difference for a busy site. There are two parts to getting object caching in place. The first is that the hosting has to support it, so the hosting has to have an object caching engine, the application that supports object caching.

There are two, Redis and Memcached. Those are the two server-level applications that are needed to have object caching. Redis is the more popular one, and you'll see that Cloudways supports Redis. Other managed hosts like WP Engine and Kinsta both have Redis as well. I think Kinsta's is a paid add-on. So the hosting needs to support that or have that application installed, and then you need to use an object caching plugin on the site. Again with Cloudways, I think on any of the servers that are over 10 or 20 bucks a month, they have Redis and a Pro version, or paid version, of an object caching plugin. It will make a difference for anything database related, so that's an important one, especially for a busy site, or if you have a lot of checkouts taking place at once or at very short intervals.

8:52Use a CDN Like Cloudflare With APO

The next one: you have to have a CDN in place, a content delivery network. If you're not familiar, a content delivery network is a network of servers around the world that serve up part or all of the website. We use and recommend Cloudflare. Cloudflare has a free plan, and even on the free Cloudflare plan it will make a difference to the site speed. It makes a difference in a few different ways. One is that Cloudflare has, I think, 160 or 200 locations now, so it hosts the website, or some of the website, closer to the visitor. You do remove the impact of geography on site speed.

Anytime traffic has to cross an ocean, say I'm in Australia loading a site from the US, if all of that data has to come from the US there's probably a 1 second, maybe 2 second, delay just due to the distance. A CDN solves that problem because the assets are hosted in Australia, so the distance is much shorter and I get a shorter load time. The other thing, which is more important in relation to the checkout, is that we're moving the workload, the work that the hosting has to do, off the host and onto Cloudflare's network. There's a certain amount of workload the site needs to do, and what we're doing by using the CDN is moving that workload onto Cloudflare's network.

Even the free plan will do that, but we would recommend using this paid add-on called APO, Automatic Platform Optimization. It's kind of a stupid name, but there are two options for it. It's five bucks a month, or it's available in a $25 a month plan that has a whole bunch of other stuff on it. This used to only be available on the $200 a month plan, so at five bucks it's an absolute steal. What it does is basically cache the entire page, or all of the pages on the site, on the Cloudflare network. You're moving much more of the workload off the hosting and onto Cloudflare.

It has some intelligence built in, which is why it's APO for WordPress. Once the user starts adding something to the cart, starting the checkout process, or doing things that a logged-in user does, it will automatically disable this APO service and fetch the HTML of the page from the hosting. So it is WordPress aware and it's very, very intelligent. It can work with WooCommerce without screwing up the caching, or the problems that you might have had in the past in relation to caching. So very important.

There are some other things that we use Cloudflare for, and I'll talk about it in a minute. Cloudflare does CDN, it does DNS hosting, and it does firewall and security. We use Cloudflare to also stop a lot of brute force attacks against a WooCommerce site. Typically a WordPress site may have 1,000 to 10,000 brute force attempts per day, which is huge, and a WooCommerce site is going to attract much more, because if someone can break into the site they can get things like Stripe keys and user details. It's a much richer environment, or much richer site, to hack. We'll talk about that in a minute. So that's CDN: Cloudflare with APO is our recommendation there.

11:32Upgrade to the Highest Supported PHP Version

Use the highest version of PHP your site can support. PHP is the programming language that WordPress and WooCommerce run on top of, and every version is faster than the last one. It's more efficient with memory and it just performs better, so you want to use the highest version of PHP that your site can support. Right now it's July 2024, and PHP 8.3 is currently the newest version. If you're on PHP 7.4 or 8.0, moving up to the next version, if the site supports it, will increase performance. These are big performance boosts, 10%, 20%, maybe 30%, depending on how big a jump in version it is.

It's a bit more technical, and if you have plugins that don't support the latest version, you will break things, so you need to be careful there. There are different plugins and tools that can test this, so we have some links in the post on our website about this. You probably want a web developer to do it, because it is a bit more technical. It's not really one you want to DIY, and things can break under the bonnet that you don't notice, like certain functionality just might not work. You might start getting 502 or 504 errors for certain things. So you want to be careful with this one. It's not one you just YOLO into, and it does need some testing first.

13:04Secure the Site With Cloudflare Rules and Wordfence

Okay, next one: set up security. We just talked about Cloudflare. We have this post on our website, I'll actually load it up, I'll just find it for you. WP Speed Fix, Cloudflare, there we go: Cloudflare firewall rules, and I'll link to this in the post. Here we go. We use the firewall rules inside Cloudflare to block SEO crawlers and bots. You see this stuff here about blocking Semrush, Ahrefs and Open Site Explorer, and also to show a CAPTCHA challenge on the login page, so that will stop brute force attempts. Those SEO crawlers can be quite abusive to WooCommerce sites. They can add and remove things to the cart very rapidly, multiple times per second, and chew up a lot of server resources, so we typically block them.

It also stops competitors seeing things about your site and giving away SEO information. We'll link to that post there as well, and that will show you how to do that. That one is DIYable and it's pretty straightforward. Just follow the screenshots, and particularly if you're getting a lot of brute force attacks, that will help boost the performance quite a bit.

The other thing we do for WooCommerce sites is use Wordfence. Even the free version of Wordfence will pick up a lot of WooCommerce and WordPress-specific security stuff that other firewalls won't. Even if your hosting has a firewall and you're using Cloudflare, Wordfence will filter a lot of the other garbage as well. It's very good at that, and it will do it even on the free version, so that's worth doing as well. That one you can probably DIY. It's pretty straightforward and not super technical.

14:37Update Shipping and Payment Plugins

Okay, the next one. On the checkout page there's a whole bunch of stuff that happens with shipping and payment plugins, so you want to be using the latest version of your shipping and payment plugins. Sometimes the checkout will be slow simply because there is a payment plugin or shipping plugin that is making some sort of API call to a third party, or calling back home to do some processing or calculate shipping costs, and it's just slow. Updating those to the latest version may help in some cases. Shipping plugins are probably the main culprit here, because they tend to go out of date or not be updated for a long time, because shipping companies don't really change APIs. That's probably the one to be more mindful of, but both of them can be slow.

In the troubleshooting section here there's a note to use Query Monitor to troubleshoot issues. This plugin is a really good way of seeing what's happening under the bonnet with page loads. Typically, if we run through this list and we still have a slow checkout, using Query Monitor can uncover errors and problems and slowness around those plugins. If you still have issues with the checkout after running through this, install Query Monitor, and there's a link there to it, it's a free plugin. Then just run through the cart and checkout, and it may uncover what's happening with those shipping and payment plugins.

Quite often you'll find that one of them is really slow. Like I said, very often shipping plugins are the problem, and sometimes it's a case of needing to change shipping plugin because it's just old and slow, it hasn't been updated, or it's using an old API and sending and receiving too much data. We'd probably use those hand in hand: updating those to the latest version, and then using Query Monitor just to see what's happening under the bonnet with the checkout.

16:31Troubleshooting Tools and Final Tips

There are a couple of other further troubleshooting steps we'd recommend, the general ones. We have a WordPress speed test tool, which we call SiteSpeedBot. Here it is. Here's a test that somebody ran today, so this is what it looks like. It will give you all the usual speed metrics, but it also gives you detailed recommendations on what you need to do to solve some of these problems, like lazy loading for example. It also gives you SEO recommendations. Here, for example, a resource is sent to a not secure URL, and that's a problem. There are some SEO recommendations here as well, so it'll dig into general stuff about WordPress speed and give you recommendations.

If you want to dig into checkout speed in more detail, our Vital Signs Tracker app will track all the Core Web Vitals data for every session on the website. You can find out more information at wpspeedfix.com/vital-signs-tracker, and there's a demo video there of how it works and what it does. Here's a quick overview. It gives you the high-level site speed insight, so you can see here this one is just failing the LCP Core Web Vitals metric with 2.8 seconds. This is in milliseconds, and it needs to be under 2.5 seconds. If we scroll down, where the real juicy stuff is, I think this is a new client we just brought on board and the guys are working on it. It has a country-by-country breakdown of the speed and also a page-by-page breakdown.

You'll see here it has checkout, cart and my account, and you can see the time to first byte, the LCP and all the other metrics. It will also tell you whether a page is indexable or not indexable, which means whether those pages will show up on Google. The cart, checkout and My Account pages should be noindex, so they should be an X like that, not indexable. This is a good way of breaking down the speed and seeing what's happening on the checkout. This time to first byte is pretty typical of what we'd see with a checkout page. If we start to see this in the 5 or 10 second range, there's definitely something going wrong under the bonnet, but that's a pretty typical speed there that we'd expect to see for the checkout page. The LCP is a bit on the high side, so some work to do there, and same with the CLS. So that's Vital Signs Tracker, and Query Monitor we talked about.

Then probably server logs would be the last one, so just checking the server logs, the PHP log, to make sure there are no errors or problems happening. If there are things going wrong under the bonnet, they'll appear in the error logs, and they might not appear anywhere else. We'd also look at the logs and check to see what crawlers are doing, particularly the Google crawler. You can also check in Google Search Console, which is a useful place to look as well, for things that are crawled that shouldn't be, like search filters and those sorts of query parameters. Those are typically not cached, so they will make the hosting slower or add more load to the hosting, slowing down everything including the cart and checkout.

You can either cache those query strings so they're fast, or block them with the robots.txt file by adding disallows for those query strings. Those are two ways to deal with those issues. Looking in the server logs and trolling through to see what crawlers are doing, and whether there are errors happening, is a good way to troubleshoot performance issues as well. Okay, so that's pretty much it. As I said, go to our website, there are more details on this post.

If you want help with site speed, there are a few different ways we can help you. If you want us to do it for you, we have a free audit here. Go to our homepage and fill out this form, and one of our team will have a look at the website and come back to you with some recommendations. If you want to look at your Core Web Vitals, there is a free Core Web Vitals report here. There's no opt-in required, you need 50 to 100 visits a day to generate one, and you can generate one for your competitors too, so you can see what's going on with their speed or your speed. This report auto updates on the second Tuesday of each month, so you can generate it and it will update every month. You can set up email reports and all sorts of stuff, so it's a good high-level way of checking site speed.

The site speed test we talked about is a good way, again no opt-in required, and it takes about 90 seconds to run a test. It'll come back and give you detailed insights as to what's going on with the site. I hope you found that useful. Anyway, if you have any questions or comments, post in the comment section and I'm happy to come back to you. Cheers.

Now that we have identified some potential causes let’s dive into some simple steps to speed up your WooCommerce checkout process.

Test the Speed of Your Site! If you haven’t done so already, take a couple of minutes to test the speed of your site using our Free Site Speed Test Tool.

1. Upgrade Your Hosting

One of the easiest ways to fix a slow or sluggish WooCommerce site is to move your site or upgrade to better hosting.

The speed of WooCommerce checkout relies heavily on your server’s performance. Upgrading to a dedicated server or a managed hosting solution can significantly improve your checkout speed.

Choosing the Right Hosting:

When it comes to choosing the right hosting, you have many options to choose from. Here are a few things to consider when looking for a hosting provider:

  • Performance and Scalability: Since WooCommerce relies on server performance, choose a hosting provider that offers fast and scalable servers. Many hosts offer starter plans, but as your business grows, make sure your hosting can handle increased traffic and orders.

  • Server Location: Choosing a server location close to your target audience can provide faster page load times for customers in that region. For example, if most of your customers are from the United States, choose a US-based server.

  • Support and Uptime Guarantee: Look for a host with excellent customer support and an uptime guarantee. Downtime during peak shopping periods can result in lost sales, so it’s crucial to have reliable hosting.

  • Compatibility with Latest Technology: Ensure your hosting provider supports the latest versions of PHP, MySQL, and other technologies required for WooCommerce to function correctly.

If you need help finding the right hosting provider for your WooCommerce store, here are some of our favorite options to consider:

SiteGround: SiteGround provides fast and secure hosting with an easy one-click installation of WooCommerce. They provide 24/7 support and a 99.9% uptime guarantee.

WPengine: WP Engine is a managed WordPress hosting provider that offers specialized WooCommerce plans for optimal performance security, and expert support.

Kinsta: Kinsta is another managed WordPress hosting provider that offers secure and scalable hosting for WooCommerce stores. They have servers available around the world and support for the latest technologies.

Cloudways: Cloudways is a cloud-based hosting platform that allows you to choose from multiple cloud providers such as AWS, Google Cloud, and DigitalOcean. They offer one-click WooCommerce installation and have 24/7 support.

With the right hosting provider, your WooCommerce store will be equipped with the necessary resources to handle increased traffic and provide a seamless shopping experience for your customers.

2. Optimize Your Database

In addition to having reliable hosting, it’s essential to regularly optimize your WordPress database. As your store grows and accumulates more data, your database can become bloated and slow down your site’s performance.

To optimize your database, you can use plugins such as WP-Optimize or Servebolt Optimizer. These plugins help clean up unnecessary data, such as post revisions and spam comments, which can improve the overall speed of your site.

It’s also a good idea to schedule regular database optimizations to keep your site running smoothly.

3. Use a Content Delivery Network (CDN)

A CDN is a network of servers located around the world that work together to deliver content to your site visitors. By using a CDN, you can reduce the load on your server and improve site speed.

Some hosting providers, such as WPengine and Kinsta, offer built-in CDNs as part of their plans. However, if your hosting provider doesn’t have a CDN included, you can use a free CDN such as Cloudflare.

4. Enable High-Performance Order Storage (HPOS)

WooCommerce’s High-Performance Order Storage (HPOS) can optimize how orders are stored and retrieved, enhancing the performance of your checkout process. HPOS is built into WooCommerce and works on any hosting. New stores have had it switched on by default since WooCommerce 8.2. On an older store, turn it on under WooCommerce › Settings › Advanced › Features. WooCommerce lists any incompatible plugins on that screen, so check those first.

Enabling HPOS can significantly improve the speed and reliability of your checkout process, reducing the chances of abandoned carts and lost sales.

5. Utilize Caching

Caching is a technique used to store frequently accessed data in temporary storage to reduce database calls and improve site speed. You can use plugins like WP Super Cache or W3 Total Cache to enable caching on your WordPress site.

In addition, some hosting providers offer built-in caching options that you can activate with just a click. Make sure to test different caching options to find the one that works best for your site.

6. Optimize Images and Media

Images can significantly impact the loading time of a website, so it’s essential to optimize them for web use. This includes reducing file size without compromising quality and using the correct file type (JPEG, PNG, GIF).

You can use image optimization plugins like WP Smush or EWWW Image Optimizer to automatically compress images as you upload them to your site. Additionally, make sure to resize images to the appropriate dimensions before uploading them.

7. Configure Security Measures

Ensuring the security of your website is crucial, not just for protecting your data but also for maintaining site performance. Malware and other malicious attacks can slow down your site or even bring it down completely.

A typical WooCommerce site gets 1000 to 10000 brute force attacks per day.

To prevent this, make sure to install a security plugin like Wordfence and regularly scan your site for any vulnerabilities. It’s also essential to keep all plugins, themes, and WordPress core up to date to minimize the risk of an attack.

8. Streamline Payment and Shipping Plugins

Bloated or poorly coded plugins and themes can slow down your entire site, including the checkout process. To prevent this, make sure to only use essential payment and shipping plugins on your WooCommerce site.

It’s also recommended to regularly review and update these plugins to ensure they’re not causing any performance issues. If possible, try to minimize the number of third-party integrations and use a lightweight theme for faster page loading times.

9. Monitor and Analyze Site Performance

Constantly monitoring your site’s performance is key to identifying any issues and improving overall speed. Tools like Google Analytics can provide valuable insights, such as page load times and bounce rates.

You can also use a website speed test tool like Pingdom or GTmetrix to get a detailed breakdown of your site’s loading time and identify areas for improvement. Regularly analyzing this data will help you make informed decisions on how to optimize your site further.