INP (Interaction to Next Paint) measures the latency between a user interaction (click, tap, or key press) and the next visual update the browser paints. It reports the worst observed interaction on a page, so a single slow click can dominate the score. INP replaced FID as a Core Web Vitals metric in March 2024. A good score is 200 ms or less; above 500 ms is poor.
Why it matters
INP captures the felt responsiveness of a site after it has loaded — exactly the moments when users decide whether the page works. Slow interactions usually trace back to long JavaScript tasks blocking the main thread, layout thrash, or expensive event handlers. Because the metric is field-measured, a regression often shows up before any complaint reaches support.
How to fix
- Break long tasks (>50 ms) into smaller chunks with
scheduler.yield()orsetTimeout. - Defer non-critical scripts and remove unused JavaScript to lower main-thread cost.
- Avoid synchronous work inside
click,input, andkeydownhandlers; move heavy work torequestIdleCallbackor a Web Worker. - Use passive event listeners for scroll and touch events so the browser can paint sooner.
- Watch TBT in the lab and RUM data in the field to catch regressions.
- Web.dev maintains the canonical thresholds in its INP guide.