What is Interaction to Next Paint (INP)?

Interaction to Next Paint (INP) measures how long a page takes to show a visual response after a user clicks, taps, or presses a key. It looks at the interactions during the whole visit and reports one of the slowest, so a single sluggish menu or filter can define the score.

INP became a Core Web Vital in March 2024, replacing First Input Delay (FID). FID only measured the delay before the browser began handling the first interaction, which most sites passed easily. INP covers every interaction and the full time until the next frame is painted. A good INP is 200 milliseconds or less at the 75th percentile; over 500 milliseconds is poor.

How it works

Each interaction has three parts:

  1. Input delay: the browser's main thread is busy with other work, often a long JavaScript task, so the event handler cannot start yet.
  2. Processing time: the event handlers themselves run.
  3. Presentation delay: the browser recalculates styles and layout and paints the next frame.

Only clicks, taps, and keyboard input count. Scrolling and hovering do not. For pages with many interactions, INP ignores one of the highest values for every 50 interactions so a single outlier does not dominate.

Because INP depends on real users interacting, lab tools cannot measure it directly. Lighthouse uses Total Blocking Time (TBT) as a lab stand-in, which correlates with input delay. Field data comes from the Chrome User Experience Report.

Example

A product listing page has a filter sidebar. Clicking "Size 9" runs a JavaScript handler that re-renders 200 product cards synchronously, taking 450 ms before anything changes on screen. That interaction sets the page's INP.

Fixes include showing immediate feedback (a pressed state or spinner) before the heavy work, breaking the work into smaller tasks with await scheduler.yield() or setTimeout, and rendering fewer elements at once. Chrome DevTools' Performance panel shows long tasks and which interactions were slow.

In WordPress

Poor INP on WordPress sites is usually caused by third-party and plugin JavaScript: page builders, sliders, analytics and ad tags, chat widgets, consent banners, and heavy WooCommerce add-ons that run on every page. Audit which scripts load on each template and remove or defer what is not needed. Hydrogen SEO adds no front-end JavaScript, so it does not affect INP. The hydrogenseo.com web vitals checker reports field data where CrUX has it; see bulk audit and SEO tools.

Common mistakes

  • Still monitoring FID, which Google no longer reports as a Core Web Vital.
  • Relying only on Lighthouse, which cannot measure INP.
  • Deferring all JavaScript and making the first interaction wait for a large bundle to load.

Common questions

What replaced FID?

Interaction to Next Paint replaced First Input Delay as a Core Web Vital in March 2024.

What is a good INP score?

200 milliseconds or less for at least 75 percent of page visits. Between 200 and 500 ms needs improvement; above 500 ms is poor.