Lighthouse e PageSpeed Insights

TL;DR

Lighthouse é o motor de auditoria de laboratório do Google — embutido no DevTools do Chrome — que carrega sua página em condições simuladas e cospe um score de performance de 0 a 100, além de diagnósticos acionáveis. PageSpeed Insights (PSI) é o site que roda o Lighthouse na nuvem e junta os dados de campo do CrUX na mesma tela. Duas armadilhas dominam o uso: (1) o score é lab, não o que o Google ranqueia; (2) o score usa TBT como proxy de responsividade, não o INP. Use a ferramenta para depurar e comparar, lendo os diagnósticos — não para colecionar o número 100.

O problema: você tem os conceitos, falta a ferramenta

Nas notas anteriores você aprendeu o que medir (LCP, INP, CLS) e a diferença entre lab e campo. Mas onde você esses números pela primeira vez? Como transforma “preciso melhorar o LCP” em “o LCP está alto por causa desta imagem neste recurso”?

A resposta, para 90% dos desenvolvedores, é o Lighthouse — provavelmente a ferramenta de performance mais usada do mundo, porque já vem instalada no Chrome. Abrir o DevTools, clicar em “Lighthouse”, “Analyze”, e em 20 segundos você tem um relatório. O problema é que esse relatório é fácil de rodar e fácil de ler errado — e ler errado leva a otimizar a coisa errada.

O que o Lighthouse faz

Quando você roda o Lighthouse, ele carrega sua página num ambiente sintético e controlado: um perfil de CPU e de rede simulados (por padrão, algo próximo de um celular de gama média numa 4G lenta), cache limpo, sem extensões. Ele mede a página desse carregamento e produz cinco métricas, que combina num único score de 0 a 100.

Aqui está o detalhe que quase ninguém sabe e que muda como você prioriza — quanto cada métrica pesa no score (Lighthouse 12, 2024):

MétricaPesoO que é
TBT — Total Blocking Time30%Tempo total em que a thread principal ficou bloqueada (proxy de responsividade)
LCP — Largest Contentful Paint25%Quando o maior conteúdo apareceu
CLS — Cumulative Layout Shift25%Quanto o layout pulou
FCP — First Contentful Paint10%Quando o primeiro pixel de conteúdo apareceu
Speed Index10%Quão rápido o conteúdo é preenchido visualmente

Três métricas — TBT, LCP e CLS — respondem por 80% do score. Se você quer mover o número, é nelas que você mexe. FCP e Speed Index são secundárias.


graph LR
    A[Lighthouse roda a página] --> B[TBT 30%]
    A --> C[LCP 25%]
    A --> D[CLS 25%]
    A --> E[FCP 10%]
    A --> F[Speed Index 10%]
    B --> G[Score 0-100]
    C --> G
    D --> G
    E --> G
    F --> G
    B -.proxy de.-> H["INP (campo)"]
    style B fill:#4A90D9,color:#fff
    style C fill:#4A90D9,color:#fff
    style D fill:#4A90D9,color:#fff
    style G fill:#F5A623,color:#000

O que o PageSpeed Insights adiciona

O PageSpeed Insights (pagespeed.web.dev) é o Lighthouse rodando num servidor do Google — mas com um bônus decisivo: ele mostra, lado a lado, os dois mundos.

  • No topo, os Core Web Vitals de campo (dados reais do CrUX, dos últimos 28 dias, no percentil 75). É a seção que diz se você passa na avaliação do Google. Vem com um selo verde/amarelo/vermelho por métrica.
  • Embaixo, o relatório de laboratório (o Lighthouse), com o score e os diagnósticos.

Essa separação visual é a lição da nota 03 materializada numa tela só. A parte de cima é a verdade do usuário e do ranking; a parte de baixo é a sua bancada de depuração.

Frescor: versões e UI mudam rápido

Os pesos do score mudam entre versões maiores do Lighthouse (o TBT nem sempre pesou 30%; versões antigas davam mais peso ao FCP). A UI do PSI e do DevTools também é redesenhada com frequência. Ao citar um peso ou um passo de menu num relatório, grave a versão do Lighthouse (aparece no rodapé do relatório) e confirme em developer.chrome.com/docs/lighthouse. Este texto reflete o Lighthouse 12 (2024).

