Blog · SEO

Core Web Vitals: como medir e corrigir LCP, INP e CLS

O que LCP, INP e CLS medem, os limites no percentil 75, por que o PageSpeed Insights e o Search Console divergem e um guia de correção para cada métrica com base nas orientações do próprio Google, com um exemplo prático.

Searvia · 24/10/2026 · Leitura de 20 min

Um desenvolvedor front-end em uma bancada testando um site em cinco celulares alinhados em um suporte, com um cronômetro ao lado

Resumo: Core Web Vitals são três métricas que o Google usa para descrever a experiência de usuários reais: Largest Contentful Paint (LCP, carregamento, bom em 2,5 s ou menos), Interaction to Next Paint (INP, responsividade, bom em 200 ms ou menos) e Cumulative Layout Shift (CLS, estabilidade visual, bom em 0,1 ou menos). Cada uma é avaliada no percentil 75 das visitas reais no Chrome ao longo de 28 dias, separadamente para mobile e desktop. O Google diz que elas são usadas por seus sistemas de ranqueamento, mas a relevância vem primeiro. Para corrigi-las, divida cada métrica em suas partes e resolva primeiro a maior.

A maioria dos conselhos sobre Core Web Vitals é uma lista de cinquenta dicas. Por isso as equipes gastam uma sprint com "performance" e veem os números quase não se mexerem. As métricas são mais estruturadas do que isso: cada uma pode ser dividida em poucas partes mensuráveis, e geralmente uma delas responde pela maior parte do problema.

Este guia mostra o que as três métricas medem, os limites em outubro de 2026, em qual fonte de dados confiar, o que o Google realmente diz sobre ranqueamento e um roteiro de correção, começando pelo diagnóstico, para cada métrica, com base na documentação do próprio Google no web.dev.

O que os Core Web Vitals medem

Segundo a visão geral de Web Vitals do web.dev, o conjunto atual e estável tem três métricas:

MétricaMedeBomPrecisa melhorarRuim
Largest Contentful Paint (LCP)Carregamento: quando o conteúdo principal aparece≤ 2,5 s2,5 a 4 s> 4 s
Interaction to Next Paint (INP)Responsividade: a rapidez com que a página reage a uma interação≤ 200 ms200 a 500 ms> 500 ms
Cumulative Layout Shift (CLS)Estabilidade visual: quanto o conteúdo "pula"≤ 0,10,1 a 0,25> 0,25

Os limites coincidem com a tabela de About PageSpeed Insights.

A regra do percentil 75

O Google não avalia uma página pela média nem por um único teste. O web.dev diz que um bom limite a medir é "o percentil 75 dos carregamentos de página, segmentado entre dispositivos móveis e desktop". Em outras palavras: pelo menos três em cada quatro visitas reais precisam atingir o limite "bom". Para passar, a página precisa de um resultado bom no percentil 75 nas três métricas.

Isso traz duas consequências que muita gente ignora:

O INP substituiu o FID em 2024

O Interaction to Next Paint substituiu o First Input Delay (FID) como Core Web Vital em 12 de março de 2024. O FID media apenas o atraso antes de o navegador começar a tratar a primeira interação. O INP cobre cliques, toques e teclas pressionadas durante toda a visita, e todo o tempo até o próximo frame ser renderizado. Muitos sites que passavam fácil no FID falham no INP, porque a parte lenta sempre foi o trabalho depois da primeira interação, que o FID nunca contava. Se você ainda vê FID em um relatório ou plugin antigo, ignore.

O web.dev também observa que os Core Web Vitals estáveis "não mudarão mais de uma vez por ano" e que novas métricas candidatas ficam em fase pendente por pelo menos seis meses, então você é avisado antes de as regras mudarem.

Dados de campo vs. dados de laboratório

Existem dois tipos de dados de performance, e confundi-los é o motivo mais comum de as equipes corrigirem a coisa errada.

Dados de campoDados de laboratório
FonteUsuários reais do Chrome (Chrome User Experience Report, CrUX)Um carregamento simulado da página (Lighthouse, DevTools)
Período28 dias móveisUm teste, agora
Mede o INP?SimNão (Total Blocking Time como aproximação)
Usado pelo Google Search?É o que a avaliação de Core Web Vitals usaNão
Melhor paraSaber se existe um problemaDescobrir o motivo e testar uma correção antes do lançamento

Alguns detalhes da documentação do Google:

A regra prática: os dados de campo decidem se você tem um problema; os dados de laboratório ajudam a achar a causa. Uma nota 98 no Lighthouse com LCP ruim em campo significa que seus usuários reais têm uma experiência pior que a da simulação, muitas vezes por causa de dispositivos lentos, anúncios, personalização ou scripts de terceiros que o teste de laboratório não aciona.

