In the world of WooCommerce hosting there are a lot of options. One of the often recommended hosting services is Cloudways, which makes it very easy to spin up a reasonably performant WooCommerce site. You do still have to make a few choices though, including whether to use DigitalOcean, Vultr, Linode, AWS, or GCP. So which Cloudways hosting provider is best for WooCommerce? Let’s find out.
What are we testing?
The goal of our tests will be to determine which Cloudways hosting provider has the best WooCommerce performance out of the box. To do that we’re going to be using RoboSwarm’s WooCommerce Load Testing platform (RoboSwarm is part of Kernl). So how does that work?
For each user, the test runs through a series of products, adds them to your cart, and then performs a checkout. The series looks like this.
- Go to your main store page.
- Go to product 1, add to cart.
- Go to product 2, add to cart.
- Go to cart.
- Order confirmation page.
- Rinse and repeat.
What plans did we test?
Due to the pricing differences between the various cloud providers that Cloudways supports there isn’t an exact “apples to apples” comparison, but we can get close. We tested the following plans:
Looking at the table above, you can see there are quite a few differences between the larger cloud providers and smaller contenders. The biggest difference is that AWS and GCP are 30% more costly than the smaller hosting providers. The AWS instance has 2 vCPUs compared to the 1 of the other providers, which may become a factor later.
How we set up the WooCommerce load test
Before we could start our load test we needed to do a few things:
- Select our Cloudways hosting provider and create the server.
- Add two products to WooCommerce.
- Make sure that the
- Set the allowed payments to “Cash on Delivery”. Why? Because it makes load testing a lot easier. We could definitely test credit cards, ACH, etc, but I always use 3rd party providers for that. Load testing checkouts with a 3rd party card processor enabled would probably violate their terms of service 😉
RoboSwarm site ownership verification
Once all of the above is done you need to verify that you own the WooCommerce site that you are attempting to load test. To do that, log in (or sign up) to Roboswarm (if you are a Kernl customer your can use your Kernl credentials), go to “Verify Site Ownership” and then click the “Verify a Site” button.
Once you have a verification code, download the RoboSwarm plugin (see screenshot above) and add the verification code to your site. Clear your cache, then hit the blue “Verify” button next to your site URL in RoboSwarm. The “verified” state will change to a green
RoboSwarm WooCommerce template creation
Now that you have verified you own the site you need to create a WooCommerce load test template. This basically tells RoboSwarm where your checkout, cart, and product pages are.
Fill out the fields in the form and then click “Save”. After that, you’re ready to run your load test.
Running the load test(s)
Now that a WooCommerce load test template exists in RoboSwarm we can run the load test. Go to the “Load Tests” page and fill out the required info. When you’re ready, click “Start Load Test”.
A word of caution: You can and will bring your site to it’s knees. That’s the entire point of this exercise. We need to know where the breaking point is so we can:
- Plan for additional capacity
- Improve performance of existing capacity
- Make a business case for additional investment in infrastructure.
All that being said: start small. For these tests we only ran 25 concurrent users and it was enough to cause performance bottlenecks. WordPress is not performant without significant caching and performance tweaks.
Analysis of Cloudways WooCommerce Performance
Before breaking down each product lets take a look at few details on the load tests we performed. For each cloud providers we ran 1 load test with the following specifications:
- All cloud provider data centers were in London.
- All traffic generating nodes were in New York City.
- 25 concurrent users
- Ramp up of 1 user per second. This means it took about 25 seconds to go from no load to full load in this testing scenario.
- Test duration was 30 minutes
Checkouts per second
One of the most important metrics for an online store is how many checkouts per second it can support. There are other important metrics (bounce rate, cart abandonment, etc), but you have to checkout to get money, so we’ll focus on this for a bit.
With the exception of GCP, the checkouts per second performance all seems relatively similar, but if you dig a little bit you can see there are some interesting differences between the providers.
- GCP performance is really bad. Less than 2 checkouts/s and pretty bad response times.
- The three smaller providers (DigitalOcean, Linode, Vultr) all have pretty similar performance, but DigitalOcean’s response time p99 was better.
- Overall, Vultr is probably the best choice of the smaller providers given the consistency of ~300ms for each checkout. The 1300ms p99 is likely an outlier.
- AWS is the clear winner, but it is also $36/month versus Vultr’s $23. The performance seems to have scaled linearly, so AWS performs 1.5x better than Vultr for 1.5x the cost. Whether you need that extra performance is a personal decision but the value is roughly similar.
While checkouts per second is an important WooCommerce metric, you also need to consider the overall performance of your store. Let’s take a look at how all the providers scored when we take a higher level look at all traffic.
In the overall performance results we start to see some differentiators across all hosts. A few thoughts:
- AWS still has the best performance, but at 1.5x the cost. It has an extra vCPU so this isn’t surprising.
- GCP is bad. Initially it was handling the load similarly to the smaller providers, but things went off the rails about 50% of the way through the test. Look at the gallery below the “Conclusions” section to see the details.
- Vultr is still a solid choice for overall performance. DigitalOcean is a close 2nd. It wins a few categories but overall I’d choose Vultr due to consistency of performance.
- Linode is fine, but Vultr or DigitalOcean are better.
From a performance versus value perspective, running Cloudways WooCommerce on Vultr is your best choice at the ~$22/month price range. DigitalOcean and Linode both perform fine, but Vultr is just a little bit better in our tests.
Interested in how your WooCommerce site performs? Sign up for RoboSwarm and test it out yourself!