Como ler o relatório sem se enganar

O erro clássico é olhar só o número grande e colorido no topo. O valor real do Lighthouse está abaixo, em duas seções:

  1. Diagnostics / Opportunities — a lista de problemas concretos e quanto tempo cada correção economizaria (“Elimine recursos que bloqueiam a renderização — economia estimada de 1,2 s”, “Sirva imagens em formatos de próxima geração”, “Reduza o JavaScript não utilizado”). É aqui que o relatório vira plano de ação.
  2. A trilha de causa — cada oportunidade aponta o recurso específico (aquele .js de 400 KB, aquela imagem de 2 MB). Isso conecta a métrica ruim à causa concreta que você vai atacar nos Galhos 2 e 3.

Perseguir o 100 no Lighthouse

O que acontece: o time investe semanas para tirar o score de 92 para 100 e comemora — mas o ranking e a conversão não mudam. Por quê: o score é lab (uma simulação) e comprime cinco métricas num número. Os últimos pontos costumam vir de micro-otimizações que não afetam o p75 real dos usuários. O Google ranqueia pelo campo (CrUX), não pelo score. Como evitar: trate o score como um termômetro de tendência, não como meta. A meta é o campo verde no topo do PSI. Use os diagnósticos do Lighthouse para chegar lá; ignore a corrida pelos últimos pontos do score.

Rodar uma vez e confiar no número

O que acontece: você roda o Lighthouse, dá 78, roda de novo, dá 91 — e não sabe em qual acreditar. Por quê: o lab é sensível a ruído da sua máquina (outras abas, CPU ocupada, rede momentânea). Uma única execução é uma amostra barulhenta. Como evitar: rode 3–5 vezes e olhe a mediana, ou use o PSI (que roda num ambiente mais estável que seu laptop). Para comparações antes/depois, mantenha as condições idênticas.

Lighthouse e PSI em uma frase: o Lighthouse é sua bancada de depuração lab (score de 0–100 dominado por TBT, LCP e CLS, com o TBT servindo de proxy pro INP), e o PageSpeed Insights o embrulha com os dados de campo do CrUX — mas quem manda no ranking é o campo, não o score.

Como explicar em inglês

“Lighthouse is Google’s lab auditing engine, built into Chrome DevTools. It loads your page under simulated conditions and gives a 0-to-100 performance score, plus actionable diagnostics. The key thing to understand is the weighting: in Lighthouse 12, TBT is 30%, LCP and CLS are 25% each — so three metrics drive 80% of the score. And critically, Lighthouse can’t measure INP directly because that needs real interactions, so it uses Total Blocking Time as a lab proxy. PageSpeed Insights runs Lighthouse in the cloud and pairs it with field data from CrUX, so you see both worlds on one screen. My rule: the score is for debugging and comparison — I chase the field data at the top, not the number 100.”

PTEN
Auditoria de laboratórioLab audit
Pontuação / notaScore
Oportunidades / diagnósticosOpportunities / diagnostics
Recurso que bloqueia a renderizaçãoRender-blocking resource
Proxy de laboratórioLab proxy
Tempo total de bloqueioTotal Blocking Time (TBT)
Termômetro de tendênciaTrend gauge

O que vem a seguir

O PSI te deu uma amostra de campo (o CrUX) misturada ao lab. Mas de onde vem esse dado de campo, exatamente? Quem o coleta, com que frequência, e por que ele — e não o seu score — é o que decide o ranking? Essa é a próxima peça.

Fontes

  • Chrome for DevelopersLighthouse performance scoring — a documentação oficial dos pesos do score e do cálculo.
  • web.dev (Google)Total Blocking Time — por que o TBT existe e como ele se relaciona com a responsividade (INP).
  • PageSpeed Insightspagespeed.web.dev — a ferramenta que combina Lighthouse (lab) e CrUX (field) na mesma análise.