Skip to content
Published Authored byBilly Reiner

Glossary · Defined term

Interaction to Next Paint (INP)

Interaction to Next Paint (INP) measures "the latency of all click, tap, and keyboard interactions that occur throughout the lifespan of a user's visit to a page"1. INP replaced First Input Delay (FID) as a Core Web Vital on 12 March 20243. The "good" threshold is 200 ms or less, measured at the 75th percentile.

Why INP replaced FID: FID measured only the input-delay portion of an interaction — the gap between the user clicking and the browser starting to process the event. INP measures the full round-trip, including event processing and rendering the next frame. A button that responds instantly to the click but takes 600 ms to actually update the UI scored well on FID and badly on INP. The 2024 switch surfaced a category of slowness that FID hid.

Definition

Interaction to Next Paint (INP) is the latency between a user interaction (click, tap, key) and the next paint. INP replaced First Input Delay as a Core Web Vital on 12 March 2024. The 'good' threshold is 200ms or less, measured at the 75th percentile.

Verbatim from the web.dev INP reference1: INP measures "the latency of all click, tap, and keyboard interactions that occur throughout the lifespan of a user's visit to a page." The reported value is "the longest interaction observed, ignoring outliers" — not the average, not the median. One slow interaction on a long-lived page can move the score; this is intentional, because the worst interaction is often the one the user remembers.

Thresholds and how the measurement works

Three buckets, verbatim from web.dev: 'good' is INP below or at 200 milliseconds; 'needs improvement' is between 200 and 500 ms; 'poor' is greater than 500 ms. The bucket assignment is based on the 75th percentile of page loads — meaning 25% of your users had a slower interaction than the reported number.

Scroll interactions are not measured. Only discrete interactions (click, tap, key press) trigger INP measurement. Hover is not counted. Continuous gestures (drag, pinch) are also not counted as INP events. The metric is deliberately scoped to the moments when a user does something and waits for a visible response.

The "next paint" portion of the name is literal: INP measures from the input event to the rendering of the next frame after event processing completes. If your event handler takes 300 ms to run JavaScript and then the browser takes another 100 ms to render the resulting DOM changes, INP is 400 ms.

INP replaced FID on 12 March 2024

Google announced the FID-to-INP transition in May 2023 with a 10-month deprecation window. INP became a Core Web Vital on 12 March 2024; FID was retired the same day. The transition was the largest substantive change to Core Web Vitals since the framework launched in 2020.

The rationale per Google's announcement3: FID's narrow scope (only first input, only the input-delay portion) was giving sites passing scores that real users perceived as slow. INP's broader scope (every interaction, full round-trip) corrects the under-reporting. The trade-off is that INP is harder to fix — FID problems were almost entirely about main-thread blocking during initial load; INP problems can occur at any point in the session.

Adoption status in 2026

Universal as a Google Search ranking signal since March 2024. CrUX, PageSpeed Insights, Search Console's Core Web Vitals report, and Lighthouse all expose INP. Two years after launch, INP is the Core Web Vital with the most sites in the 'needs improvement' or 'poor' buckets — particularly heavy ecommerce sites with lots of app-injected event handlers.

For Shopify specifically, INP is materially harder to pass than LCP. Most modern themes ship with reasonable hero-image preload and image-format choices, so LCP is achievable with modest effort. INP, by contrast, is dominated by third-party apps (Klaviyo, Facebook Pixel, GTM, review apps, chat widgets) whose event handlers add main-thread work on every interaction. The fix often requires removing or deferring apps, not just adjusting theme code.

INP on Shopify specifically

The most common INP killers on Shopify, in order: (1) too many synchronous app scripts running on every page; (2) heavy event handlers attached by tracking scripts (Pixel, GTM, Klaviyo) that fire on every click; (3) chat widgets and review apps that inject DOM on interaction; (4) custom theme code with unnecessary jQuery, event delegation antipatterns, or render-blocking work inside click handlers.

The install order: (1) measure baseline INP on the templates that get the most traffic (homepage, collection, product, cart); (2) audit installed apps for synchronous main-thread work — the Shopify Settings > Apps activity panel surfaces which apps inject Extensions and Functions; (3) defer or remove apps whose value doesn't justify their INP cost; (4) audit theme JavaScript for heavy event handlers, replace with debounced or RAF-scheduled work; (5) re-measure CrUX after two weeks of real-user data accumulates.

The full install lives in Site speed on Shopify with deep treatment in the app-bloat article. If you'd rather we audit and fix INP, ShopifyRanked does it in 7 days for $499.

INP is one of three Core Web Vitals.