Case study · Ecommerce performance
From 49 seconds to 2.4
Frontend rebuild of a real artisan food online store. Same content, same brand, different engineering.
The starting point
A real Spanish artisan food online store, built on PrestaShop 1.6 with a decade-old theme: 2015-era jQuery, unoptimized images and a DOM of over 7,500 elements.
The key diagnostic finding: their server responded in 220 ms — fast. 100% of the problem was in the frontend. The page where customers decide to buy took almost a minute to become usable on mobile.
The numbers
Homepage
| Metric | Before | After | Improvement |
|---|---|---|---|
| Performance (mobile) | 8/100 | 93/100 | +85 points |
| Largest Contentful Paint (LCP) | 49.1 s | 2.4 s | 20× faster |
| First Contentful Paint (FCP) | 15.9 s | 0.9 s | 17× faster |
| Page weight | 16.7 MB | 364 KB | 46× lighter |
| Layout shifts (CLS) | 0.357 | 0 | Perfect |
Product page
| Metric | Before | After | Improvement |
|---|---|---|---|
| Performance (mobile) | 26/100 | 99/100 | +73 points |
| Largest Contentful Paint (LCP) | 58.2 s | 2.3 s | 25× faster |
| Total Blocking Time (TBT) | 2,940 ms | 10 ms | 294× less |
| Page weight | 13.9 MB | 347 KB | 41× lighter |
How it was done
- Statically pre-rendered HTML with Next.js — every page is served ready, no per-visit computation
- WebP/AVIF images with per-device sizing and automatic lazy loading
- Self-hosted fonts that never block rendering
- Zero unnecessary JavaScript: gallery and accordions built with native HTML
- Same content: texts, prices, photos and reviews identical to the original
Methodology
Both versions were measured with Lighthouse (mobile emulation, identical conditions). Full reports are available — ask me and I'll send them over.
The original store is kept anonymous out of respect: this case demonstrates technique, it doesn't point fingers.
Is your store slow?
If your store — or your clients' — loads slowly, this same process applies: measurable diagnosis, improvement without switching platforms, verifiable results.
Let's talk