Next.js and Core Web Vitals: what to measure first
Before micro-optimizing every hook, confirm where users feel slowness. Unfixed LCP is often a hero image without dimensions, blocking fonts or a slow server — not a forgotten `useMemo`.
The `next/image` component with correct `sizes` and modern formats cuts payload without ceremony. For INP, reduce main-thread work: fewer global listeners, split heavy bundles, hydrate only where interaction demands.
CLS comes from unreserved space: skeletons, aspect-ratio, and avoiding content that shifts layout after paint. List the 5 worst pages in Search Console or Lighthouse CI and treat them as a prioritized backlog.
Continuous measurement in CI prevents silent regressions. The goal isn't a green score for a screenshot — it's real users with faster sessions and less abandonment.
Interested in this topic? Talk to us about your context — we adapt stack and process to the product.
← Back to blog