Glossário

Como o Interaction to Next Paint pontua o seu pior clique

Taras Shynkarenko
Taras Shynkarenko
Atualizado: 9 min de leitura
Como o Interaction to Next Paint pontua o seu pior cliqueComo o Interaction to Next Paint pontua o seu pior clique

TL;DR, Resposta rápida

9 min de leitura

O Interaction to Next Paint mede a duração completa da pior interação de uma página, do clique, do toque ou da tecla pressionada até o frame seguinte ser pintado, repartida entre input delay, processing duration e presentation delay. O Chrome classifica como bom em 200ms ou menos e como ruim acima de 500ms, lido no percentil 75. Substituiu o First Input Delay como Core Web Vital em 12 de março de 2024.

O que é INP (Interaction to Next Paint)?

O Chrome mede o Interaction to Next Paint como a duração da pior interação de uma página, cronometrada do momento em que um visitante clica, toca ou pressiona uma tecla até o momento em que o navegador pinta o frame que mostra o resultado. A métrica cobre a ida e volta inteira: a espera antes de um manipulador de eventos começar, o tempo de execução do próprio manipulador e o trabalho de renderização que vem depois. Instrumente com a biblioteca web-vitals ou com qualquer coletor de campo, e depois leia por rota.

O Chrome conta cliques de mouse, toques em tela sensível ao toque e teclas pressionadas em teclados físicos ou de tela, e rolagem, hover e zoom não produzem amostra de INP nenhuma, segundo a definição da métrica publicada pelo time do Chrome no web.dev (acessada em setembro de 2026). O INP é o único dos três Core Web Vitals que pontua a capacidade de resposta depois de a página ter carregado, e ele não reporta nada até pessoas reais clicarem em coisas, então o número sobre o qual o Google age vem do monitoramento de usuários reais, o real user monitoring, em p75.

Quais são as três fases de uma interação?

Toda interação se divide em input delay (a espera antes do manipulador), processing duration (a execução do manipulador) e presentation delay (a renderização até o frame), e o INP é a soma das três. Cada fase tem um dono diferente dentro do navegador, então um número de INP sozinho não diz nada até você separá-lo.

FaseComeça quandoTermina quandoO que está queimando o tempo
Input delayO visitante clica, toca ou pressiona uma teclaO primeiro callback do evento começa a rodarThread principal já ocupada com avaliação de scripts, timers, outros manipuladores
Processing durationO primeiro callback do evento começaO último callback terminaO seu próprio código de manipulador, atualizações de estado do framework, trabalho síncrono
Presentation delayO último callback terminaO navegador pinta o frame seguinteRecálculo de estilos, layout, paint, tamanho do DOM

A fórmula é uma soma direta:

INP = input delay + processing duration + presentation delay

Um exemplo resolvido. Um visitante toca um chip de filtro em uma listagem de produtos e espera 620ms até a grade mudar:

620ms = 180ms input delay + 90ms processing duration + 350ms presentation delay

O instinto é otimizar o manipulador, e o manipulador é a menor fatia, com 90ms. O presentation delay fica com 56 por cento da interação, então a correção está na renderização: o filtro renderiza de novo 3,000 nós da grade e força um recálculo de estilos completo. Corte o DOM que a interação toca e os 350ms desabam. Reescrever o manipulador economiza 90ms na melhor das hipóteses e sozinho não chega a 200ms.

Um toque, três atrasos
Atraso de entrada180ms
Duração de processamento90ms
Atraso de apresentação350ms
Um toque de 620 ms em um chip de filtro, dividido em suas três fases.

O que é uma boa pontuação de INP?

Os limites do Chrome colocam bom em 200ms ou menos e ruim acima de 500ms, medidos no percentil 75 das visualizações de página e separados por celular e desktop. O time do Chrome publica esses cortes no web.dev, sem mudança até setembro de 2026.

INP em p75Veredito
200ms ou menosBom
Acima de 200ms até 500msPrecisa melhorar
Acima de 500msRuim

