Glossary

Interaction to Next Paint

Interaction to Next Paint measures how long a page takes to show a visual response after a user interacts with it, across the whole visit, reporting a value close to the worst interaction observed. It replaced First Input Delay in March 2024 because First Input Delay measured only the queuing delay before the first interaction was processed, which almost every page passed while still feeling sluggish. Good is 200 milliseconds or less at the 75th percentile of real visits.

The three phases of an interaction

Input delay: the time between the interaction and the event handler starting, spent waiting for the main thread to become free.

Processing time: how long the event handlers themselves take to run.

Presentation delay: the time between the handlers finishing and the browser painting the next frame, which includes recalculating styles and layout.

A bad score can come from any of the three, and the remedy differs: input delay means something else was occupying the thread, processing time means the handler is doing too much, presentation delay usually means the resulting DOM change is expensive to render.

What is measured, and what is not

Clicks, taps and key presses. Hovers and scrolls are not interactions for this purpose.

Every such interaction during the visit is measured, and the reported value is near the worst — the highest for pages with few interactions, and a high percentile for pages with many.

That whole-visit scope is the substantive change from First Input Delay: an application that responds instantly on load and stalls after ten minutes of use is now measured honestly.

It cannot be measured without someone interacting, so a synthetic laboratory run reports no value for it.

What usually causes a bad score

Long tasks on the main thread — any single block of JavaScript running for more than 50 milliseconds — which delay every interaction that arrives while they run.

Event handlers doing substantial work synchronously before yielding, such as re-rendering a large list in response to a keystroke.

Third-party scripts, particularly advertisement and analytics code, which execute on the same single thread as everything else.

Very large DOM trees, which make every style recalculation and layout pass expensive and therefore lengthen the presentation delay.

Frameworks that re-render broadly in response to small state changes.

How to measure and improve it

Field data is the only complete source. The Chrome User Experience Report and Search Console both report it for URLs with enough traffic.

In the browser's performance panel, recording while interacting shows each interaction broken into its three phases.

Breaking long tasks into smaller pieces, and yielding to the main thread between them, addresses input delay directly.

Moving work off the critical path — deferring non-essential scripts, using a web worker for heavy computation — addresses the underlying cause rather than the symptom.

Frequently asked questions

What is a good INP?
200 milliseconds or less at the 75th percentile of real visits. Above 500 milliseconds is classified as poor.
Why did INP replace First Input Delay?
First Input Delay measured only the queuing delay before the first interaction. Nearly every page passed it while still responding slowly to later interactions.
Can INP be measured in a lab test?
Not directly. It requires someone to interact with the page, so synthetic runs report no value and field data is the source.

Sources

Related

VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.

Scan a website