What do you already know about hosting WooCommerce stores?
When it comes to hosting WooCommerce stores, you may have already read some of my articles on choosing a WordPress host, or how to think about WooCommerce already.
But maybe you haven't.
Or maybe you just finished the super sharp article by Carl Alexander on using a serverless architecture for a WooCommerce store – which I think is great but makes some assumptions about containers (that I don't think necessarily has to be the case).
Or maybe you just landed on the WooCommerce site, looked for hosting options, and saw several options, not knowing which one was best. Could a $1/month host really handle traffic (hint, you already know the answer to that)?
The truth is that you might not know anything about hosting for WooCommerce stores – especially when it experiences a surge in traffic. So let's start with some basics…
Understanding the architecture of a high-traffic WooCommerce store
Every WooCommerce store has the same parts. Think about it as a stack of books, where the one on the bottom is hardest for you to reach, and the one on the top is the easiest.
- Cache Plugin or External Cache
- WooCommerce Themes / Plugins
- WooCommerce Software
- WordPress Software
- Apache or Nginx Web Server Software (or both)
- PHP
- Object Cache
- Database
I could draw you an architecture diagram, but it's not important. Just remember that there are layers, in this order, and that a visitor gets to the top long before they get to the bottom.
Now here's where the performance dynamics come up, when you're hosting WooCommerce Stores. For everything that isn't your actual cart, you want the top layer to be where all your customer requests end.
You may have heard of cache, but have no clue what it is.
Do you remember playing sardines? One person hides. Then the next person who finds them hides with them. And then the next person finds them and hides with them. And eventually the whole group is hidden together.
A cache is like a photo of the whole group.
I know, you're scratching your head. But here's why I use this particular illustration. In sardines, everything gets more and more uncomfortable (costly) as more and more people hide with you (especially if you didn't pick a strategic location).
Well, when it comes to hosting WooCommerce stores, the same is true. Every time you have to go thru every single layer to get more info (all the way down to the database), it gets more and more expensive.
So a cache layer at the top is a special memory location holding everything in one place that doesn't require you to travel up and down the stack to get the info. Like having a photo of the group.
Ok, I've used other illustrations better. But my point is, caching is great except for the cart. Because you can't afford to have a snapshot of a group that isn't yours. You don't want to see someone else's cart. You want your own.
So the architecture of a high traffic WooCommerce store is one that uses Cache for everything it can, and then only skips it when it absolutely needs to.
I've told you about NitroPack – and it's a caching solution that understands WooCommerce. It also plays nice with Cloudflare and their new APO (which also understands WooCommerce).
Both of those will speed things up for sure, without messing up your cart.
If you can get most of your traffic to hit the cache and never make PHP do any work (except for carts), and rarely hit the database, you'll be able to scale to tons of concurrent users visiting your store at the same time.
Your options for scaling the hosting for WooCommerce stores
But what happens when you get that high traffic and they're putting things in carts? What happens when you can't handle everything with cache?
That's when you have to look at options for hosting high traffic WooCommerce stores.
Pagely does this and has for a long time. They do it by making all the tweaks you need (as they understand the architecture) and making sure that you have enough scalable infrastructure to handle the traffic (they sit on top of AWS).
Kinsta can also do this. As you get more and more traffic who are actually hitting your cart, you'll need a greater amount of PHP Workers (think of them as runners at restaurants who bring the food out – the fewer the slower everything gets). That's when Kinsta will start getting really expensive.
For the longest time, WP Engine was focused elsewhere. They were focused on the Digital Experience. But they've recently circled back and are focused on WooCommerce stores again. They're engineering team is rock solid, but you likely should talk to one of their sales people (I don't the ones they have now) to figure out the right size plan, as I don't think you'll want to run your store on the lowest tiers.
Of course I think the Managed WooCommerce hosting at Nexcess is right for you. I have spent the last few years working with a team on building a high performance solution that is dedicated to WooCommerce and helps stores regularly scale into the millions of dollars each.
How does Nexcess stand out?
When the traffic gets crazy, one of the things Carl mentioned in his more technical post was that if you used containers, and the infrastructure that comes with Kubernetes, it often takes a while to discover the need for more resources, and that gets added to the time needed to spin up new containers.
That is likely the case for all of the folks on the list as well.
Except for how we handle scale at Nexcess.
We shift all the PHP processing to containers, while leaving the servers intact. This approach allows us to spin up containers (more and more) far past what you need, and leave them sitting there active and waiting for you to use. As a result, it functions more like the serverless approach Carl was talking about, but doesn't require the serverless architecture or complexity.
We created this approach to make it easy and fast for customers without making it technically complex for them. And so far it's been working incredibly well for our customers who are using our Advanced Auto Scale feature.