Performance

WordPress Hosting Speed: 6 Factors That Actually Matter

Every hosting company sells speed, and almost none of them explain which part of the wait they are responsible for. Before you move host, it is worth knowing what your visitors are actually waiting on — because WordPress hosting speed is a smaller share of that number than the marketing suggests, and the parts nobody sells you are usually the larger ones. Here is a real measurement, broken down, and what each piece means.

What you are actually waiting for

The phases of a page request: DNS lookup, TCP connect, TLS handshake, time to first byte, then content transfer — with most of the measured wait falling in the network phases rather than in server processing.
Only one of these phases is your server thinking. Buying a faster server to fix the other four is the most common hosting purchase there is.

WordPress hosting speed is easiest to understand as a stack of phases. We measured this site from a machine some distance away. Three runs, in seconds:

              dns      connect   tls      ttfb     total
run 1         0.2337   0.3605    0.6029   0.7315   1.1687
run 2         0.0067   0.1291    0.3602   0.5049   0.8175
run 3         0.0061   0.1184    0.3399   0.4673   0.8523

Read run 3, where DNS was already cached. Time to first byte was 0.467 seconds. Of that:

PhaseTimeWho controls it
DNS lookup0.006sYour DNS provider — negligible once cached
TCP connect0.112sPhysical distance. Nobody can beat physics
TLS handshake0.222sDistance again — more round trips
Server response0.127sThe host, and your site
Total TTFB0.467s

Look at the proportions. Roughly 0.33 seconds of that wait was the network — opening a connection and negotiating encryption across a long distance. Only about 0.13 seconds was the server doing anything at all.

That is the single most important thing to understand about WordPress hosting speed: for a visitor far from your server, most of the delay happened before your host was even asked for a page.

The first run is instructive too. A cold DNS lookup added 0.23 seconds and everything else was slower — that is what a genuinely first-time visitor experiences. Repeat measurements flatter you, which is why single tests from your own browser are not evidence of anything.

The one number that moved the most

Caching is the biggest WordPress hosting speed lever most sites already own. On the same site, same moment, we requested the page again with a query string to bypass the cache:

RequestTTFB
Cached (X-Litespeed-Cache: hit)0.467s
Cache bypassed0.865s
Difference0.398s

Nearly four tenths of a second, from one setting. That is more than you would gain from any realistic hardware upgrade, and it is free on most hosting.

So before comparing plans, confirm your cache is actually working. A great many sites paying for premium WordPress hosting speed are serving uncached pages because a plugin conflict quietly disabled the cache, and nobody checked.

# Is your page cache doing anything?
curl -sI https://example.com/ | grep -iE 'x-litespeed-cache|x-hcdn-cache-status|cf-cache-status|x-cache'

# You want HIT. MISS on every request means it is not working.

Six WordPress hosting speed factors, in order of size

Six factors in WordPress hosting speed ordered by impact: page weight, distance to the visitor, whether the page cache is working, PHP version and workers, database performance, and noisy neighbours on shared hosting.
On the measured site, confirming the cache was hitting was worth about 0.4 seconds — free, and more than a bigger plan would have bought.
#FactorTypical impactHosting can fix?
1Page weight — images and scriptsSecondsNo
2Distance to the visitor0.1–0.4sPartly, with a CDN
3Whether the page cache works~0.4s hereYes
4Database and autoloaded options0.1–1s+Partly
5PHP version and worker count0.05–0.2sYes
6Object cacheOnly at scaleYes

Note that the largest item is not a WordPress hosting speed factor at all. A page carrying four megabytes of unoptimised images will feel slow on the finest server ever built, because the server finished its job in a tenth of a second and the browser then spent six seconds downloading pictures.

That is why “we moved host and it is still slow” is such a common story. The move addressed rows two to six and the actual problem was row one — the full diagnosis is in why WordPress sites get slow.

Distance, and what a CDN really does

Distance is the WordPress hosting speed factor nobody can engineer away. Our measurement showed 0.33 seconds lost to connection and encryption. A CDN reduces that by terminating the connection near the visitor rather than at your origin — which is genuinely valuable and is often sold as “faster hosting” when it is a different product entirely.

SituationDoes a CDN help?
Visitors worldwide, server in one countrySubstantially
Visitors and server in the same cityBarely
Image-heavy site anywhereYes — assets more than HTML
Logged-in dynamic pagesNo — those cannot be edge-cached

Pick your server location by where your customers are, not by where you are. A UK business serving UK customers from a US datacentre is paying a tax on every request for no reason, and no plan upgrade recovers it.

Database, PHP and workers

