Skip to main content

Confirm

Are you sure?

Glossary

Interaction to Next Paint (INP)

The delay between tapping a button and seeing anything happen.

By · Last updated: September 2026

TL;DR

Interaction to Next Paint (INP) measures how long a page takes to show a visual response after a click, tap or key press, taken over all the interactions of a visit and reported near the worst one. It is the Core Web Vital for responsiveness: 200 ms or less is good, over 500 ms is poor.

Free plan, no credit card. 1,000 credits a month.

How it works

What an interaction's latency is

Each click, tap or key press is timed from the input to the next frame the browser paints, in three parts:

  1. 1
    Input delay — waiting for the main thread to be free. A long task already running holds the input.
  2. 2
    Processing time — running the page's event handlers.
  3. 3
    Presentation delay — recalculating styles, layout and painting the result.

INP is the longest of these over the visit — or, on pages with many interactions, close to the longest, ignoring one outlier per 50 interactions. Scrolling and hovering are not interactions. INP replaced First Input Delay in March 2024: FID timed only the first input's delay, INP times every interaction, start to paint.

In practice

A typical cause

A search box that filters a long list on every keystroke, synchronously, in one handler: each key press blocks for 300 ms and the letters appear late. Breaking the work up, or yielding to the browser so it can paint first, brings it back under 200 ms:

Paint first, then do the heavy work
input.addEventListener("input", async (event) => {
  showSpinner();                                    // cheap, visible response
  await new Promise((resolve) => setTimeout(resolve)); // let the browser paint
  renderResults(filter(items, event.target.value)); // the expensive part
});

URLpipe

INP and lab tools

INP needs a person interacting, so a page-load audit cannot measure it: there are no interactions to time. That includes the Lighthouse audit /lighthouse runs, which does not report INP. What it reports instead is Total Blocking Time, the lab metric for the same problem — long main-thread tasks — which is why TBT carries the largest weight in the performance score. For INP itself, use field data: the Chrome UX Report or your own real-user monitoring.

FAQ

Frequently asked questions

What is a good INP score?
200 milliseconds or less at the 75th percentile of page loads. Between 200 and 500 ms needs improvement; above 500 ms is poor.
Can Lighthouse measure INP?
Not in a standard page-load audit, which has no interactions. Use Total Blocking Time as the lab proxy, and field data for INP itself.
What replaced First Input Delay?
INP, in March 2024. It measures every interaction from input to the next paint, not only the first input's delay.

See it on your own pages.

Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.