INP is the Core Web Vital that measures how fast your page reacts to clicks, taps and key presses, and the fixes are mostly about freeing the main thread.
5 min read
To improve INP, aim for an Interaction to Next Paint of 200 milliseconds or less at the 75th percentile of real visits, measured separately on mobile and desktop. Find the slowest real click, tap or key press first, then shorten its input delay, its event-handler work and the rendering that follows.
INP is a stable Core Web Vital that replaced First Input Delay (FID). FID only timed the input delay of the first interaction; INP watches every click, tap and key press during the visit and reports roughly the slowest one. On pages with many interactions, one highest interaction is ignored for every 50.
Scrolling, hovering and zooming are not counted. Google notes that Chrome usage data shows about 90% of a user's time on a page is spent after it loads, which is why INP covers the whole visit rather than only page load.
Start with real-user data, not a lab score. If your site is in the Chrome User Experience Report (CrUX), PageSpeed Insights shows INP at origin level and sometimes per URL. CrUX tells you there is a problem but not which interaction caused it, so add real-user monitoring (RUM). The free web-vitals library does this in a few lines:
Lighthouse page-load runs often show no INP because nobody interacts with the page. Instead, open Chrome DevTools, throttle the CPU, record a Performance trace and repeat the slow interaction. Also try clicking while the page is still loading, when the main thread is busiest. Total Blocking Time (TBT) is a reasonable lab proxy, but it does not replace INP.
Input delay is the time between the user acting and your event handlers starting. It usually comes from long tasks that are already running, often script parsing, compiling and executing during startup, plus timers and overlapping interactions.
Processing duration is how long your callbacks take to run. Do the minimum needed for the visual update, then hand the rest back to the browser:
Presentation delay is the time from your handlers finishing to the next frame being painted. Large DOMs make rendering more expensive.
Field data from CrUX covers a rolling 28-day window, so expect a few weeks before PageSpeed Insights reflects a fix. Your RUM data will show changes sooner. Google calls INP work iterative: once you fix the worst interaction, the next-slowest one becomes your INP, so keep working through the list. For a broader pre-launch pass, see our Next.js 16 App Router production checklist (Open shoppercove.com). To get help reading traces, see our guide to Chrome DevTools AI assistance (Open shoppercove.com).
200 milliseconds or less at the 75th percentile of page visits is good. Over 200 ms up to 500 ms needs improvement, and anything over 500 ms is poor.
There may not be enough Chrome user data in CrUX, or visitors only scrolled or hovered, which INP does not count. Lab-only runs that never interact with the page also report no INP.
Yes. INP is FID's successor as the responsiveness Core Web Vital. It measures every interaction's full latency (input delay, processing and presentation), not just the first input's delay.
Lab evidence
Read Google's web.dev INP and Optimize INP guides (last updated 2 Sep 2025) and the web-vitals library docs on 10 Oct 2026. We did not run our own benchmarks for this post; all thresholds and techniques come from those sources.
Explore the product
Untested by us. Check what's included, the license and refund terms before you buy.
Both cut a string at a separator, but they fail in different ways. We ran them on Python 3.13.5 to show where partition() is safer and where split() is the right tool.
Summary2 Nov 20263 min read
What changes when you swap sort() for toSorted(), with a real 1-million-item Node.js benchmark and the support table.
Summary1 Nov 20263 min read
Dragging videos is the official way to change a playlist's order. Here are the steps from YouTube Help, where to find them in YouTube Studio, and the cases where reordering will not work.
Summary31 Oct 20263 min read