A megabyte of code, most of it unused.
Every page loaded the full Elementor, Essential Addons, Crocoblock and OceanWP stacks: 39 JavaScript files and 27 stylesheets on the homepage, 165 KB of CSS that no rule on the page used, 31 render-blocking requests. Content lived in builder JSON and a flexible-content field, so even small layout changes were risky.
- JavaScript
- 377 KB
- CSS
- 237 KB
- Images
- 286 KB
- Fonts
- 113 KB
109 blocks, one engine swap.
Every section layout of the old theme ported one to one into ACF Gutenberg blocks, using the original markup rather than inventing new ones. Each block ships its own small CSS and loads its JavaScript only when it scrolls into view. The bars show the homepage bytes left after each step.
Same design, new engine.
Homepage LCP on a simulated mid-range phone from 8.0 to 3.2 seconds, first paint from 3.7 to 1.9, with the hero visible at the first second instead of the third. Lighthouse across the four key pages from 67 to 91, page weight down 54%. After launch, real-user layout shift rose to 0.31; three causes traced and fixed, lab CLS back to zero.