Duzentos milissegundos são um orçamento apertado assim que você divide em três, e a fase que estoura a parte dela primeiro é a que você tem que atacar. Meça a divisão antes de tocar em código: uma caixa de busca falha no processing, uma grade de rolagem infinita falha na presentation.

Por que o INP substituiu o FID, e por que o FID favorecia os sites?

O Google tornou o INP um Core Web Vital em 12 de março de 2024, substituindo o First Input Delay, e o suporte ao FID terminou em 9 de setembro de 2024 (web.dev, time do Chrome). O FID media uma única coisa estreita: o atraso de entrada antes de o primeiro manipulador de eventos da página conseguir começar. Ele nunca cronometrou o manipulador, e nunca cronometrou o paint que vinha depois.

First Input DelayInteraction to Next Paint
Qual interaçãoSó a primeiraA pior da página
Quais fasesSó o input delayInput delay, processing, presentation
Bom em p75100ms ou menos200ms ou menos
StatusAposentado em 9 de setembro de 2024Core Web Vital desde 12 de março de 2024

O FID favorecia os sites por duas razões. A primeira interação de uma página é barata para a maioria dos visitantes: fechar um aviso de cookies, colocar o foco em um campo de busca, tocar em aceitar num diálogo de consentimento. As interações caras chegam depois, quando o visitante já se comprometeu com a página, e o FID nunca olhou para elas.

O FID também parava o cronômetro antes de o seu código rodar, então um manipulador de filtro que bloqueava a thread principal por 900ms tirava um FID perfeito enquanto o navegador conseguisse entrar rápido no manipulador. O web.dev diz de forma explícita que contar o tempo de processamento no FID poderia ter empurrado desenvolvedores a embrulhar a lógica do manipulador em um callback assíncrono, tirando ela da tarefa medida sem ajudar a pessoa que espera. O INP fecha os dois buracos.

Qual interação o INP reporta quando uma página tem centenas?

O Chrome reporta a pior interação da página, com uma folga para valores atípicos em páginas movimentadas. Em páginas com 50 interações ou menos, a mais alta vira o INP da página. Acima de 50, o Chrome separa uma interação alta a cada 50 registradas, então uma sessão com 130 interações descarta as duas mais altas e reporta a seguinte.

Duas agregações se empilham aqui, e confundi-las é um erro comum de triagem: a regra da pior interação escolhe um número por visualização de página, e depois o percentil 75 entre as visualizações de página escolhe um número por URL. Leia essa distribuição do jeito que você lê o Largest Contentful Paint, com p75 ao lado de p90 e a contagem de amostras.

Flowsery
Flowsery

Teste gratuito

Painel em tempo real

Rastreamento de metas

Rastreamento sem cookies

Uma pessoa toca na tela do celular enquanto uma grade de produtos carrega, o tipo de interação lenta que piora o INP.

O que causa um INP lento, e o que corrige cada causa?

Um INP lento tem três famílias de causa, uma por fase, e cada uma pede uma correção diferente.

O input delay vem de uma thread principal que já está ocupada quando o clique chega: avaliação de scripts durante o carregamento, timers e manipuladores de fetch disputando a mesma thread. Corte a quantidade de JavaScript que chega a rodar, e quebre qualquer long task, ou tarefa longa, acima de 50ms para o navegador ganhar uma brecha onde aceitar a entrada.

A processing duration vem de manipuladores que fazem demais de uma vez. Ceda a thread principal com scheduler.yield() ou setTimeout() para o navegador conseguir pintar um frame intermediário, e adie tudo o que o visitante não precisa na hora atrás de requestAnimationFrame() mais uma cessão. Pinte o retorno primeiro, depois faça o trabalho.

O presentation delay vem da renderização. DOMs grandes custam mais para renderizar do que os pequenos, então achate a árvore e adicione elementos durante a interação em vez de enviá-los de antemão. Estreite o alcance do recálculo de estilos e use content-visibility para pular o trabalho fora da tela. Cace primeiro o layout thrashing: escrever um estilo e ler ele de volta na mesma tarefa força um layout síncrono, e agrupar todas as leituras antes de todas as escritas elimina isso. O mesmo trabalho de renderização move o Cumulative Layout Shift, então confira os dois depois da correção.

