Performance·February 8, 2026·7 min read
Core Web Vitals in 2026: What Actually Moves Rankings
After auditing 200+ sites, here's what consistently moves Core Web Vitals — and what doesn't matter as much as you think.

INP replaced FID — it's harder
Interaction to Next Paint measures every interaction, not just the first. Long JavaScript tasks are now exposed everywhere. The fix: break up bundles, defer hydration, and avoid blocking the main thread with heavy synchronous work.
LCP is mostly about images
- 80% of LCP failures are unoptimized hero images. Use AVIF or WebP, set explicit width/height, and preload the LCP candidate with fetchpriority="high".
CLS is solved by reservations
Reserve space for ads, embeds, fonts, and dynamic content. font-display: optional eliminates font swap CLS at the cost of some FOIT.
What doesn't matter (much)
- Critical CSS extraction (modern bundlers handle it)
- Lazy-loading below-fold images (browsers do this natively)
- Service workers for vitals (negligible impact)
The audit checklist
- Image strategy (formats, dimensions, preload)
- JavaScript budget (per route, with bundle analyzer)
- Third-party scripts (audit, defer, or remove)
- Font loading (display: swap or optional)
- Layout reservations (CLS hotspots)