Only 33% of websites currently pass all three Core Web Vitals. If you fix yours, you immediately gain an edge over the majority of your competitors.
Largest Contentful Paint (LCP)
LCP measures time for the largest visible element to fully render. Target: under 2.5 seconds.
Optimization strategies:
1. Preload hero image: <link rel="preload" as="image" fetchpriority="high">
2. Use WebP/AVIF format — 30-50% smaller than JPEG
3. Implement CDN for global edge delivery
4. Remove render-blocking CSS and JS above the fold
Interaction to Next Paint (INP)
INP measures latency of ALL interactions. Target: under 200ms. INP failures are almost always caused by JavaScript blocking the main thread. Break long tasks into smaller chunks using setTimeout(fn, 0) or scheduler.postTask().
Cumulative Layout Shift (CLS)
CLS measures unexpected movement of page elements. Target: under 0.1. Fix by adding width and height attributes to all img tags, and reserving space for ads with min-height CSS.
Image Optimization — Biggest LCP Win
Convert all images to WebP using Squoosh. Implement lazy loading for below-fold images (loading="lazy"). Use responsive images with srcset. For hero images, inline a base64 placeholder that renders immediately.