DFIELDSOLUTIONS

Build notes

LabCore Web Vitals on a real Next.js site

LCP, INP and CLS are three numbers with three different fixes. Most slow sites fail on the same four things, and none of them need a rewrite.

Core Web Vitals on a real Next.js site

Build notes3 sections · 2 min readBy Dezső Mező · Published October 3, 2026.mdNext.jsWeb VitalsPerformanceImages

A Lighthouse score is a symptom, not a diagnosis. The fixes below are the ones that actually moved the needle on real client builds — including this site, which loads a 3D room and still passes.

01The image is usually the crime scene

The biggest element on the page is almost always a hero image that arrives uncompressed, unresized and late. One properly sized AVIF/WebP with explicit dimensions fixes the worst LCP and the worst CLS in one move — this single change regularly beats a month of framework tuning.

02JavaScript you do not ship is JavaScript you do not pay for

Route-level code splitting is free in Next.js and still routinely undone by one import of a heavy component at the top of a page. The room on this site loads its renderer lazily for exactly this reason: the HTML, the text and the links are interactive before the first texture arrives.

03Fonts are a layout tax

A webfont without a display strategy is a guaranteed layout shift. Preload the one weight that renders the headline, swap the rest, and set metric overrides so the fallback occupies the same box.

What to take away

  • Fix the hero image first — it is LCP and CLS at once.
  • Split code at the route boundary; audit the imports above it.
  • Preload one font weight and metric-match the fallback.
  • Measure on a mid-range phone on 4G, not a MacBook on wifi.
We build this for clientsWeb performance

More from the lab

Browse all entries

Want this looked at on your own system?Start a conversation

DField Bt. · Dunakeszi · dezso@dfieldsolutions.com
5.0
“From LinkedIn DM to live site. Two tiny tweaks, then shipped.”Michael J Ringer · Vilya ProtectionFounder · Spain