Um desenvolvedor analisa dados de replay de sessão em um notebook para descobrir qual clique está derrubando o INP.

Como você encontra a interação que derruba o seu INP?

Olhe as sessões em que um visitante clicou e nada aconteceu. Um INP de 640ms em p75 diz que a página está lenta; não diz qual controle, qual rota nem qual dispositivo.

A Flowsery grava a sessão e sinaliza rage clicks, dead clicks e erros de JavaScript automaticamente, que é como uma interação travada se parece do lado do visitante: o mesmo botão apertado quatro vezes porque nenhum frame chegou a ser pintado. As sessões que coincidem se agrupam em um problema, os problemas se ordenam por quantos usuários batem neles, e cada um chega ao Slack, Linear ou Jira com a gravação e os passos para reproduzir anexados. A coleta roda sobre um script de menos de 10 KB, sem cookies e hospedado na UE, sem amostragem de dados, então as interações lentas não são as que caem fora da amostra.

Perguntas frequentes

O INP mede a rolagem?

Não. O Chrome conta cliques de mouse, toques em tela sensível ao toque e teclas pressionadas, e exclui rolagem, hover e zoom. Uma rolagem travada é uma reclamação real que não produz amostra de INP nenhuma, então diagnostique por frame timing e long tasks.

Por que meu INP é bom no Lighthouse e ruim em campo?

O Lighthouse roda uma interação roteirizada em um dispositivo configurado, e o INP pontua a pior interação que visitantes reais fizeram no hardware deles. O seu teste de laboratório clica no botão que você mandou clicar; os seus visitantes clicam no filtro caro em um Android de quatro anos atrás. Trate o laboratório como checagem de regressão e o campo como veredito.

Ainda devo monitorar o First Input Delay?

Não. O FID deixou de ser Core Web Vital em 12 de março de 2024, e o suporte terminou em 9 de setembro de 2024, então ele não aparece mais no Search Console e não pesa na avaliação. Mova o painel do dashboard para o INP e guarde a série do FID só para ler incidentes antigos.

Um clique lento sozinho pode reprovar a página inteira?

Sozinho, não. A pior interação vira o INP daquela visualização de página, e depois o Google lê o percentil 75 desses valores em todas as visualizações de página da URL. Um clique de 3 segundos em uma sessão não move nada; o mesmo controle lento atingindo um quarto das suas sessões reprova a URL.

Como o INP é medido em uma single-page app?

O INP acumula pela vida inteira da página, então as interações de uma rota ficam na mesma janela de medição que a seguinte até uma navegação dura reiniciá-la. Um clique lento em uma tela de configurações pode ser reportado contra a URL em que o visitante caiu. O suporte do Chrome a soft navigations para partir essas janelas é experimental, então segmente por rota nos seus próprios dados de campo.

Que orçamento por fase mantém o INP abaixo de 200ms?

Cinquenta milissegundos de input delay, 50ms de processing duration e 100ms de presentation delay é uma divisão viável. Meça a divisão real por rota antes de escolher o que corrigir, porque uma caixa de busca carregada de manipuladores e uma grade de produtos carregada de renderização falham no mesmo limite por razões opostas.

O que conta como uma long task, e por que isso importa para o INP?

Uma long task é qualquer bloco ininterrupto de trabalho na thread principal com mais de 50ms, o mesmo limite para o qual apontam as correções do atraso de entrada. Enquanto uma long task roda, o navegador não consegue iniciar um manipulador de evento, então esse tempo entra direto no atraso de entrada. Dividir a long task em partes menores dá ao navegador uma brecha para aceitar o clique e iniciar o manipulador mais cedo.

Flowsery
Flowsery

Teste gratuito

Painel em tempo real

Rastreamento de metas

Rastreamento sem cookies

