LCP under 2.5s
Almost always image-bound. Preload the hero image, serve it in AVIF or WebP, set explicit width/height, and host it on a CDN with HTTP/3. Defer everything that isn't above-the-fold.
INP under 200ms
INP replaced FID in March 2024. The fix is the same as for long tasks: break up JavaScript work, debounce input handlers, and move heavy logic off the main thread with Web Workers where possible.
CLS under 0.1
Reserve space for every image, embed, and ad. Avoid injecting content above existing content. Use font-display: optional or matched fallback font metrics to prevent FOIT/FOUT shift.
Measure in the field
Lab tools (Lighthouse) lie. Use Chrome UX Report (CrUX) data and a RUM tool like web-vitals.js to capture real visitor metrics segmented by device and country.