✅ 1. First Contentful Paint (FCP)
Target: < 1.8s
📌 First visual feedback to the user
✅ Best Practices:
- ⏩ Use CDN for static assets
- 🎯 Inline critical CSS
- 🧼 Minify & defer non-critical CSS/JS
- 🖼️ Optimize above-the-fold images
- 🔍 Preload key resources (
)
- 🌐 Reduce server response time (use cache, edge computing)
✅ 2. Largest Contentful Paint (LCP)
Target: < 2.5s
📌 Render the largest visible content quickly
✅ Best Practices:
- 🖼️ Use next-gen image formats: WebP, AVIF
- 🧊 Compress & resize hero images
- 📥 Preload the LCP image/font/asset
- 🚫 Avoid lazy-loading above-the-fold content
- 💡 Serve HTML quickly (SSR or static HTML for first load)
✅ 3. Total Blocking Time (TBT)
Target: < 200ms
📌 Main thread responsiveness during load
✅ Best Practices:
- 🧠 Break large JavaScript tasks into chunks
- 🧵 Offload heavy computation to Web Workers
- ✂️ Reduce third-party scripts and tracking pixels
- 📦 Use code-splitting to reduce bundle size
- 💤 Lazy-load non-critical JS modules
✅ 4. Cumulative Layout Shift (CLS)
Target: < 0.1
📌 Avoid unexpected visual shifts
✅ Best Practices:
- 🔲 Always define width and height for images/videos
- 📏 Reserve space for dynamic content (ads, iframes)
- 🔠 Use font-display: swap to avoid FOIT (Flash of Invisible Text)
- 🚫 Don’t insert DOM elements above existing content after page load
- 🎞️ Use
transform
, nottop/left
, for animations
✅ 5. Speed Index
Target: < 3.4s
📌 How fast your page visually completes
✅ Best Practices:
- ⚡ Prioritize visible content first
- 🔃 Defer offscreen and background content
- 🧩 Preload critical resources (fonts, hero images)
- 🌍 Minimize redirects & DNS lookups
- 🛠️ Reduce dependency size (lodash, moment.js, etc.)
🛠️ Tools You Can Use:
Tool | Use Case |
---|---|
💡 PageSpeed Insights | Google's official performance audit |
🔍 Lighthouse (Chrome DevTools) | Local performance & SEO audit |
⚡ WebPageTest | Visual load progress and request waterfall |
🧪 GTmetrix | Page load speed and suggestions |
📦 Bundlephobia | Check size of npm packages |