Quanto os Core Web Vitals importam para o ranqueamento

A documentação de experiência da página do Google é clara dos dois lados:

Nossa leitura: os Core Web Vitals não vão colocar uma página irrelevante acima de uma relevante, mas podem pesar entre páginas de qualidade parecida, e importam diretamente para os usuários. Uma página de produto que leva cinco segundos para mostrar a foto, ou um botão "Comprar" que trava por meio segundo, perde clientes independentemente da posição. Mire em "bom" nas três, depois pare de perseguir pontos e volte ao conteúdo.

Passo 1: descubra qual métrica falha e onde

Antes de mudar o código:

Nossa verificador de Core Web Vitals gratuito dá uma primeira leitura rápida sem cadastro: ele busca no CrUX o LCP, o INP e o CLS no percentil 75 para visitantes em celular (da página informada, quando o Chrome tem dados suficientes, ou da origem inteira), e mede o tempo de resposta do servidor, o tamanho do HTML, a compressão, os scripts que bloqueiam a renderização no head da página e os formatos de imagem dessa página, por padrão a sua home.

Passo 2: corrija o LCP pelas suas quatro subpartes

O LCP é o tempo até a maior imagem ou bloco de texto da viewport ser renderizado. Os elementos elegíveis incluem <img>, <video>, elementos com imagem de fundo CSS via url() e texto em nível de bloco (LCP no web.dev). Na maioria das páginas de produto e de destino, é a imagem principal (hero).

O guia Optimize LCP divide o LCP em quatro partes que somam o total:

SubparteO que éParticipação-alvo aproximada
Time to First Byte (TTFB)Até chegar o primeiro byte do HTML~40%
Atraso de carregamento do recursoDo TTFB até o navegador começar a carregar a imagem do LCP< 10%
Duração do carregamento do recursoDownload da imagem do LCP~40%
Atraso de renderização do elementoDo fim do download até o elemento ser renderizado< 10%

O web.dev chama essas proporções de "diretrizes, não regras rígidas", mas elas são muito úteis para o diagnóstico. O painel Performance do Chrome DevTools mostra a divisão de um carregamento gravado. A parte que estiver muito acima da sua participação é por onde você começa.

TTFB alto

O TTFB inclui redirecionamentos, configuração da conexão e processamento no servidor. O guia de TTFB do web.dev sugere 0,8 segundo ou menos como meta aproximada, observando que o TTFB não é um Core Web Vital.

Atraso de carregamento do recurso alto

Muitas vezes é a maior subparte e geralmente a mais barata de corrigir. O navegador poderia ter iniciado o download da imagem antes, mas não sabia que ela existia.

Duração do carregamento do recurso alta

Atraso de renderização do elemento alto

A imagem chegou, mas algo impede o navegador de renderizá-la:

Se o LCP é um bloco de texto e não uma imagem, o atraso e a duração de carregamento do recurso são zero, e o problema está no TTFB, em recursos que bloqueiam a renderização ou nas web fonts.

Passo 3: corrija o INP pelas suas três fases

O INP registra cliques, toques e teclas pressionadas durante toda a visita (não rolagem nem hover) e informa a interação mais lenta, ignorando um valor atípico a cada 50 interações (INP no web.dev). Cada interação tem três fases:

FaseO que éCausa típica quando está lenta
Atraso de entrada (input delay)Espera antes de o manipulador de evento poder começarOutro JavaScript ocupa a thread principal
Duração do processamentoExecução dos seus manipuladores de eventoTrabalho demais no manipulador de clique
Atraso de apresentaçãoDos manipuladores concluídos até o próximo frame ser renderizadoDOM grande, layout e renderização pesados

O problema de fundo quase sempre são as tarefas longas: qualquer tarefa que leve mais de 50 milissegundos na thread principal. Enquanto uma tarefa longa roda, o navegador não consegue responder ao usuário.

Reduza o atraso de entrada

Reduza a duração do processamento

Reduza o atraso de apresentação

Para encontrar a interação lenta, olhe primeiro os dados de usuários reais (quais páginas falham) e depois reproduza no Chrome DevTools: grave um trace de Performance clicando no elemento suspeito com a CPU limitada (throttling) e procure tarefas longas depois do clique.

Passo 4: corrija o CLS causa por causa

O CLS soma as mudanças de layout inesperadas. Cada mudança recebe como nota a fração da viewport que se moveu multiplicada pela distância percorrida, as mudanças são agrupadas em janelas de até cinco segundos e o CLS é a pior janela (CLS no web.dev). Mudanças até 500 ms depois de um clique, toque ou tecla pressionada são excluídas, porque o usuário as esperava. A rolagem não conta como interação, então o conteúdo que muda enquanto alguém rola continua contando.

