✅ 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, not top/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