Interaction to Next Paint (INP)
A Core Web Vital that measures the delay between a user interaction and the next visual update — good is ≤200ms.
INP replaced First Input Delay (FID) as a Core Web Vital in March 2024. It measures the latency of all user interactions (clicks, taps, keyboard inputs) during a page visit and reports the worst-case interaction — or the 98th percentile for pages with many interactions. FID only measured the delay of the first interaction; INP captures the full lifecycle of interactivity.
Poor INP is caused by long JavaScript tasks on the main thread that block the browser from responding to user input. When a user clicks a button and the browser is busy executing a 500ms JavaScript task, INP suffers. Solutions: break up long tasks with setTimeout/scheduler.yield(), defer non-critical JavaScript, reduce third-party script impact, and avoid forced synchronous layouts (style/layout thrashing).
INP is particularly challenging for React and other SPA frameworks where rerenders on interaction can be expensive. Use React's concurrent features, memoisation, and code-splitting to keep interaction costs down.