Performance is not a technical concern. It is a product decision with measurable business impact. Amazon measured that every 100ms of latency cost them 1% in sales. Google found that a 0.1-second improvement in mobile load time increased conversions by 8% in retail and 10% in travel. These numbers are from companies with enormous sample sizes. They are not flukes. When a page is slow, users leave — and they do not come back.
Why Core Web Vitals matter beyond SEO
Core Web Vitals get most of their attention as an SEO ranking signal. That framing undersells them. LCP (Largest Contentful Paint), CLS (Cumulative Layout Shift), and INP (Interaction to Next Paint) are measurements of real user experience. A high CLS score means your page is jumping around while users try to read it. A slow LCP means users are staring at a blank or partial screen. These are not theoretical quality metrics — they are direct measurements of friction in the experience.
A 1-second delay in page load reduces conversions by an average of 7%. On a site doing $100k/month, that is $7,000 left on the table every month for every second of avoidable delay.
The most common CWV killers
After auditing dozens of Next.js projects, the same culprits appear repeatedly:
- Images without explicit width and height attributes causing layout shift (CLS).
- Web fonts loaded without font-display: swap, blocking first render.
- Large JavaScript bundles that are not code-split, delaying interactivity.
- Unoptimised third-party scripts (analytics, chat widgets, tag managers) loaded synchronously.
- Server components fetching data sequentially instead of in parallel.
- Hero images not marked as priority, meaning the browser de-prioritises them.
Setting a performance budget
A performance budget is a set of thresholds — LCP under 2.5s, CLS under 0.1, total JavaScript under 200KB — defined at the start of the project and enforced in CI. The value of a budget is not in the specific numbers; it is in the conversation it forces. When a designer wants to add a 4MB video background, the budget makes the trade-off explicit. When an engineer wants to pull in a new third-party widget, the bundle size check makes the cost visible before it ships.
Lighthouse is a floor, not a ceiling
A 100 Lighthouse score in a controlled lab environment says nothing about real-user experience on a $200 Android phone on a 4G connection in a rural area. Lab scores are useful for catching obvious regressions. Real-User Monitoring (RUM) — using tools like Vercel Analytics, web-vitals.js, or Datadog — is how you see what your actual users are experiencing. Run both. Weight the RUM data more heavily when making decisions.