Como otimizar Core Web Vitals: guia prático para melhorar LCP, INP e CLS

2025-02-15|SEO Técnico|Tempo de leitura: 5 min

Página lenta não é só um incômodo. Ela derruba engajamento, piora a percepção da marca e pode corroer resultado orgânico sem fazer barulho.

É por isso que Core Web Vitals deixou de ser conversa de nicho entre desenvolvedores. Hoje ele impacta SEO, experiência do usuário e conversão ao mesmo tempo.

Painel de métricas de desempenho com FCP, LCP, TTFB, INP e CLS

O que os Core Web Vitals medem na prática

Os três indicadores principais olham para partes diferentes da experiência da página:

1. LCP (Largest Contentful Paint)

O LCP mede quanto tempo o principal elemento visível demora para aparecer. Na prática, costuma ser a imagem hero, um banner, um vídeo em destaque ou o primeiro grande bloco de texto.

O alvo mais usado é 2,5 segundos ou menos.

2. INP (Interaction to Next Paint)

O INP mede quanto tempo a página leva para dar um retorno visual depois de uma interação real, como clique, toque ou digitação.

O ideal é ficar em 200 ms ou menos.

3. CLS (Cumulative Layout Shift)

O CLS mede o quanto o layout se mexe sem aviso durante o carregamento ou quando novos elementos entram na tela.

O valor considerado bom é 0,1 ou menos.

Como medir sem cair no achismo

Não adianta sair otimizando tudo ao mesmo tempo. Primeiro é preciso entender onde a experiência quebra.

1. Google Search Console e PageSpeed Insights

O relatório de Core Web Vitals no Search Console mostra quais grupos de URL estão com problema com base em dados de usuários reais. O PageSpeed Insights ajuda a analisar uma página específica.

2. Lighthouse no Chrome

Lighthouse continua sendo o jeito mais rápido de levantar hipóteses técnicas. Vale olhar principalmente:

  • qual elemento está sendo tratado como LCP
  • quais scripts estão ocupando a thread principal
  • quais recursos bloqueiam a renderização inicial
  • em que momento acontecem os layout shifts

3. Monitoramento de usuários reais (RUM)

Dados de laboratório ajudam bastante, mas não substituem tráfego real. Dispositivos fracos, internet móvel ruim e scripts de terceiros pesam muito mais no mundo real.

Se você quiser priorizar por impacto SEO antes de abrir o código, vale cruzar essas descobertas com uma revisão rápida no SEO Analyzer.

Como melhorar LCP sem desperdiçar esforço

Na maioria dos projetos, o LCP ruim está ligado a alguns culpados bem previsíveis: imagem principal pesada, resposta lenta do servidor e excesso de recursos bloqueando o primeiro paint.

1. Trate a imagem principal como prioridade

  • use WebP ou AVIF
  • entregue tamanhos diferentes com srcset ou <picture>
  • comprima antes de publicar
  • não aplique loading="lazy" na imagem crítica
  • defina width e height
1<picture> 2 <source 3 srcset="hero-1200.webp 1200w, hero-800.webp 800w, hero-400.webp 400w" 4 type="image/webp" 5 sizes="(max-width: 600px) 400px, (max-width: 1200px) 800px, 1200px" 6 > 7 <source 8 srcset="hero-1200.jpg 1200w, hero-800.jpg 800w, hero-400.jpg 400w" 9 type="image/jpeg" 10 sizes="(max-width: 600px) 400px, (max-width: 1200px) 800px, 1200px" 11 > 12 <img src="hero-800.jpg" alt="Homepage hero image" width="1200" height="800" loading="eager"> 13</picture>

2. Reduza o TTFB

Se o servidor responde devagar, o navegador fica parado esperando.

  • ative cache de página e de dados quando fizer sentido
  • use CDN para servir assets estáticos
  • revise consultas lentas
  • tire processamento pesado do caminho crítico

3. Remova bloqueios na renderização

Muito CSS, fonte ou JavaScript na rota crítica faz a página parecer lenta mesmo quando o problema não está no servidor.

  • deixe o CSS crítico mais enxuto
  • carregue scripts não essenciais com defer
  • use async para scripts independentes
  • elimine bibliotecas que não precisam entrar no carregamento inicial
1<head> 2 <link rel="preload" href="/fonts/inter-var.woff2" as="font" type="font/woff2" crossorigin> 3 <script src="/js/main.js" defer></script> 4 <script src="https://analytics.example.com/script.js" async></script> 5</head>

