INP
Interaction to Next Paint
Responsiveness of every click, tap, and keyboard interaction across the full page visit.
- Good: ≤ 200ms
- Needs improvement: ≤ 500ms
- Poor: > 500ms
Input delay 60 ms
Processing 120 ms
Presentation 40 ms
The page is readyYou tap the buttonEvent handlers runThe browser paints the resultNext paint: that's INP
What is INP?
Interaction to Next Paint (INP) measures the latency of every user interaction — clicks, taps, and keyboard input — throughout the entire page visit. It reports the worst interaction (or near-worst for pages with many interactions). INP replaced First Input Delay (FID) as a Core Web Vital in March 2024.
What problem does it solve?
FID only measured the delay before the browser started processing the first interaction. INP measures the full interaction latency — input delay + processing time + presentation delay — and does so for every interaction, not just the first.
What is a good INP score?
ms
Good
Exceptional — interactions feel instant.
What interactions are measured?
Considered
- Click events on any interactive element
- Tap events on touchscreen devices
- Keyboard key presses (keydown, keypress, keyup)
- Pointer events (pointerdown, pointerup)
Excluded
- Scroll and pinch-to-zoom (continuous gestures)
- Mouse hover events (mouseover, mouseenter, mouseleave)
- Pointer move events (pointermove, mousemove)
- Drag interactions (drag, dragover)
How to improve INP
Every interaction is made up of three phases — optimise each one.
01
Input delay
Time from when the user interacts to when the browser begins processing the event handler. Caused by other tasks blocking the main thread.
Fix Break up long tasks with scheduler.yield() or setTimeout(fn, 0). Move non-critical work off the main thread into Web Workers.
02
Processing time
Time spent executing the event handler(s) triggered by the interaction.
Fix Profile handlers with Chrome DevTools Performance panel. Defer non-visual updates.
03
Presentation delay
Time from the handler completing to the next frame being painted by the browser.
Fix Avoid forced style/layout recalculations after DOM mutations. Batch DOM writes and minimise layout thrashing.
Need help fixing your INP?
Root cause analysis, not plugin guessing. Baseline from field data or lab — wherever you are.
Start an Engagement