Como parar o layout thrashing que estica o atraso de apresentação?

O layout thrashing acontece quando o código escreve um estilo e o lê de volta na mesma tarefa, o que força um layout síncrono que o navegador teria adiado. Agrupar todas as leituras antes de todas as escritas na mesma tarefa elimina esse layout forçado junto com o atraso que ele causava. Isso se verifica primeiro dentro do atraso de apresentação, antes do tamanho do DOM e do content-visibility.

Qual ferramenta realmente mede o INP no seu próprio site?

O INP é instrumentado com a biblioteca web-vitals ou outro coletor de campo, lido por rota. Como o INP só reporta algo quando visitantes reais clicam, tocam ou digitam, esse número precisa vir de real user monitoring, não de uma única execução no Lighthouse. O resultado é lido no percentil 75, do mesmo jeito que o Chrome pontua.

Por que o Chrome descarta algumas interações em páginas com muitos cliques?

Acima de 50 interações registradas, o Chrome reserva um valor alto a cada 50 para que alguns poucos outliers não decidam a pontuação da página inteira. Uma página com 130 interações descarta as duas mais altas e reporta a próxima como seu INP. Páginas com 50 interações ou menos pulam essa etapa e usam diretamente a pior interação.

Este artigo foi útil?

Diga-nos o que pensa!

Veja-nos mais no Google

Um clique marca a Flowsery como fonte preferida e nossos artigos passam a aparecer mais acima nas suas Principais notícias, no modo IA e nas visões gerais com IA.

Antes de ir...

Flowsery

Flowsery

Analytics orientado para receitas para o seu site

Rastreie cada visitante, fonte e conversão em tempo real. Simples, poderoso e sem cookies.

Painel em tempo real

Rastreamento de metas

Rastreamento sem cookies

Termos relacionados do glossário

Como o Cumulative Layout Shift é realmente calculadoComo o Cumulative Layout Shift é realmente calculado
Glossário

Como o Cumulative Layout Shift é realmente calculado

Toda pontuação de Cumulative Layout Shift é impact fraction vezes distance fraction, e o Google reporta a maior rajada de deslocamentos, não a soma deles.

8 min de leitura
O que estes números revelam sobre a taxa de rejeição média por setorO que estes números revelam sobre a taxa de rejeição média por setor
Glossário

O que estes números revelam sobre a taxa de rejeição média por setor

Nove setores rastreados mostram uma taxa de rejeição média por setor documentada, entre 35.76% e 48.38%, segundo dados da Databox de setembro de 2024.

7 min de leitura
Como aplicar a fórmula do valor médio do pedido passo a passoComo aplicar a fórmula do valor médio do pedido passo a passo
Glossário

Como aplicar a fórmula do valor médio do pedido passo a passo

A fórmula do valor médio do pedido divide a receita total pelos pedidos, e um único cupom de desconto pode distorcer cada número que uma equipe reporta.

7 min de leitura
Ler bem uma curva de retenção começa pela análise de coortesLer bem uma curva de retenção começa pela análise de coortes
Glossário

Ler bem uma curva de retenção começa pela análise de coortes

Uma curva de retenção só faz sentido quando a análise de coortes agrupa usuários por uma data de início compartilhada, já que uma média esconde esse padrão.

9 min de leitura
Onde a queda realmente acontece no funil de conversãoOnde a queda realmente acontece no funil de conversão
Glossário

Onde a queda realmente acontece no funil de conversão

A conversão por etapa e a conversão geral respondem perguntas diferentes sobre o funil de conversão, e a diferença entre elas mostra onde a queda acontece.

7 min de leitura
Dois números se escondem atrás de uma taxa de drop-offDois números se escondem atrás de uma taxa de drop-off
Glossário

Dois números se escondem atrás de uma taxa de drop-off

Todo funil produz dois números de taxa de drop-off, um por etapa e outro de ponta a ponta, e as equipes citam os dois como se fossem o mesmo número.

9 min de leitura

Artigos relacionados