Desenvolvimento Web14/09/2026Núcleo de Tecnologia Aplicada6 min de leituraAtualizado em 23/09/2026

INP ruim no site: encontre a interação lenta além do PageSpeed

Aprenda a ligar CrUX e RUM ao DevTools, separar as três fases do INP e validar a correção da interação que trava a interface.

Notebook em uma mesa com métricas Core Web Vitals e uma linha do tempo de interações no DevTools, ao lado de ícones de investigação e conclusão.

Um INP alto no PageSpeed Insights indica dificuldade de resposta percebida por usuários reais, mas não revela, sozinho, qual clique, toque ou tecla atrasou a interface. O diagnóstico útil começa nos dados de campo, passa pela identificação da interação responsável e só então chega ao rastreamento no Chrome DevTools. O objetivo é corrigir a etapa que mais consome tempo e voltar a medir, não perseguir uma pontuação isolada.

Entenda o INP antes de procurar o defeito

Interaction to Next Paint (INP) acompanha cliques, toques e entradas pelo teclado ao longo da visita e considera a latência da interação mais lenta, com tratamento de valores extremos quando há muitas interações. No relatório agregado de campo, a referência é o percentil 75 das visitas, analisado separadamente para dispositivos móveis e computadores. Até 200 ms é bom; acima de 200 ms e até 500 ms precisa melhorar; acima de 500 ms é ruim. O intervalo inclui a espera para processar a entrada, os manipuladores de eventos e a apresentação do próximo quadro, não a conclusão de todas as operações assíncronas posteriores. Definição oficial do INP.

Uma auditoria de carregamento pode apresentar Total Blocking Time (TBT), que ajuda a encontrar trabalho bloqueante no laboratório, mas TBT não substitui INP. Sem executar a interação problemática, um teste sintético pode não reproduzir a lentidão relatada em campo. Relação entre TBT e INP.

1. Delimite o problema com CrUX e PageSpeed

Abra o PageSpeed Insights na URL afetada e consulte primeiro os dados de usuários reais do Chrome UX Report (CrUX). Confira se o resultado é da URL ou apenas da origem, e compare celular e computador: um dado agregado do domínio não prova que aquela página específica esteja lenta. A janela de dados do PageSpeed/CrUX é móvel, de 28 dias; por isso uma correção de hoje não altera imediatamente o indicador agregado. Metodologia e ferramentas CrUX.

Registre o segmento afetado, as páginas ou modelos de página prioritários e o período observado. Se não houver amostra suficiente para a URL, use o dado de origem como sinal inicial, nunca como localização exata do problema. O número indica onde investigar, não qual função corrigir. Roteiro oficial de otimização.

2. Descubra qual interação está lenta com RUM

Implemente ou consulte monitoramento de usuários reais (RUM). A versão com atribuição da biblioteca web-vitals pode informar o elemento e tipo da interação, se ela ocorreu durante ou depois do carregamento e os tempos de input delay, processing duration e presentation delay. Dados da API Long Animation Frames (LoAF), quando disponíveis, ajudam a apontar tarefas e scripts associados. Guia de coleta e atribuição em campo.

  1. Agrupe registros por rota ou modelo de página, dispositivo e interação, como abrir menu, aplicar filtro ou adicionar ao carrinho.
  2. Compare frequência e duração das interações lentas; não investigue apenas o maior evento isolado.
  3. Registre a fase predominante e se o problema ocorre no carregamento ou após a página estabilizar.
  4. Respeite a privacidade: colete metadados técnicos necessários, sem conteúdo digitado, credenciais ou dados pessoais de formulários.

Exemplo: se o agrupamento aponta repetidamente para o botão de filtro em celulares após o carregamento, reproduza essa ação. Um INP agregado de origem, por si só, não autoriza atribuir a culpa ao filtro.

3. Reproduza a ação no Chrome DevTools

  1. Abra a página e a mesma rota, estado, quantidade de itens e tipo de dispositivo identificados no campo; considere extensões, scripts de terceiros e condições de rede.
  2. No painel Performance, observe as métricas em tempo real e a lista de interações. Execute o gesto suspeito; se ele depende do carregamento, repita enquanto a página ainda inicia.
  3. Grave um trace durante a ação. Use a faixa Interactions, selecione a interação lenta e confira a decomposição e o instante da ocorrência.
  4. Examine a faixa Main e o encadeamento de chamadas. O insight INP breakdown, quando disponível, destaca as três fases. Repita com limitação de CPU para explorar condições de aparelhos menos potentes.
  5. Compare o que o trace mostra com a hipótese do RUM; uma execução local rápida não invalida dados de campo de aparelhos e condições diferentes.