Segundo Optimize CLS, as causas e correções mais comuns:

CausaCorreção
Imagens e vídeos sem dimensõesDefina sempre os atributos width e height, ou aspect-ratio em CSS
Anúncios, embeds e iframesReserve espaço com min-height ou aspect-ratio; mantenha um placeholder se nenhum anúncio carregar
Conteúdo injetado tarde (banners, widgets de avaliação, "produtos relacionados")Reserve espaço, posicione mais abaixo na página ou carregue a partir de uma ação do usuário
Troca de web fontsFaça preload das fontes principais, use font-display: optional ou ajuste a fonte de fallback com size-adjust
Animações de propriedades de layout (top, left, height)Anime transform no lugar
Páginas não restauradas do back/forward cacheTorne as páginas elegíveis ao bfcache

Duas observações da prática:

Não se esqueça do back/forward cache

Quando o usuário clica em Voltar, uma página restaurada do bfcache aparece instantaneamente, sem novas mudanças de layout de carregamento. O web.dev classifica a elegibilidade ao bfcache como uma técnica muito eficaz para manter o CLS baixo. Os dois bloqueadores mais comuns, segundo o guia de bfcache do web.dev: listeners do evento unload (use pagehide no lugar) e o cabeçalho Cache-Control: no-store em páginas que não contêm dados sensíveis. O Chrome DevTools tem um teste em Application › Back/forward cache.

Um exemplo prático (números hipotéticos)

O exemplo a seguir é hipotético, não são dados reais. A Fernwood Home, uma loja online de móveis inventada, está reprovada na avaliação de Core Web Vitals no mobile para o template de página de produto. Os valores de campo no percentil 75:

MétricaAntesStatus
LCP4,6 sRuim
INP340 msPrecisa melhorar
CLS0,21Precisa melhorar

LCP: 4,6 s

Um trace no DevTools com perfil de celular limitado mostra que o elemento do LCP é a foto principal do produto. A divisão:

SubparteAntesParticipaçãoProblema
TTFB1,3 s28%HTML sem cache; todo link de campanha tem parâmetros únicos
Atraso de carregamento do recurso1,6 s35%O script da galeria insere a foto; loading="lazy" em todas as imagens
Duração do carregamento do recurso1,2 s26%JPEG de 2.400 pixels enviado a todos os celulares
Atraso de renderização do elemento0,5 s11%Script síncrono de teste A/B no head

O atraso de carregamento do recurso está mais de três vezes acima da participação-alvo, então ele vem primeiro. As correções: renderizar a primeira foto como um <img> simples no HTML do servidor, remover o loading="lazy" dela, adicionar fetchpriority="high", servir AVIF e WebP em tamanhos de celular via srcset, fazer cache do HTML na CDN ignorando os parâmetros de rastreamento na chave de cache e carregar o script de A/B com defer.

Resultado em laboratório após o lançamento: TTFB 0,7 s, atraso de carregamento 0,2 s, duração do carregamento 0,6 s, atraso de renderização 0,3 s, resultando em um LCP de 1,8 s.

INP: 340 ms

Os dados de campo apontam para a página de produto; reproduzindo no DevTools, a interação lenta é o botão "Adicionar ao carrinho". O trace mostra cerca de 90 ms de atraso de entrada (um widget de chat e duas tags de rastreamento rodando ao mesmo tempo), 190 ms de processamento (o manipulador renderiza de novo todo o painel do carrinho e envia três chamadas de analytics de forma síncrona) e 60 ms de atraso de apresentação.

As correções: carregar o widget de chat só depois da primeira interação do usuário, mostrar primeiro a atualização do painel do carrinho e ceder a thread antes das atualizações de analytics e de recomendações. Medição em laboratório no mesmo perfil limitado: cerca de 150 ms.

CLS: 0,21

Três causas: um widget de estrelas de avaliação inserido acima do preço depois do carregamento, uma troca de web font que reorganiza as quebras de linha do título do produto e miniaturas sem dimensões. As correções: reservar a altura do widget de avaliações, fazer preload da fonte do título e ajustar o fallback com size-adjust, adicionar width e height a cada miniatura. CLS em laboratório: 0,04.

Lendo o resultado

Os números de laboratório confirmam que as correções funcionam. Os números de campo, que decidem a avaliação, se movem à medida que novas visitas substituem as antigas na janela de 28 dias. A Fernwood deve esperar uma mudança gradual ao longo de cerca de quatro semanas e então clicar em Start tracking no relatório do Search Console para iniciar a validação, que também dura 28 dias. Se o LCP de campo ficar em, digamos, 2,3 s em vez de 1,8 s, isso é normal: celulares e redes reais são mais lentos que qualquer perfil de laboratório.

