Web Vitals e Core Performance: Otimizações que Realmente Importam

10 min de leitura

Técnicas práticas para melhorar Core Web Vitals, com foco em LCP, CLS e FID. Casos reais de otimização que resultaram em melhorias mensuráveis.

PerformanceWeb VitalsOptimizationUser Experience

Web Vitals e Core Performance: Otimizações que Realmente Importam#

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Core Web Vitals: Os Fundamentos#

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

1. Largest Contentful Paint (LCP)#

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Targets:

  • Good: < 2.5s
  • Needs Improvement: 2.5s - 4s
  • Poor: > 4s

2. Cumulative Layout Shift (CLS)#

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim.

Techniques:

  • Reserve space for images
  • Avoid inserting content above existing content
  • Use transform animations instead of layout-triggering properties

3. First Input Delay (FID) / Interaction to Next Paint (INP)#

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium.

Otimizações Práticas#

Image Optimization#

Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit.

// Next.js Image Component
import Image from 'next/image'

<Image
  src="/hero-image.jpg"
  alt="Hero"
  width={1200}
  height={600}
  priority={true}
  placeholder="blur"
  blurDataURL="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD..."
/>

Resource Loading Strategy#

Totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae.

<!-- Critical resources -->
<link rel="preload" href="/critical.css" as="style">
<link rel="preload" href="/hero-font.woff2" as="font" crossorigin>

<!-- Non-critical resources -->
<link rel="prefetch" href="/next-page.js">
<link rel="preconnect" href="https://fonts.googleapis.com">

Code Splitting#

Sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.

// Dynamic imports for route-based splitting
const AdminPanel = lazy(() => import('./AdminPanel'))
const UserDashboard = lazy(() => import('./UserDashboard'))

// Component-based splitting
const HeavyChart = lazy(() =>
  import('./HeavyChart').then(module => ({
    default: module.HeavyChart
  }))
)

Medição e Monitoramento#

Real User Monitoring (RUM)#

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet consectetur.

// Web Vitals measurement
import { getCLS, getFID, getFCP, getLCP, getTTFB } from 'web-vitals'

function sendToAnalytics(metric) {
  // Send to your analytics provider
  gtag('event', metric.name, {
    value: Math.round(metric.value),
    metric_id: metric.id,
  })
}

getCLS(sendToAnalytics)
getFID(sendToAnalytics)
getFCP(sendToAnalytics)
getLCP(sendToAnalytics)
getTTFB(sendToAnalytics)

Performance Budget#

Adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore.

Budget Targets:

  • First Load JS: < 130KB
  • Route-based chunks: < 25KB
  • Image payload: < 300KB per page
  • Third-party scripts: < 50KB

Casos de Estudo#

Caso 1: E-commerce Site#

Dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem.

Antes:

  • LCP: 4.2s
  • CLS: 0.15
  • FID: 180ms

Depois:

  • LCP: 1.8s (-57%)
  • CLS: 0.05 (-67%)
  • FID: 45ms (-75%)

Técnicas aplicadas:

  • Image optimization com WebP/AVIF
  • Critical CSS inlining
  • Service Worker para caching
  • Font preloading

Caso 2: Blog/Content Site#

Ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.

Otimizações:

  • Static site generation
  • Image lazy loading
  • Resource hints
  • Bundle optimization

Performance Checklist#

Images & Media#

  • [ ] WebP/AVIF formats
  • [ ] Responsive images
  • [ ] Lazy loading
  • [ ] Placeholder blurs
  • [ ] Video optimization

JavaScript#

  • [ ] Code splitting
  • [ ] Tree shaking
  • [ ] Bundle analysis
  • [ ] Third-party optimization
  • [ ] Service worker

CSS#

  • [ ] Critical CSS
  • [ ] Unused CSS removal
  • [ ] CSS-in-JS optimization
  • [ ] Font optimization

Network#

  • [ ] HTTP/2 Push
  • [ ] Resource hints
  • [ ] CDN implementation
  • [ ] Compression (gzip/brotli)

Ferramentas Essenciais#

Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae.

Measurement:#

  • Lighthouse: Performance auditing
  • PageSpeed Insights: Real-world data
  • Chrome DevTools: Debugging
  • Web Vitals Extension: Quick metrics

Monitoring:#

  • Core Web Vitals: Google's official tool
  • SpeedCurve: Continuous monitoring
  • Calibre: Performance budgets

Takeaway: Performance optimization é um processo contínuo. Meça, otimize, monitore, repeat! 📈