O DevTools marca interações acima de 200 ms na faixa Interactions. O objetivo do trace não é somente localizar uma barra comprida, mas conectá-la ao gesto e ao trabalho que impediu a próxima pintura. Referência do painel Performance; Insight INP breakdown.

4. Separe as três fases e escolha a intervenção

A interação pode ficar lenta antes, durante ou depois da execução de seus manipuladores. Use a fase dominante como hipótese técnica e confirme a causa no trace. Fases do INP.

Fase no trace Sinal típico Investigação e correção possíveis
Input delay O clique aguarda a thread principal. Procure tarefas anteriores, avaliação de JavaScript, inicialização, timers ou terceiros. Reduza código inicial, adie trabalho não essencial e quebre tarefas longas.
Processing duration O handler demora a terminar. Inspecione a pilha de chamadas do evento, loops, filtros, serialização e renderização síncrona da aplicação. Reduza trabalho por evento e separe o essencial do adiável.
Presentation delay O handler terminou, mas o próximo quadro demora. Investigue recálculo de estilo, layout, pintura e DOM excessivo. Evite leituras e escritas intercaladas que forçam layout; diminua o trabalho visual da atualização.

Não trate as fases como diagnósticos automáticos: por exemplo, um botão pode ter input delay elevado por um script que começou antes do clique, mesmo que seu próprio handler seja curto. Atribuição e trace precisam confirmar a hipótese. Leitura oficial das subpartes.

5. Corrija o fluxo, não apenas a medição

Se a thread principal está ocupada, divida tarefas longas e priorize o retorno visual. A técnica de ceder execução, como scheduler.yield() onde houver suporte e alternativa nos demais navegadores, pode abrir oportunidade para entrada e pintura entre blocos de trabalho. Não adie a mudança visual indispensável ao usuário apenas para melhorar a medição. Guia de tarefas longas.

Se o handler processa uma lista grande a cada tecla, reduza o trabalho síncrono, avalie debounce quando compatível com a interação e distribua o cálculo custoso. Se o gargalo é apresentação, simplifique alterações no DOM e o trabalho de estilo/layout. Se é um terceiro, meça seu custo e avalie carregamento e necessidade antes de removê-lo indiscriminadamente. Orientações de correção por fase.

Ofereça feedback inicial coerente para operações demoradas, como mostrar o estado do botão antes de iniciar trabalho secundário. INP mede a oportunidade de exibir o próximo quadro, não a duração total de uma requisição ao servidor. Escopo da medição.

6. Valide no laboratório e acompanhe novamente o campo

  1. Repita o mesmo fluxo no mesmo perfil de teste e compare a fase dominante antes e depois.
  2. Verifique que o resultado visual, a acessibilidade, a navegação por teclado e o comportamento funcional continuam corretos.
  3. Acompanhe RUM por rota, interação e dispositivo para confirmar se a melhora aparece em sessões reais e se outro gesto passou a dominar o INP.
  4. Observe a tendência do percentil 75 no CrUX/PageSpeed ao longo da janela móvel de 28 dias; não exija queda imediata após o deploy.

O sinal de sucesso é a redução consistente da latência da interação real sem regressão funcional. Use o PageSpeed como verificação agregada, não como substituto do diagnóstico de campo e do trace. Janela de dados CrUX.

Erros que atrasam a investigação

  • Tomar o dado de origem como prova de que a URL atual é a culpada.
  • Confiar somente no resultado de carregamento do Lighthouse ou confundir TBT com INP.
  • Otimizar qualquer tarefa longa sem saber se ela antecede ou integra a interação problemática.
  • Testar apenas em um computador rápido quando os dados ruins vêm de celulares.
  • Comparar resultados de laboratório e campo sem considerar diferenças de aparelho, tráfego, interação e janela de observação.

A sequência prática é CrUX/RUM → interação → input delay, processamento ou presentation delay → trace → correção → nova medição. Ela transforma um indicador amplo em uma hipótese verificável. Fluxo recomendado pelo web.dev.

Tópicos deste artigoChrome DevToolsCore Web VitalsCrUXdesempenho webINPPageSpeed InsightsRUMINP ruim no sitediagnóstico de INPinteração lentainput delayprocessing durationpresentation delayotimização web