DocsMétricasWeb Vitals

Web Vitals: LCP, FCP, TTFB, CLS, INP

As cinco métricas que o Google usa pra rankear seu site. Esse guia explica o que cada uma mede, qual o limite entre "bom" e "ruim", e o que efetivamente causa um score ruim em cada caso.

Por que importa. Desde 2021 o Google usa Core Web Vitals como sinal de ranking em busca mobile. Sites com vitais ruins perdem posição mesmo com conteúdo de qualidade. E PageSpeed Insights na sua máquina não é o que o Google vê — o Google usa CrUX (Chrome User Experience Report), dados de visitantes reais. O Radar mede o mesmo: RUM (Real User Monitoring), não simulação.

Resumo das 5 métricas

MétricaMedeBomRuimCore Web Vital?
LCPTempo até o conteúdo principal aparecer≤ 2.5s> 4.0sSim
INPLatência de interação (clique, tecla)≤ 200ms> 500msSim (substituiu FID em 03/2024)
CLSQuanto a página "pula" ao carregar≤ 0.1> 0.25Sim
FCPTempo até o primeiro pixel ser pintado≤ 1.8s> 3.0sDiagnóstico (não rankeia)
TTFBTempo de resposta do servidor≤ 800ms> 1800msDiagnóstico (não rankeia)

LCP Core Web Vital

Largest Contentful Paint. Tempo entre o início do load e o momento em que o maior elemento visível (geralmente uma imagem, vídeo ou bloco de texto grande) aparece na tela.

Bom≤ 2.5s
Precisa melhorar2.5–4.0s
Ruim> 4.0s

Causas comuns de LCP ruim

Como melhorar LCP

  1. Identifique o elemento LCP no Radar (painel Vitals → URL com pior LCP).
  2. Se for imagem: converta pra WebP/AVIF, sirva com srcset responsivo, adicione fetchpriority="high" e loading="eager".
  3. Se for texto: garanta font-display: swap nas @font-face e preload da fonte (<link rel="preload" as="font">).
  4. Habilite cache do servidor (WP Rocket, LiteSpeed, Cloudflare APO) — derruba TTFB.
  5. Inline o CSS crítico above-the-fold; deixe o resto async.

INP Core Web Vital (substituiu FID em 03/2024)

Interaction to Next Paint. Latência da pior interação do usuário durante toda a vida da página — o tempo entre o usuário tocar/clicar/teclar e o próximo frame visualmente atualizado. Substituiu o FID porque mede TODAS as interações, não só a primeira.

Bom≤ 200ms
Precisa melhorar200–500ms
Ruim> 500ms

Causas comuns de INP ruim

Como melhorar INP

  1. No Radar (painel Vitals), procure URLs com INP alto + alto volume de interação — geralmente forms, search, filtros.
  2. Use requestIdleCallback ou setTimeout(fn, 0) pra quebrar long tasks.
  3. Defer scripts de terceiros pra depois do load event.
  4. Em React: useMemo, useCallback, React.memo em componentes pesados.
  5. Reduza tamanho do DOM. Virtualize listas longas.
  6. Habilite "Throttle CPU 4x" no DevTools pra reproduzir o problema localmente.

CLS Core Web Vital

Cumulative Layout Shift. Quanto o conteúdo da página "pula" sem ação do usuário. Score acumulado: cada deslocamento de layout soma uma fração proporcional à área afetada × distância do shift. Sem unidade — quanto mais perto de 0, melhor.

Bom≤ 0.1
Precisa melhorar0.1–0.25
Ruim> 0.25

Causas comuns de CLS ruim

Como melhorar CLS

  1. Sempre defina width e height em <img> e <iframe> (o aspect-ratio é calculado automaticamente desde 2020).
  2. Reserve espaço pra ads/embeds com CSS (min-height).
  3. Use font-display: optional ou preload da fonte pra evitar swap visível.
  4. Cookie banner em bottom, não top — ou modal que NÃO empurra conteúdo.
  5. Pra animações, use transform/opacity em vez de mudar top/left/height.

FCP Diagnóstico

First Contentful Paint. Tempo até o primeiro pixel de conteúdo (texto, imagem, SVG) ser pintado. Não é Core Web Vital (não rankeia diretamente) mas é diagnóstico chave: se FCP é alto, LCP também vai ser.

Bom≤ 1.8s
Precisa melhorar1.8–3.0s
Ruim> 3.0s

Causas comuns de FCP ruim

Como melhorar FCP

  1. Otimize TTFB primeiro (ver abaixo).
  2. Inline critical CSS (above-the-fold) no <head>; defira o resto.
  3. Adicione async ou defer em todo <script>.
  4. Evite redirects: link direto pro destino final.
  5. Habilite compressão (gzip/brotli) no servidor.

TTFB Diagnóstico

Time to First Byte. Tempo entre o request HTTP sair do browser e o primeiro byte da resposta chegar. Mede só a latência do servidor + rede — não inclui parse, render, nada.

Bom≤ 800ms
Precisa melhorar800–1800ms
Ruim> 1800ms

Causas comuns de TTFB ruim

Como melhorar TTFB

  1. Habilite cache full-page (WP Rocket, LiteSpeed Cache, W3 Total Cache, Cloudflare APO).
  2. Migre pra hosting com PHP-FPM dedicado ou serverless (Cloudways, Kinsta, WP Engine).
  3. Limpe transients órfãos: DELETE FROM wp_options WHERE option_name LIKE '_transient_%' (faça backup primeiro).
  4. Cloudflare na frente do site — caching de assets + edge cache de HTML reduz TTFB pra < 100ms.
  5. Audite plugins com Query Monitor — qualquer um adicionando > 50ms é candidato a remover.

Como o Radar mede

O pixel JS do Radar usa a PerformanceObserver API nativa do browser pra capturar os valores reais que o visitante experimentou — exatamente o mesmo método que o Google usa pro CrUX dataset.

Lendo o painel Vitals do dashboard

Em /dashboard/site/<id>/v2/vitals:

Recipes de alerta sugeridos

Em Alertas, criar regras pra ser avisado quando vitais regridem:

FAQ

Por que meu PageSpeed Insights dá outro número?

PageSpeed Insights tem dois modos:

Use Field Data pra comparar com Radar. Diferenças pequenas (~10%) são normais porque CrUX agrega últimos 28 dias e Radar mostra o range selecionado.

E se meu site não tem visitantes humanos suficientes?

Vitals dependem de RUM. Se o site recebe < 100 visitantes humanos por dia, o p75 vai ter ruído. Use o intervalo de 30d ou 90d (Pro+) pra ter sample size maior. Alternativa: rode auditorias Lighthouse periódicas localmente como complemento — mas saiba que Lighthouse não rankeia.

FID ainda aparece em algum lugar?

Não. O Google substituiu FID por INP em março de 2024. O Radar reporta só INP, alinhado com o critério atual de ranking.

Web Vitals importam pra SEO em sites pequenos?

Importam pra qualquer site que dependa de busca orgânica. O peso de Core Web Vitals no ranking é menor que conteúdo e links, mas em SERPs disputadas pode ser desempate. E uma página lenta tem bounce rate alto, o que indiretamente afeta ranking via comportamento.

O Radar mede Vitals em conexão mobile lenta?

O Radar reporta o que o visitante real experimentou — se ele acessou de 3G, o Vital reflete isso. Não há simulação. Em mobile típico (4G urbano) os números são naturalmente piores que desktop. Compare mobile contra mobile.