HomeMethod

Knowledge

Web VitalsTechniquesSnippetsAnswersImpactsBottlenecks

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
yoursite.com
Add to cartAdded ✓

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?

0ms

Good

0ms200ms500ms1000ms

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.

  1. 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.

  2. 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.

  3. 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
Support our family now