Performance claims about headless WooCommerce are everywhere. “10x faster!” “Sub-second page loads!” But what do the numbers actually look like in production? We benchmarked three real WooCommerce stores — one traditional, one headless with Next.js, and one optimized traditional — to find out.
Test Setup
All three stores run the same product catalog (1,847 products, 12 categories) against the same WooCommerce backend (WP Engine Pro plan, PHP 8.2, Redis object cache).
| Config | Stack | Hosting |
|---|---|---|
| Traditional | Starter theme, WooCommerce default | WP Engine |
| Traditional (Optimized) | Custom theme, asset optimization, CDN | WP Engine + Cloudflare |
| Headless | Next.js 15, ISR, WPGraphQL | Vercel + WP Engine |
Testing: WebPageTest (Virginia, Cable connection), 5 runs median, mobile viewport.
The Results
Homepage
| Metric | Traditional | Optimized | Headless |
|---|---|---|---|
| TTFB | 1.2s | 0.4s | 0.08s |
| FCP | 2.8s | 1.4s | 0.6s |
| LCP | 4.1s | 2.1s | 1.0s |
| CLS | 0.18 | 0.05 | 0.01 |
| Total Blocking Time | 890ms | 320ms | 45ms |
| Lighthouse Score | 38 | 72 | 98 |
Product Listing Page (Category with 48 products)
| Metric | Traditional | Optimized | Headless |
|---|---|---|---|
| TTFB | 1.8s | 0.6s | 0.09s |
| LCP | 5.2s | 2.8s | 1.2s |
| Total JS | 1.4MB | 680KB | 120KB |
| HTTP Requests | 87 | 34 | 12 |
| Lighthouse Score | 31 | 65 | 96 |
Product Detail Page
| Metric | Traditional | Optimized | Headless |
|---|---|---|---|
| TTFB | 1.5s | 0.5s | 0.07s |
| LCP | 3.8s | 1.9s | 0.9s |
| INP | 380ms | 120ms | 28ms |
| Lighthouse Score | 42 | 78 | 97 |
What’s Driving the Difference?
TTFB: Edge vs Origin
The headless store’s near-zero TTFB comes from ISR (Incremental Static Regeneration). Product pages are pre-rendered and served from Vercel’s edge network. The traditional store generates every page from PHP on the origin server. Even with Redis, WordPress must bootstrap, load plugins, and render.
JavaScript: React’s Advantage
Traditional WooCommerce loads jQuery, multiple plugin scripts, and the theme’s JavaScript — often 1MB+ of JS that blocks the main thread. The headless store ships only the React components needed for the current page, code-split by route.
Images: Next.js Image Component
Next.js’s component automatically:
- Serves WebP/AVIF based on browser support
- Generates responsive srcsets
- Lazy loads below-the-fold images
- Sizes images to the actual display dimensions
Traditional WooCommerce serves whatever the theme provides — often unoptimized full-size images.
The Optimization Gap
The “optimized traditional” results are important. A well-optimized WooCommerce store with proper caching, CDN, and asset optimization can score 70+ on Lighthouse. The gap between optimized traditional (72-78) and headless (96-98) is real but narrower than the gap between default WooCommerce (31-42) and headless.
If you’re scoring under 50 on Lighthouse, optimize your current setup before considering headless. The low-hanging fruit (caching, CDN, image optimization, plugin audit) will get you to 70+ without a complete rebuild.
Conversion Impact
Page speed directly affects conversion rates. Google’s data shows:
- 1s → 3s load time: bounce probability increases 32%
- 1s → 5s load time: bounce probability increases 90%
Our client data from before/after headless migrations shows:
| Metric | Before (Traditional) | After (Headless) | Change |
|---|---|---|---|
| Bounce rate | 47% | 31% | -34% |
| Pages/session | 3.2 | 5.1 | +59% |
| Add-to-cart rate | 4.8% | 6.7% | +40% |
| Conversion rate | 1.9% | 2.6% | +37% |
These improvements are not solely attributable to speed — the headless rebuild also improved UX and navigation. But speed is the foundation.
When Optimization Beats Headless
Don’t go headless just for performance. Consider the cost:
| Approach | Performance Gain | Dev Cost | Timeline |
|---|---|---|---|
| Basic optimization | 40 → 70 Lighthouse | $2-5K | 1-2 weeks |
| Advanced optimization | 70 → 85 Lighthouse | $5-10K | 2-4 weeks |
| Headless rebuild | 40 → 95+ Lighthouse | $30-80K | 2-4 months |
If your store is below 50 on Lighthouse and you don’t need headless for other reasons (omnichannel, custom UI, team preference), optimize first. You’ll get 80% of the performance benefit for 10% of the cost.
Performance Budget for Headless WooCommerce
If you do go headless, set a performance budget and enforce it:
| Metric | Budget | Enforcement |
|---|---|---|
| LCP | < 1.5s | CI/CD Lighthouse check |
| CLS | < 0.05 | CI/CD Lighthouse check |
| INP | < 50ms | Real User Monitoring |
| JS Bundle | < 150KB | webpack-bundle-analyzer |
| API Response | < 200ms | Backend monitoring |
Conclusion
Headless WooCommerce delivers genuinely superior performance — 95+ Lighthouse scores are achievable and sustainable. But the performance story is nuanced. A well-optimized traditional WooCommerce store can score 75-85, which is good enough for most businesses. Go headless when performance is one of several reasons (flexibility, omnichannel, developer experience), not the only reason. The numbers don’t lie, but neither does the cost column.
Last modified: April 3, 2026
United States / English
Slovensko / Slovenčina
Canada / Français
Türkiye / Türkçe