Most teams chase a Lighthouse score and miss the field data that Google actually ranks on. A green lab result feels reassuring, but it measures a single synthetic run on a fast machine. Your users are on mid-tier phones and flaky networks — and that is the experience Chrome reports back to Google.
Why Field Data Wins
The Chrome User Experience Report (CrUX) is the ground truth. It aggregates real loads from real Chrome users, and the 75th-percentile values it surfaces are exactly what feed your Core Web Vitals assessment. Optimize for the lab and you can still fail the field.
If it is not in CrUX, Google does not care about it. Measure what ranks.
Our rule is simple: every performance ticket must point at a field metric, not a Lighthouse number. That single shift kills a surprising amount of busywork.
Set an LCP Budget
Largest Contentful Paint is usually an image or a heading inside the hero. Give it a hard budget and defend it:
- Preload the LCP image and skip lazy-loading above the fold.
- Serve modern formats (AVIF, then WebP) with correctly sized variants.
- Inline critical CSS so the hero paints without a render-blocking round trip.
On a recent ecommerce replatform this took LCP from 4.1s to 1.6s at p75 — the difference between a failing and a passing assessment.
Hunt Layout Shift
Cumulative Layout Shift is death by a thousand cuts: an unsized image here, a late-loading banner there. Reserve space for everything that arrives after first paint.
img, video, iframe { aspect-ratio: attr(width) / attr(height); }
.ad-slot { min-height: 250px; }Set explicit dimensions, reserve ad and embed slots, and never inject content above existing content once the page is interactive.
Tame INP
Interaction to Next Paint replaced FID and it is far less forgiving. It measures the slowest interaction across the whole session, so a single heavy click handler can sink the score. Break up long tasks, defer non-critical hydration, and yield to the main thread with scheduler.yield() where supported.
Ship and Monitor
Performance is not a launch milestone — it is a regression you have to keep catching. Wire a real-user-monitoring beacon into production, alert on p75 drift, and gate deploys on a synthetic budget in CI. Green once is luck; green every week is a system.