4. Use preload com critério

preload ajuda bastante para a imagem LCP e para fontes realmente críticas. O exagero costuma virar gargalo.

Como melhorar INP e deixar a página mais responsiva

INP ruim quase sempre significa uma thread principal ocupada demais.

1. Enxugue o JavaScript

  • divida bundles grandes
  • carregue funcionalidades secundárias sob demanda
  • remova código morto
  • evite hidratar cedo componentes que não precisam reagir logo de cara
1document.querySelector('.open-chart').addEventListener('click', async () => { 2 const { renderChart } = await import('./chart-module.js'); 3 renderChart(); 4});

2. Controle scripts de terceiros

Chat, analytics, pixel, mapa, teste A/B, player embutido. É comum o problema de INP estar aí.

Perguntas úteis:

  • esse script realmente gera valor?
  • ele pode carregar só depois da primeira interação?
  • ele pode sair do projeto sem fazer falta?

3. Quebre tarefas longas

Quando uma tarefa de JavaScript segura a thread principal por muito tempo, a resposta ao clique atrasa.

  • divida processos pesados em partes menores
  • use requestIdleCallback para tarefas secundárias
  • mova cálculos pesados para Web Workers

Como reduzir CLS e parar de ver a interface "pular"

CLS alto costuma vir de vários detalhes negligenciados ao mesmo tempo.

1. Reserve espaço para mídia e embeds

Imagens, vídeos e iframes precisam de espaço definido antes de aparecer.

  • informe width e height
  • use aspect-ratio em containers responsivos
  • deixe áreas estáveis para embeds e players

2. Evite inserir elementos de surpresa

Aviso, banner, recomendação carregada por cima do conteúdo: tudo isso mexe na tela na pior hora.

  • reserve espaço antes de carregar
  • use overlay quando não quiser empurrar o conteúdo
  • defina altura mínima para slots de anúncio

3. Cuide do carregamento de fontes

Fonte web também causa salto visual.

  • faça preload da fonte principal
  • use font-display: swap
  • escolha uma fonte fallback com métricas parecidas

Exemplo real de impacto

Um e-commerce com tráfego majoritariamente mobile começou assim:

  • LCP: 4,8 s
  • INP: 180 ms
  • CLS: 0,25
  • conversão: 1,2%
  • rejeição: 65%

As mudanças implementadas:

  1. migração das imagens principais para WebP
  2. reserva de espaço para imagens e anúncios
  3. atraso na carga de scripts de analytics e mídia
  4. preload das imagens hero mais importantes
  5. redução do CSS crítico
  6. ativação de CDN para assets estáticos
  7. ajuste de fontes com font-display: swap

Depois da otimização:

  • LCP: 1,9 s
  • INP: 65 ms
  • CLS: 0,08
  • conversão: 2,8%
  • rejeição: 42%

Nada de truque. Só foco no que mais atrapalhava o usuário.

A parte contínua do trabalho

Core Web Vitals não é algo que você "resolve" uma vez. Novo script, novo componente e nova campanha podem estragar tudo de novo.

1. Tenha monitoramento recorrente

Acompanhe Search Console, RUM e os principais tipos de página com frequência.

2. Defina orçamentos de performance

Vale estabelecer limites para:

  • peso total de JavaScript
  • tamanho máximo de imagem
  • quantidade de fontes
  • número de scripts de terceiros

3. Coloque performance no fluxo de publicação

Landing page nova, redesign ou feature importante deveria passar por uma checagem básica de LCP, INP e CLS antes de ir ao ar.

4. Distribua esse conhecimento no time

Desenvolvimento não é o único responsável. Design, conteúdo e marketing também influenciam esses números.

Resumo prático

  • LCP melhora quando você acelera o recurso principal, o servidor e o caminho crítico.
  • INP melhora quando sobra menos trabalho para a thread principal.
  • CLS cai quando o layout deixa de ser imprevisível.
  • Dado de laboratório ajuda, mas dado real manda.
  • O objetivo final não é ter nota bonita. É ter uma página que carrega melhor e converte melhor.

Se você precisa descobrir primeiro quais URLs estão perdendo mais por causa de performance, comece pelo SEO Analyzer e aprofunde com Lighthouse e dados reais de campo.

Artigos relacionados