Skip to content
Get a quote

Choosing WooCommerce hosting that actually works

Samir KailaFounder & DirectorPublishedLast reviewedReading time6 min
Illustration of a cloud server pushing store data outward to a shopping trolley, devices and a delivery drone.

WooCommerce needs hosting that can run uncached PHP requests quickly, because cart, checkout and account pages cannot be served from a page cache. Judge a host on PHP worker count, whether Redis object caching is available, how the database is configured, and who is responsible for patching. Advertised bandwidth and disk space tell you almost nothing.

Hosting is where most WooCommerce performance problems begin and where almost none of them are diagnosed. The plan comparison tables that stores choose from measure disk space and bandwidth, neither of which has much to do with whether a checkout completes under load.

Why WooCommerce is harder to host than a website

A content site can be served almost entirely from cache. A store cannot. Cart contents, checkout, account pages and anything showing a logged-in customer’s data are generated per request, every request, because two visitors must never see each other’s basket.

That single constraint changes what good hosting means. Your homepage can be cached to within an inch of its life and it will not help the customer waiting on a checkout page. A store’s real capacity is its uncached request capacity, and that is what the plan comparison table never shows.

The four things worth asking about

Four questions separate hosting that will hold from hosting that will not. None of them appear on a pricing page.

QuestionWhy it decides the outcomeBad answer
How many PHP workers, and what happens at the limit?Each uncached request holds a worker; exhaustion queues customers“Unlimited”
Is Redis object caching available?Removes repeated database queries within a page load“We have caching” without specifics
How is the database configured and where does it run?Query latency dominates uncached response timeShared database host, no detail
Who applies security patches, and how quickly?Decides whether an unpatched service is your problem or theirsSilence

Ask all four in one email. The quality of the reply tells you more than the specification does — a host that answers precisely has thought about stores, and a host that answers in adjectives has not.

PHP workers, and why “unlimited” is not an answer

A PHP worker handles one request at a time. A checkout that takes two seconds of server work occupies a worker for two seconds. Ten simultaneous checkouts on eight workers means two customers wait for a worker before their request starts.

Bandwidth is irrelevant to this and disk space is irrelevant to it. What matters is the arithmetic of workers against your slowest uncached request, which is why the useful question is not how many workers you get but what happens when they run out. Queuing is survivable. Errors at the checkout are not.

Reducing the time each request takes is usually cheaper than buying more workers, which is what the next two sections are about.

Object caching is the single biggest lever

WooCommerce asks the database a great many questions to render a page — product data, variations, prices, tax rules, cart contents, session state. Without object caching, the same query runs repeatedly within one page load.

Redis holds those results in memory for the duration, and enabling it is the largest single improvement available on most stores we audit. It is not a tuning detail; it is the difference between a store that feels quick and one that does not, on identical hardware.

Two things to check rather than assume: that Redis is actually connected rather than merely installed, and that it survives a deployment. We have found stores paying for object caching that had been silently disconnected for months.

The database is the part nobody looks at

Uncached response time is mostly database time. Three things matter and all three are invisible from the outside.

Where the database runs. On the same machine, latency is negligible. On a shared database host in another rack, every query pays a network round trip, hundreds of times per page.

Whether the tables are indexed for what WooCommerce actually asks. WordPress’s post-meta structure makes product queries expensive by nature; on large catalogues the indexes matter enormously, and on small ones they matter not at all.

How big the tables have got. Sessions, transients, order metadata and abandoned carts accumulate. A store that has never been cleaned down is answering every query against a table full of data from 2023.

Who patches what

Managed hosting and unmanaged hosting differ on one question that has nothing to do with performance: when a vulnerability is announced in PHP, the database, or the web server, who applies the fix?

On managed hosting, the host does, usually before you have read the announcement. On a VPS, you do, and if nobody has been given that job then nobody is doing it. Running your own supported PHP version is not optional — an unsupported one stops receiving security fixes entirely, and stores run on them for years without noticing.

This is the part of the decision that is not about money. A store on unmanaged hosting with no named administrator is carrying a risk it has not priced.

Staging is a hosting feature

WooCommerce updates need testing against real data, because the failures are rarely in the plugin and usually in the interaction between the plugin, your theme and your catalogue.

A staging environment that mirrors production — same PHP version, same database contents, same plugin set — turns an update from an act of faith into a fifteen-minute check. Hosting that offers one-click staging is worth more than hosting that offers more disk space, and it is the feature most often traded away to save a few pounds a month.

What we specify on client projects

Our default requirements, stated so a client can compare quotes on equal terms:

  • A supported PHP version, currently maintained rather than merely working
  • Redis object caching, connected and monitored
  • A database on the same machine or the same private network
  • Automated daily backups held off the server, with a tested restore
  • One-click staging that copies production data
  • Patching handled by the host, with a stated response time
  • HTTP/2 or HTTP/3, TLS, and a CDN for static assets

That list is deliberately unglamorous. None of it is a feature anybody boasts about, and all of it is what separates a store that stays up during a campaign from one that does not.

How to test a host before you commit

Two checks, both cheap.

Measure an uncached response. Load a cart or account page — never the homepage — and look at time to first byte. That number is the hosting, stripped of caching and images.

Ask what happens under load. Not “can you handle traffic”, which invites a yes, but “what happens when PHP workers are exhausted”. A host that describes queueing behaviour has thought about it. A host that says it will not happen has not.

Migrating without breaking things

Moving hosts is routine and the failures are predictable: DNS moved before the data finished copying, a database dumped while orders were still arriving, or a staging URL left in the database so live pages point at a hostname that no longer exists.

The safe sequence is to copy, verify, freeze orders briefly, re-sync, then move DNS with a short TTL set a day in advance. Store migrations differ from site migrations in one respect that matters more than any other: an order placed during the move must not be lost, which is why the freeze exists even though it is inconvenient.

Sources

Questions we get about this

Is shared hosting ever acceptable for WooCommerce?

For a store with a small catalogue and a handful of orders a day, shared hosting can work while you find out whether the business does. What it will not survive is a launch, a campaign or a seasonal peak, because the resources are shared with sites whose traffic you do not control. Treat it as a starting point with a known replacement date.

What is object caching and why does WooCommerce need it?

Object caching stores the results of database queries in memory so the same query is not run repeatedly within a page load. WooCommerce is query-heavy by design, and without object caching a single product page can execute hundreds of queries. Redis is the usual implementation and its absence is the most common cause of a slow store on adequate hardware.

How many PHP workers does a WooCommerce store need?

More than a content site of the same traffic, because checkout requests cannot be cached and each one occupies a worker until it completes. The number depends on how long your slowest uncached request takes, which is why the useful question to a host is what happens when workers are exhausted rather than how many are included.

Does a CDN make WooCommerce faster?

A CDN speeds up images, stylesheets and scripts, which is worth having. What it does not speed up is the part customers complain about, because cart and checkout responses are generated per request and cannot be served from an edge cache. A CDN in front of slow origin hosting produces a fast homepage and a slow checkout.

Should I use managed WordPress hosting or a plain VPS?

Managed hosting is the right default unless somebody on your side owns server administration as part of their job. The premium buys patching, backups, monitoring and somebody to call. A VPS is cheaper on the invoice and considerably more expensive the first time an unpatched service is exploited.

Thinking about this for your store?

This post comes out of our WooCommerce work. Tell us what you are planning and we will come back within one business day, including if the honest answer is that you do not need us yet.

We reply within 1 business day