INP (Interaction to Next Paint) is a Core Web Vitals metric measuring the longest interaction-to-paint latency on a page during the user's visit, replacing FID in March 2024.
An "interaction" is a click, tap, or key press that triggers JavaScript. INP measures the worst-case latency among all interactions, not the average, so one slow filter click can ruin INP for an entire session. 2026 thresholds: ≤ 200ms good, ≤ 500ms needs improvement, > 500ms poor.
Common INP fixes for ecommerce: reduce client-side JavaScript via React Server Components, use startTransition for non-urgent state updates, use useOptimistic for instant feedback on variant swap and add-to-cart, debounce search inputs with AbortController, hoist regex literals out of event handlers, and defer non-critical third-party scripts.
INP is harder to fix than LCP because each interaction can have a different bottleneck. Fixing INP requires component-level discipline across every interactive element on the page.