These are the WordPress hosting speed levers a plan genuinely controls, and they matter most on uncached requests — logged-in users, carts, checkouts, the admin.

  1. PHP version. Newer is modestly faster and uses less memory. Real, undramatic — see upgrading to PHP 8.5.
  2. PHP workers. How many requests can be processed at once. This is what “handles traffic spikes” means.
  3. Database performance. Slow queries and bloated autoloaded options cost more than CPU on most sites.
  4. Disk type. Any modern host uses SSD or better. Not a differentiator any more.
  5. Object cache. Genuinely useful above a few thousand sessions a month, unnecessary below it.

Item three is where most uncached slowness actually lives, and it is usually your site rather than your host. A megabyte of autoloaded options is read on every single request, and the query that finds it is covered in auditing plugin bloat.

What WordPress hosting speed marketing measures

The claimWhat it usually means
“20x faster”Against their own cheapest plan, on a cached page
“NVMe storage”True, and rarely your bottleneck
“Unlimited bandwidth”A billing policy, not a speed figure
“99.9% uptime”Availability, unrelated to speed
“Built-in caching”Genuinely valuable — this one matters
“Optimised for WordPress”Varies from meaningful to marketing

The fifth row is the only WordPress hosting speed claim on that list worth paying for. Everything else on that list is either unmeasurable from outside or irrelevant to WordPress hosting speed as your visitors experience it.

Benchmarks you did not run are close to worthless. A published comparison tells you how someone else’s test site performed from a location that is not yours, on a plan that may have changed. Measure your own site with the command below and you have a number that is actually about you.

Measuring your own WordPress hosting speed properly

# Full breakdown. Run it five times and ignore the first.
curl -s -o /dev/null -w \
 "dns %{time_namelookup}  connect %{time_connect}  tls %{time_appconnect}  ttfb %{time_starttransfer}  total %{time_total}\n" \
 https://example.com/

# Then bypass the cache and compare
curl -s -o /dev/null -w "uncached ttfb %{time_starttransfer}\n" \
 "https://example.com/?nocache=$RANDOM"
What you findWhat it means
Connect + TLS is most of your TTFBDistance. Consider a CDN or a closer server
Cached and uncached are the sameYour cache is not working
Uncached TTFB over 1.5sDatabase or plugin weight — investigate before moving
TTFB fine, page still feels slowPage weight. Not a hosting problem
Occasional very slow requestsWorker contention or a noisy neighbour

Row two is the most common WordPress hosting speed finding and the cheapest fix. Row four is the second most common, and moving host will not touch it.

Shared, VPS or managed

SharedVPSManaged WordPress
Cached page speedGoodGoodGood
Uncached and admin speedVariablePredictableUsually good
Traffic spikesWeakestDepends on sizingUsually handled
Noisy neighboursYesLess soNo
Who maintains the serverThemYouThem
Plugin restrictionsFewNoneSome — check the banned list
Best forBrochure sites, small blogsAnyone with a sysadminShops and busy sites

Notice that the first row of WordPress hosting speed is the same across all three. For a cached page served to an anonymous visitor, cheap shared hosting and expensive managed hosting perform similarly — which is exactly the measurement most comparison articles run.

The difference appears in rows two and three: logged-in users, checkout, the admin, and behaviour under load. If your site is a brochure with a contact form, you are buying insurance you may not need. If it is a shop, those rows are the whole reason to pay more — as is the case in speeding up a WooCommerce store.

When moving host actually helps

MoveDo not move
Your server is on another continent from your customersYour pages are heavy with unoptimised images
Uncached TTFB is consistently over 1.5s after optimisingYou have not checked whether the cache works
You hit worker limits during normal trafficOne slow plugin is doing it
The host cannot offer a supported PHP versionYou just want a bigger number in a marketing claim
Support cannot answer basic questionsA competitor’s benchmark impressed you

The right-hand column is where most WordPress hosting speed migrations come from, and every one of them ends with a faster-sounding plan and an unchanged experience. If you do move, the process itself carries risk and is worth doing carefully — the checklist is in changing WordPress hosting.

The half of WordPress hosting speed nobody measures

Every WordPress hosting speed benchmark measures an anonymous visitor loading a cached home page. Almost nobody measures the experience of the people who use the site all day.

WhoCached?What they feel
Anonymous visitor, blog postYesFast, on almost any host
Logged-in editor, post listNoEvery plugin’s admin code, every request
Customer with items in a cartNoFull PHP and database work
Anyone at checkoutNoThe slowest path on the site
Search results pageUsually notAn expensive query every time

Rows two to five are where WordPress hosting speed genuinely differentiates, because no cache is protecting you. A shop whose checkout takes three seconds loses money in a way that a blog post loading in 0.4 seconds does not compensate for.

Measure the admin as well as the front end. Load the posts list, time it, and compare against a page nobody is logged in for. If the gap is large, the problem is plugin code running on every admin request rather than anything a hosting plan will solve — and the same weight is slowing down every cart on the site.

