Core Web Vitals 58 → 97 (Mobile)
4-day engagement • minimal rewrites • Next.js App Router
Summary
- Mobile PSI: 58 → 97
- LCP: 4.1s → 2.2s • CLS: 0.24 → 0.01 • TBT: 320ms → 120ms
- Work: font loading, image strategy, script defers, dynamic imports, ISR, cache headers
Before / After


Full report: Lighthouse HTML
What I changed
- Fonts:
next/fontwith display swap, subset, preconnect - Images:
<Image />, proper sizes/srcset, hero priority only - Scripts: Moved 3p scripts to
<Script strategy="afterInteractive" />orlazyOnload - Code-splitting: dynamic imports for charts/editor/admin
- Data: ISR for content pages, cache headers via
NextResponse
Want the same result?
Book a quick audit. I’ll send a prioritized fix list and a timeline.
Book 30-min Audit