Browser & Frontend Runtime
Core Web Vitals: multiple-choice review
Six questions that cut across the whole unit. Each mirrors a call you make reading a real PageSpeed report or a field dashboard — not a definition to recite, but which number to trust and which fix to reach for.
Confirm you can connect the three thresholds, the field-vs-lab verdict, the phase and part decompositions, and the shared performance budget — the synthesis the individual lessons built toward.
PageSpeed Insights shows LCP 1.8 s in the Lighthouse section (green) and LCP 3.9 s at field p75 (red). The team says 'the lab says we are fine, ship nothing.' What is the correct read?
A server-rendered page has poor INP, but only for interactions in the first ~3 seconds; after that every tap is fine. The tap handlers run in 8 ms. Where is the problem and what is the fix?
The web-vitals LCP attribution shows TTFB 280 ms, load delay 90 ms, load time 3510 ms, render delay 240 ms. The element is a 3.8 MB 4000×3000 JPEG hero. What is the highest-leverage fix?
A single layout shift moves a half-viewport element down by 20% of viewport height, with no user interaction in the prior 500 ms. What does it score, and is the page's CLS automatically poor?
A team inlines the full critical CSS bundle to cut LCP render delay by 400 ms. LCP improves in the lab, but you push back before merge. Why?
A SPA ships green Core Web Vitals on initial load, but users complain that client-side route changes feel sluggish. Why might the metrics miss this, and what is the fix?
The unit’s through-line is one diagnostic discipline: LCP/INP/CLS are field metrics at p75 (≤2.5 s, ≤200 ms, ≤0.1), and only CrUX field data is the ranking verdict — debug in the lab, judge in the field. LCP is read by its four-phase split and INP by its three-part split, so you fix the dominant phase, not the convenient one. The early-only INP pattern means hydration, not handlers. CLS is impact × distance summed over the worst 5 s window, with a 500 ms post-interaction exclusion. And all three share a budget — every change must be measured against all of them, never one in isolation.