FCP 2.4s -> 0.9s by inlining 9KB of critical CSS FCP (first contentful paint) was gated by one 140KB render-blocking stylesheet. — Browser blocks first paint until all <link rel=stylesheet> in h…
Bundle 410KB -> 280KB, but TBT barely moved Bundle size and execution cost are different metrics. Tree-shaking cut bytes; CPU stayed hot. — Removed 130KB of unused exports. Transfer dropped, parse tim…
CLS 0.21 -> 0.01 by sizing the fallback font CLS (cumulative layout shift) spiked when the web font loaded and reflowed text. — Fallback font was 6% narrower per glyph. On swap, a 9-line paragraph ref…
LCP 3.2s -> 1.7s with one fetchpriority attribute LCP (largest contentful paint) here was a hero image discovered late by the preload scanner. — Image sat below two render-blocking stylesheets in sour…
INP 412ms -> 184ms by splitting one event handler INP (Interaction to Next Paint) measures the worst-ish interaction at p98 per session. — One click handler ran 280ms of synchronous filtering on the m…
LoAF API pinned a 220ms INP to one script INP tells you the duration but not the cause; the Long Animation Frames API names the script. — A 220ms interaction logged in field RUM with no obvious source…