We built ECRU Studios a new shop from scratch: a bespoke static storefront in place of WordPress and WooCommerce, with a purpose built back office behind it for products, stock, orders and invoices.
Load time, requests and file sizes measured on the homepage, same computer, same emulated 4G connection, cache off. Full method under "Measured, not guessed".
ECRU's shop ran on WordPress and WooCommerce, a premium theme and fourteen plugins.
Every page asked a database for its content, then loaded around 190 files, with 145 scripts in the page, before a customer saw a thing. Each plugin was one more thing to licence, update and keep patched.
The hosting was an enterprise plan sized for heavy WordPress work, at €271.95 a year, and about €148 a year of confirmed plugin renewals sat on top. The whole rebuilt site is 147 MB. That is under 1% of the 25 GB plan it was paying for.


The storefront is 350 plain pages covering all 310 products across 25 categories, with Stripe checkout on ECRU's existing account. Behind it we built a bespoke back office, so the jobs plugins used to do are done by software shaped around how ECRU actually works.
New stock arrives as a spreadsheet and images, and the shop rebuilds itself. Price, stock and visibility are edited in one place, and a product's address never changes.
Every order is logged from Stripe checkout, and a branded PDF invoice is generated with the VAT broken out.
Revenue, best sellers, demand and margins worked out from the shop's own data, with a private cost register that never touches the public site.
A supplier's purchase order spreadsheet becomes products and a tracked order, with landed costs, deposits, deliveries and supplier details.
Price suggestions drawn from each category's real price bands, and zone based shipping with free over thresholds.
Search titles, descriptions and image descriptions written for every product as it is added.
Turns a product into a ready to post graphic and caption, with a planning calendar. Nothing posts by itself.
Customers can ask to be told when a sold out piece returns, and that demand feeds straight into finance.
Lockout after repeated failed logins, an optional IP allow list, secure cookies and security headers.
About 8,700 lines of purpose built code across the storefront generator, the back office and the checkout. No page builder, no WooCommerce, no plugin marketplace.
All 310 product pages keep exactly the same address they had on WordPress. Zero mismatches.
The old sitemap held 1,034 addresses and the new store has 349. We closed that gap with a 301 redirect map generated by comparing the two: 711 old addresses are covered, including 22 nested category pages, retired duplicate products, WooCommerce system pages and 518 old tag archives folded into the shop.
Every redirect was tested to land on a live page, real pages still answer normally, and anything genuinely gone shows a proper 404. Traffic and rankings move across with the shop.
| Homepage | WordPress today | New static store |
|---|---|---|
| Fully loaded | 2.5 s | 0.8 s |
| Main image visible | 2.45 s | 0.63 s |
| First paint | 1.1 s | 0.41 s |
| Requests | 190 | 16 |
| Page weight | 1.73 MB | 0.52 MB |
| JavaScript | 730 KB | 21 KB |
| Stylesheets | 299 KB | 25 KB |
| Scripts loaded | 145 | 7 |
| Page elements | 958 | 156 |
| Plugins | 14 plus premium theme | None |
Method: the live homepage and the new build tested on the same computer in Chrome, cache off, with the same emulated 4G connection (about 8 Mbps and 150 ms latency). Five runs on the live site gave results within 5% of each other, three runs on the new build were identical. The new build was served locally with the network conditions emulated, so real hosting will add some delay to it. The request count and file sizes are not affected by hosting.
Net saving of around €360 a year, with a further €100 or more possible once every licence is checked against its invoice. The saving is permanent because there is no stack left to renew.
The WordPress surface is gone: no plugins, no PHP, no database behind the storefront.
Static pages have nothing to inject into. The one login that remains, the back office, is the part we hardened, with lockout, an optional allow list and secure sessions.
The store is built, tested and measured. Going live is a staged cutover: a full test checkout on a staging address, one real low value order end to end, then the domain switches over. WordPress stays running as a fallback until ECRU is happy, and only then is it switched off.
Send us your address and we will tell you straight what we would change, and what it could save you.
Send us your addressBack to the work