Erros comuns

Um checklist inicial de uma hora

Os Core Web Vitals são uma parte da saúde técnica do site. Nosso guia de auditoria de SEO técnico os coloca em contexto com rastreamento, indexação, redirecionamentos e dados estruturados.

Como o Searvia ajuda com os Core Web Vitals

O verificador de Core Web Vitals gratuito não exige cadastro e mostra, em menos de um minuto, o panorama de usuários reais do seu site. Dentro do Searvia, a aba Page speed de um projeto de site roda o PageSpeed Insights nas suas páginas mais visitadas toda semana e mostra tanto as notas de laboratório quanto os dados de usuários reais do Chrome para LCP, INP e CLS dos últimos 28 dias. As correções são ordenadas pelo tempo que economizam, e Write a fix plan for my files with AI transforma os principais itens em mudanças passo a passo para a sua stack (3 créditos). Conecte o Search Console para ver cliques e posições ao lado da velocidade e saber se um template mais rápido realmente trouxe mais tráfego. O guia de ajuda sobre velocidade da página explica a configuração em cerca de dois minutos.

Perguntas frequentes

Quais são os limites dos Core Web Vitals?
O Largest Contentful Paint (LCP) é bom em 2,5 segundos ou menos e ruim acima de 4 segundos. O Interaction to Next Paint (INP) é bom em 200 milissegundos ou menos e ruim acima de 500 milissegundos. O Cumulative Layout Shift (CLS) é bom em 0,1 ou menos e ruim acima de 0,25. O Google mede cada um no percentil 75 dos carregamentos reais de página, separadamente para mobile e desktop, e uma página só passa quando as três métricas estão boas.
Os Core Web Vitals afetam o ranqueamento no Google?
Sim, mas de forma modesta. O Google afirma que os Core Web Vitals são usados por seus sistemas de ranqueamento e recomenda obter boas notas, mas também diz que não existe um sinal único de experiência da página, que sempre busca mostrar o conteúdo mais relevante mesmo que a experiência da página seja ruim e que boas notas não garantem as primeiras posições. Trate-os como critério de desempate e como uma questão de conversão, não como substituto de conteúdo relevante.
Por que os números do PageSpeed Insights e do Search Console são diferentes?
Muitas vezes eles mostram coisas diferentes. O PageSpeed Insights mostra dados de campo de uma URL (ou da origem inteira quando a URL tem poucos dados) mais um teste de laboratório do Lighthouse a partir de um único carregamento simulado. O Search Console agrupa URLs semelhantes e dá a cada grupo o status da sua pior métrica. Ambos usam os mesmos dados do Chrome User Experience Report dos últimos 28 dias, mas a nota de laboratório é uma simulação separada e frequentemente difere do que os usuários reais vivenciam.
Por que o Lighthouse não mostra o INP?
O INP mede a rapidez com que a página responde a cliques, toques e teclas pressionadas reais, e um carregamento simulado não tem nenhum usuário para interagir com ela. A documentação do Google diz que ferramentas de laboratório como o Lighthouse não conseguem medir o INP e sugere o Total Blocking Time como aproximação em laboratório. Para ver o INP, use dados de campo do Chrome User Experience Report, do PageSpeed Insights ou do Search Console, ou grave você mesmo uma interação no Chrome DevTools.
Quanto tempo leva para as correções de Core Web Vitals aparecerem?
Os dados de campo são uma média móvel de 28 dias, então a correção aparece gradualmente: alguns dias após o deploy os números começam a se mexer, e o efeito completo aparece após cerca de quatro semanas. No Search Console, clicar em Start tracking em um problema inicia um período de validação de 28 dias. Verifique seus resultados de laboratório logo após o deploy para confirmar que a correção funciona e depois aguarde os dados de campo.

Fontes

  1. Web Vitals – web.dev
  2. Understanding Core Web Vitals and Google search results – Google Search Central
  3. Understanding page experience in Google Search results – Google Search Central
  4. Interaction to Next Paint becomes a Core Web Vital on March 12 – web.dev
  5. Largest Contentful Paint (LCP) – web.dev
  6. Optimize Largest Contentful Paint – web.dev
  7. Interaction to Next Paint (INP) – web.dev
  8. Optimize Interaction to Next Paint – web.dev
  9. Optimize long tasks – web.dev
  10. Cumulative Layout Shift (CLS) – web.dev
  11. Optimize Cumulative Layout Shift – web.dev
  12. Back/forward cache – web.dev
  13. Time to First Byte (TTFB) – web.dev
  14. The most effective ways to improve Core Web Vitals – web.dev
  15. About PageSpeed Insights – Google for Developers
  16. CrUX API – Chrome for Developers
  17. Core Web Vitals report – Search Console Help

Continue lendo