Lighthouse CI no pipeline de PR: configuração completa
Automatize auditorias de performance em cada pull request para nunca regredir em CWV sem ser alertado.
O problema da performance sem guardas
Sem enforcement automático, degradações de performance chegam à produção silenciosamente. Um bundle ligeiramente maior aqui, uma imagem sem lazy-load ali — em semanas o LCP piora sem que ninguém tenha recebido um alerta.
O Lighthouse CI resolve isso adicionando uma etapa de auditoria ao pipeline que bloqueia o merge quando os scores caem abaixo dos thresholds definidos pelo time.
Instalação e configuração inicial
Instale o `@lhci/cli` como devDependency e crie o arquivo `lighthouserc.js` na raiz do projeto. A configuração define quais URLs auditar, quantas execuções (para estabilidade estatística) e os assertions — os limites que vão reprovar o build.
Use pelo menos 3 runs por URL para obter resultados estáveis. O Lighthouse tem variância intrínseca; a mediana de 3 execuções é muito mais confiável que um único run.
// lighthouserc.js
module.exports = {
ci: {
collect: {
url: ['http://localhost:3000/', 'http://localhost:3000/sobre'],
numberOfRuns: 3,
},
assert: {
assertions: {
'categories:performance': ['error', { minScore: 0.9 }],
'categories:accessibility': ['error', { minScore: 0.95 }],
'first-contentful-paint': ['warn', { maxNumericValue: 2000 }],
'largest-contentful-paint': ['error', { maxNumericValue: 3000 }],
'cumulative-layout-shift': ['error', { maxNumericValue: 0.1 }],
},
},
upload: {
target: 'temporary-public-storage',
},
},
}Integrando ao GitHub Actions
O workflow precisa subir a aplicação antes de rodar o LHCI. Configure o job para fazer o build, servir localmente com `serve` ou `vite preview`, e então executar `lhci autorun`. O resultado vai como status check no PR.
Para projetos Next.js ou apps com SSR, use o `server-command` do LHCI para subir o servidor de produção. Para SPAs com Vite, `vite build && vite preview` é suficiente.
Atenção
Nunca rode o LHCI contra a branch de produção diretamente. Sempre contra um servidor temporário levantado no próprio runner para evitar interferência com usuários reais.
Portodev Studio
Consultoria e engenharia digital · Set 2026
Continue lendo
7 min de leitura · Out 2026
Agente de IA no WhatsApp: o que dá para automatizar (e o que não dá)
Um agente de IA no WhatsApp pode responder dúvidas, qualificar contatos e agendar horários a qualquer hora. Mas não é mágica: veja onde ele funciona bem, onde precisa de um humano e como começar com um piloto pequeno.
Ler o guia12 min de leitura · Set 2026
Medindo Core Web Vitals em produção com React
Instrumentar métricas reais de usuário vai muito além de rodar o Lighthouse localmente. Veja como coletar LCP, CLS e INP diretamente do campo.
Ler o artigo7 min de leitura · Out 2026
Quanto custa um site lento (e como descobrir no seu caso)
Lentidão não aparece no extrato, mas aparece no funil: visita que desiste antes de carregar, formulário que não é enviado, anúncio pago que leva a uma tela em branco. Veja como medir o custo no seu site.
Ler o guiaEsses padrões no seu produto.
Em 30 minutos mapeamos como esses conceitos se aplicam ao contexto do seu projeto real.