Private preview · 2026-11-03
wp-rust.
The case.
Part 1: ten numbers. Part 2: how it does it. Part 3: why resellers make more. Part 4: how we take the market. Every number on these pages was measured on real sites or real WordPress stacks. Each one carries its fine print at the bottom, because a host that lies about speed lies about everything else.
↓ space or scroll
01 / 10
Uncached · vs SiteGround · real client sites
0×
faster than SiteGround to build a page from scratch.
Three live Elementor client sites that SiteGround hosts today, 15 pages, identical HTML. Median server time, network removed. Range across pages: 4.2× to 9.2×.
Fine print: one Intel i9-13900K performance core vs SiteGround's real serving path (experiment z). Much of the gain is modern hardware + a modern PHP stack; wp-rust's own levers add 1.07–1.30× on top. On a throttled "shared vCPU" profile the range is 1.56–4.3×.
02 / 10
Slowest visitors · p95 · vs SiteGround
up to 0×
faster for the unlucky visitor who hits the slow page.
The 95th percentile is where hosts hide. SiteGround's slow tail is long; ours is flat. Across all 15 pages the slowest-request gap was 6× to 38×.
Fine print: same z runs as 01, p95 server time. 2.3–16× on the throttled profile. Server time, not full page load.
03 / 10
Cached · what the visitor's browser paints
Largest content on screen in
0 ms
Typical shared host955 ms
Lighthouse LCP on Twenty Twenty-Five, desktop, applied throttling. 3.2–3.9× faster across Astra, Hello Elementor and Twenty Twenty-Five, with screenshots pixel-identical.
Fine print: experiment f, cPanel-default shared stack vs ours behind a local edge cache. Mobile presets are within ±9% for everyone (slow emulated network dominates). Cloudflare's real network not in this number.
04 / 10
Freshness · after 4 ordinary edits
0 stale
pages served. Caching plugins served 97 to 317.
typical page cache: 0–0 stale
wp-rust: 0
Instant cached pages that are never out of date. We purge exactly the pages an edit touches, so editors never hear "clear your cache".
Fine print: satoriyoga.ca clone (WooCommerce + Divi, 26 plugins), 1,500-request replay of its real traffic mix, experiment s, tag purges v1.2. 97 = 10 h TTL plugin, 317 = 24 h.
05 / 10
Flagship · a real store, as it runs today
🐢production today · 2,646 ms
🚀wp-rust · 611 ms
0×
faster uncached on satoriyoga.ca, same site, same plugins.
Fine print: production's uncached path vs wp-rust on amdo-server, measured on the box (no network). The cause is the host and its configuration, not WordPress; production also has Varnish for cached views.
06 / 10
vs a typical cPanel shared host · same CPUs
0×
faster first byte, uncached (best URL). 2.8× less CPU per page.
Fine print: experiment f, the three most-installed wordpress.org themes on a 31-plugin WooCommerce store; range 2.4–3.1× across 12 URLs; bars show the Hello + Elementor builder page (TTFB) and Astra (CPU). A shared host that resized its OPcache would close most of this gap; most don't.
07 / 10
Database work per request
0× fewer
database queries per page. 4.5× fewer in wp-admin.
shared: 296–318 / pagewp-rust: 59–66
shared: 515–543 / admin screenwp-rust: 115–123
A persistent object cache comes standard on every site, so WordPress stops asking MySQL the same question 300 times.
Fine print: experiment f. Per-site SQLite object cache (experiment h). Shared host measured with no object cache, as cPanel ships it.
08 / 10
Machine resources per site
0 MB
of PHP memory per busy site, against 249 MB on a well-tuned shared host.
WordPress core and popular plugins are byte-identical across sites, so their compiled code lives once in memory and every site maps it read-only. 2.6× less RAM per site, same response times, identical HTML.
Fine print: experiments p/r, 12 identical heavy stores under load (best case for sharing). A single unique site gets no sharing benefit. Prototype; production hardening listed in p.
09 / 10
Idle sites cost nothing
0 MB
held by a sleeping site. Wakes in 0.68 s, not 3.1 s.
Most agency sites are quiet most of the day. Ours sleep, and anonymous visitors are served from the edge cache while they do.
Fine print: experiments b and p: first request after start with the shared code image (nothing left to compile) vs empty OPcache.
10 / 10
Density → price
~0
small sites per $304/month server. About $1.35 a site, all-in.
That's what lets us sell at half SiteGround's price and still leave the agency a margin, white-label from the first tier.
Fine print: modelled in PR #7 on a Hetzner AX102 (16 cores, 128 GB). Disk is the binding limit; the active/warm/asleep mix is an assumption until real agency sites run on it.
Part 2
How it
actually works.
No rewrite of WordPress. No forked PHP. Every site runs unmodified, on official PHP. wp-rust just makes PHP do far less work. Five moves.
HOW · 1 / 5
Move 1 · the edge answers first
Most visitors never touch our server.
👤VisitorEdmonton
⚡Cloudflarenearest city · cached HTML
🦀wp-rustonly on a miss
Anonymous pages are cached in Cloudflare's 300+ cities. When an editor hits Save, we purge exactly the pages that edit touched, not the whole site and not "wait for it to expire". That's why it's instant and 0 stale.
Fine print: cache policy tested against a 31-plugin WooCommerce store (experiment g): carts, checkout, logins and anything with a session cookie always bypass. Purge accuracy from experiment s.
HOW · 2 / 5
Move 2 · compile WordPress once, for everyone
500 sites run the same WordPress. Why compile it 500 times?
WordPress core and popular plugins are byte-identical across sites. We compile them once into a read-only image every site maps. Each site only keeps its own little bit. 97 MB per busy site instead of 249 MB.
Fine print: experiments p/r. The blocks are illustrative; the 97 vs 249 MB is measured on 12 identical heavy stores (best case for sharing). Prototype; hardening listed in p.
HOW · 3 / 5
Move 3 · quiet sites go to sleep
A site nobody is visiting costs zero memory.
Most agency sites get a handful of uncached hits an hour. Ours unload when idle and wake in 0.4–0.7 s because nothing needs recompiling. Meanwhile the edge keeps serving their cached pages.
Fine print: experiments b, p, r (0.39–0.68 s first request after start vs 2.3–3.1 s cold). The awake/asleep mix of real agency sites is an assumption until we run some.
HOW · 4 / 5
Move 4 · stop asking the database the same question
300 database queries a page → 60.
Every site gets a persistent object cache and a code cache sized for real WordPress (most shared hosts give all sites 128 MB combined, which a single heavy site overflows). Boring, but it's where most of the uncached speed comes from.
Fine print: experiment f. Honest note: a shared host that configured this properly would capture most of the gain. Most don't, because it costs them memory per account; our sharing (move 2) is what makes it affordable.
HOW · 5 / 5
Move 5 · a PHP build trained on WordPress
Official PHP, compiled knowing what WordPress does all day.
+3–6% on every requestno code changesPHP 5.6–8.5 + ionCube
Profile-guided optimisation: we run real WordPress traffic through PHP, then rebuild PHP to favour those code paths. Small, free, everywhere. We tested ~15 more exotic ideas (JIT, custom allocators, native hot paths, snapshots) and killed every one that didn't hold up.
Fine print: experiments q and x-engine: PGO 1.055× front / 1.033× admin vs official PHP 8.4. Killed list in experiments/README.md.
Part 3
Why resellers
make more.
Speed sells the client. Efficiency is what pays the agency.
RESELL · 1 / 3
More sites on the same server
Busy sites that fit in 104 GB of RAM:
2.6× more busy sites per server, and sleeping sites don't count at all. In practice disk, not RAM, becomes the limit: about 500 typical small sites per $304/month box.
Fine print: 104 GB ÷ 249 MB vs ÷ 97 MB per active site (experiment r, 12 identical stores = best case). Each square = 10 sites. 500/box is modelled in PR #7, disk-bound.
RESELL · 2 / 3
When everyone shows up at once
0×
faster at p95 with 12 heavy sites busy on one server, vs a default cPanel host.
cPanel host: 21% of requests failedwp-rust: 0 failed4.5× less CPU per request
Packing sites only works if they don't take each other down. This is the "one client's sale tanks everyone else's site" problem, and it's where shared hosting falls over.
Fine print: experiment f phase 2, 12 heavy sites, 3 req/s Poisson, Zipf popularity. Against a shared host whose OPcache is tuned to match, it's 1.6×/1.8× and equal CPU: again, configuration is most of it.
RESELL · 3 / 3
Where the money goes · one small site, per month
SiteGround StartUp (renewal)$17.99
Client pays (wp-rust retail)$8.99
Agency pays us (wholesale)$4.00
client saves 50%agency keeps $4.99 (56%)we keep $2.65 (66%)
Fine print: PR #7 target prices (not yet offered to anyone); cost modelled on Hetzner AX102 + Cloudflare + R2 backups. Honest gap: an agency packing 40 tiny sites into one GoGeek plan pays ~$1.12/site, about what our pool costs; we win there on speed and white-label, not price.
Part 4
How we
take the market.
MARKET · 1 / 3
Who we sell to
Agencies, not site owners. One sale = dozens of sites.
The targetWeb agencies with 20–200 client sites sitting on SiteGround GoGeek / reseller or a pile of cPanel accounts.
Their painRenewal price jumps, slow wp-admin complaints, "clear your cache" tickets, migrations that eat a day each.
The offerWhite-label from the first tier, half the price, faster, never stale, billed monthly with no renewal hike.
WordPress runs roughly 4 in 10 websites. We don't need a sliver of that; a few hundred agencies is a real business.
Fine print: WordPress share per W3Techs. Agency segment sizing and willingness to switch are not surveyed yet.
MARKET · 2 / 3
The wedge
Make leaving SiteGround a one-command job.
1PointAgency connects its SiteGround sites
2CopyFiles + DB pulled read-only, PHP version matched
3VerifyEvery page crawled on both; HTML must match
4SwitchDNS flips only after it passes
Migration is the #1 reason agencies stay put. If moving 40 sites is an afternoon with proof nothing broke, price and speed do the rest.
Fine print: the migrator is designed (MIGRATION.md) and its read-only copy path ran on 3 real SiteGround sites in experiment z; the one-command product is not built yet. Target: under 5 minutes hands-on per site.
MARKET · 3 / 3
Straight talk · what's still to prove
Four things before we put this in front of an agency.
Real CloudflareEdge numbers from 8+ cities vs SiteGround. Running now.
Real cloud serverEvery speed number so far is on our own hardware, not a rented box.
The migratorDesigned, partly exercised. Needs building.
HardeningThe shared code image needs its security fixes before multi-tenant use.
None of these are research risks anymore. They're build work.
The pitch, honestly
4× faster uncached.
Instant cached.
Never out of date.
Official PHP 5.6–8.5 with ionCube, so every site runs unmodified. A Rust control plane, Cloudflare at the edge, and a one-command verified migrator. Half SiteGround's price.
Cooked up by Andy Doucet. Coded by Gerald.