Core Web Vitals Optimization: Complete Guide to Perfect Scores in 2026
Master Core Web Vitals with our comprehensive guide. Learn how to optimize LCP, FID, CLS, and new metrics like INP for better rankings and user experience.
Core Web Vitals are Google's key metrics for user experience. Passing these checks boosts rankings and retention.
## The Metrics & Thresholds
| Metric | Focus | Good Target |
| :--- | :--- | :--- |
| **LCP** (Largest Contentful Paint) | Loading Speed | ≤ 2.5s |
| **INP** (Interaction to Next Paint) | Interactivity | ≤ 200ms |
| **CLS** (Cumulative Layout Shift) | Visual Stability | ≤ 0.1 |Goal: Hit "Good" on 75% of visits.
1. Optimize LCP (Loading Speed)
This measures the time to render the largest visible element (usually the hero image or H1).
Strategies
- Optimize Images: Use WebP/AVIF formats.
- Preload Critical Assets: Tell the browser what to load first.
- Improve TTFB: Use a fast server/CDN and enable caching.
Preload Example:
<link rel="preload" as="image" href="/hero.webp">Next.js Image Component:
<Image
src="/hero.jpg"
width={800} height={600}
priority={true} // High priority for LCP
/>2. Optimize INP (Interactivity)
Replaces FID. Measures responsiveness to clicks and key presses.
Strategies
- Minimize Javascript: Remove unused code.
- Code Splitting: Load only what is needed directly.
- Web Workers: Offload heavy tasks.
- Defer Scripts: Don't block the main thread.
Defer Non-Critical JS:
<script defer src="analytics.js"></script>Dynamic Import (Next.js):
import dynamic from 'next/dynamic';
const HeavyChart = dynamic(() => import('./Chart'), {
loading: () => <p>Loading...</p>,
ssr: false
});3. Optimize CLS (Visual Stability)
Measures how much content shifts while loading.
Strategies
- Set Dimensions: Always include
widthandheightattributes. - Reserve Ad Space: Use CSS min-height for dynamic content containers.
- Font Loading: Use
font-display: swapto prevent text shifts.
CSS Aspect Ratio:
.responsive-img {
width: 100%;
height: auto;
aspect-ratio: 16 / 9; /* Reserves space */
}Font Display:
@font-face {
font-family: 'Inter';
src: url('/fonts/inter.woff2');
font-display: swap;
}Monitoring Tools
- Chrome DevTools: "Performance" tab for deep dives.
- Lighthouse: General scores and specific opportunities.
- Web Vitals Library: Real-user monitoring (RUM).
import { onCLS, onINP, onLCP } from 'web-vitals';
function sendToAnalytics(metric) {
console.log(metric); // Or send to GA4
}
onCLS(sendToAnalytics);
onINP(sendToAnalytics);
onLCP(sendToAnalytics);Checklist for Perfect Scores
- [ ] Enables GZIP/Brotli compression
- [ ] Serves images in next-gen formats (WebP)
- [ ] Preloads LCP image
- [ ] Defers third-party scripts
- [ ] Sets explicit width/height for all media
- [ ] Uses a CDN for static assets
Conclusion
Passing Core Web Vitals requires a mix of server speed, efficient code, and stable layout. Focus on LCP first as it often has the biggest impact on perceived speed.
Related Articles
Scan Your Website Now
Get a comprehensive analysis of your website's performance, SEO, security, and more.