Web Vitals e Core Performance: Otimizações que Realmente Importam
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.
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! 📈