SEO & performance
INP
Interaction to Next Paint
INP, or Interaction to Next Paint, measures how quickly a page visibly responds to a user's taps, clicks, and key presses across the whole visit — it replaced First Input Delay as a Core Web Vital in March 2024. The "good" threshold is 200 milliseconds. Poor INP is nearly always caused by too much JavaScript on the main thread, which on Shopify usually means too many apps.
Why it matters
INP measures the thing shoppers describe as a site being "laggy" — tapping a variant swatch and watching nothing happen, opening the cart drawer and waiting, typing in search and seeing letters arrive late. It is the vital most directly tied to how a site feels to use.
It is also the hardest of the three to fake. LCP can be improved by making one image load faster; INP is a property of how much JavaScript the page runs across the whole visit, which is a structural fact about the store rather than a setting.
For Shopify specifically, that makes INP the metric that exposes the app stack. A store with twenty apps has twenty sets of scripts competing for the main thread, and no amount of theme optimisation compensates for it.
How it works on Shopify
INP looks at every interaction during a visit — clicks, taps, key presses — and reports close to the worst of them. It is not an average, and it is not the first interaction alone, which is what distinguishes it from the First Input Delay metric it replaced in March 2024.
Each interaction is measured in three parts: input delay before the handler runs, processing time within it, and presentation delay before the browser paints the result. Knowing which dominates tells you where the fix belongs — a long input delay means the main thread was busy with something else, while long processing means the handler itself is doing too much.
The main thread is the shared resource. Analytics scripts, review widgets, chat, personalisation, and popups all execute there, and each long task blocks whatever the shopper does next.
The usual fixes are removing unused apps, deferring what can be deferred, breaking long tasks into smaller pieces, and keeping heavy work out of interaction handlers. Third-party tags loaded through a tag manager deserve particular scrutiny, because nobody owns them and they accumulate.
Common mistakes
- Assuming it is the theme. Usually it is the apps. Disable them one at a time and measure.
- Deferring everything. Deferred scripts still run, and moving them later can make them collide with the shopper's first interaction instead of with page load.
- Testing on a fast device. INP problems concentrate on mid-range Android phones, which is what a large share of the audience uses.
- Chasing the Lighthouse score. Lighthouse does not measure INP directly. Field data does.
- Heavy handlers. Doing layout-triggering work inside a click handler guarantees a slow interaction.
- Ignoring the cart drawer. It is the most-used interactive element on most stores and frequently the slowest.
When you need help
The trigger is a store failing INP in field data with no obvious single cause. That diagnosis needs real profiling — recording interactions on a throttled device and attributing long tasks to their source — and it is difficult to do without the tooling and the habit.
The other case is an app audit. Deciding which apps earn their millisecond cost, which can be replaced by theme code or a metafield, and which have simply been forgotten is the fix that moves this metric more than anything else.
Need this done on your store?
SEO servicesRelated terms
- Core Web VitalsCore Web Vitals are the three metrics Google uses to score real-world page experience: LCP for loading, INP for responsiveness, and CLS for visual stability. They are measured from actual Chrome users, not a lab test, and a page passes only if 75% of visits are within the "good" threshold on all three. They are a genuine — if modest — ranking signal, and a large conversion one.
- LCPLCP, or Largest Contentful Paint, measures how long it takes for the biggest visible element — usually a hero image or heading — to render. Google's "good" threshold is 2.5 seconds. On Shopify the usual culprits are unoptimised hero images, render-blocking app scripts, and fonts, in that order.
- Shopify appA Shopify app is an external service that extends a store through Shopify's APIs. Public apps are distributed through the Shopify App Store; custom apps are built for one merchant and installed directly. Apps are how you add functionality Shopify does not have natively — but each one adds JavaScript, cost, and a dependency, so an app audit is often the fastest performance win available.