# Time an uncached, logged-out but dynamic page — search is a good proxy
curl -s -o /dev/null -w "search ttfb %{time_starttransfer}\n" \
 "https://example.com/?s=example"

What happens under load

The other thing a single WordPress hosting speed measurement hides is behaviour when several people arrive at once. This is the part of WordPress hosting speed that plans are genuinely sold on, and it is invisible in any test you run alone.

ScenarioCached pagesUncached pages
One visitorFast anywhereFast on most hosts
Twenty at once, readingFine — cache serves themNot applicable
Twenty at once, in cartsNot applicableWorkers become the limit
A newsletter sendFineQueues if workers run out
A bot crawl on uncached URLsNot applicableCan exhaust workers entirely

Row five surprises people. An aggressive crawler hitting URLs with query strings bypasses your page cache entirely and consumes PHP workers, which is why a site can be slow for real customers while a speed test reports excellent numbers. Check your access log if slowness is intermittent and correlates with nothing you changed.

It is also worth confirming your scheduler is not competing for the same resources. A backlog of overdue cron events firing all at once consumes workers exactly when a spike does, which is one more reason to keep that queue clean — see WordPress cron not running for how to check.

Where this goes wrong

The mistakeWhat happensDo this instead
Buying a bigger plan to fix page weightSame slow site, larger billOptimise images first
Testing once from your own browserA cached, warm, unrepresentative numberFive runs, ignore the first
Trusting published benchmarksSomeone else’s site, someone else’s locationMeasure your own
Not checking the cache is workingPaying for speed you already hadOne curl for the header
Server on the wrong continentA permanent latency taxHost near your customers
Adding an object cache to a quiet siteA service to maintain, no gainOnly above real traffic
Moving during a busy periodMigration risk at the worst momentA quiet week, with a rollback

The sixth row is the WordPress hosting speed advice that gets recommended by a screen rather than a person. Site Health will suggest a persistent object cache regardless of whether your traffic justifies one, and how to read that screen sensibly is covered in which Site Health warnings actually matter.

The order that actually works

  1. Measure. The curl breakdown above, cached and uncached.
  2. Confirm the cache is hitting. Free, and worth 0.4s in our test.
  3. Fix page weight. Images first, then scripts. Usually the largest win available.
  4. Check autoloaded options and plugin count. Cheap, and often dramatic.
  5. Move to current PHP. Modest, free, and overdue on most sites.
  6. Add a CDN if your audience is spread out.
  7. Only then consider a different host.

Those first five steps cost nothing but time and resolve the majority of complaints about WordPress hosting speed. Anyone recommending step seven before step one is guessing — including the hosting company, which has an obvious interest in the answer.

For the underlying metric and how browsers experience it, web.dev’s guide to Time to First Byte is the clearest short reference, and it is explicit that TTFB is one component of perceived speed rather than the whole of it.

At the other end of the scale: when uncached response time and behaviour under load genuinely are the business risk, the answer stops being a bigger plan and becomes a platform. Our WordPress VIP services cover builds held to VIP platform standards — code review, caching discipline and the performance budget enforced rather than hoped for.

Frequently asked questions

How do I know if WordPress hosting speed is my problem at all?

Compare cached TTFB against uncached. If both are under a second and your pages still feel slow, the server is doing its job and the weight is in your images and scripts. That one comparison redirects most speed projects before any money is spent.

What is a good TTFB?

Under 0.8 seconds is generally considered good, under 0.5 excellent. But judge it against your visitors’ location — 0.47 seconds from far away is a better result than 0.47 seconds from the next city.

Does WordPress hosting speed affect SEO?

Indirectly. WordPress hosting speed feeds Core Web Vitals, which are a ranking input, but page weight and layout stability usually dominate. A fast server serving a heavy page still scores badly.

Is managed WordPress hosting worth the premium?

For shops and busy sites, the WordPress hosting speed premium is often worth it, for the uncached performance, the support and not maintaining a server yourself. For a brochure site with modest traffic, usually not.

Will a CDN fix a slow server?

It will hide it for cached pages and not at all for logged-in ones. A CDN is a distance solution, not a capacity solution, and the two get conflated constantly.

How many PHP workers do I need?

More than the number of simultaneous uncached requests you get. Most brochure sites need very few; shops need considerably more, because carts and checkouts cannot be cached.

My host says my site is slow because of plugins. Are they right?

Frequently, yes — and it is also a convenient answer. Measure uncached TTFB, then check autoloaded options and query counts. That evidence settles it either way in about twenty minutes.

Should I use a caching plugin if my host already caches?

Usually not — two caching layers produce confusing invalidation bugs, and a stale page is worse than a slightly slower one. Pick the layer that works and disable the other.