Merchant Stack Daily
Shopify app picks and stack advice for lean merchants

Field guide

Your Apps Are an INP Problem Before They Are a Features List

November 3, 2026

Interaction to Next Paint judges your worst interaction, and Google's good threshold is 200 milliseconds. Every app script that loads on the storefront competes to answer taps, so a stack of ten apps is not ten features; it is ten claimants on the same 200 milliseconds. Audit by removing weight, not by reading feature lists.

The metric that grades your worst tap

INP replaced First Input Delay in March 2024, and the change was not cosmetic. FID timed the first interaction only, which flattered stores where the first tap was cheap and everything after it hung. INP watches interactions across the whole visit and reports close to the worst one. If your cart drawer, filter menu, or add-to-cart button stalls once, INP is the metric that remembers.

Google's thresholds put good INP at 200 milliseconds or under, measured at the 75th percentile of real visits, with poor starting at 500. Shopify's platform data ties the metric to money as well: roughly 32 milliseconds of slower INP tracked with about 1.5 percent lower conversion across its stores.

Where app weight actually lands

An app rarely costs what its listing page implies. The visible widget is the smallest part. The real cost is the JavaScript loaded on every page whether the widget appears there or not, the listeners attached to clicks and scrolls, and the third-party requests that queue ahead of your own buttons. Two apps can each test fine alone and fail together, because INP is a shared budget and they spend from the same account.

This is also why lab scores miss it. A PageSpeed run taps nothing. The interactions that fail in the field, filtering a 400-product collection on a mid-range phone, happen under load, with every app awake at once. Field data from Search Console, grouped by template, is the only honest scoreboard.

The removal audit, in order

Start from a duplicate theme with apps disabled in groups, not one at a time from the live store. Measure the interaction that matters on each template: add to cart, open the cart drawer, filter the biggest collection, submit the search. Re-enable groups until an interaction degrades, then split that group. The app whose return changes the number is your cost, whatever its dashboard claims.

For each expensive app, run the replacement question before the removal decision: can a theme section, a metafield, or twenty lines of code do the 20 percent of this app your customers actually touch? Apps earn their keep on capability you cannot rebuild cheaply. An app kept for a badge and a banner is paying rent in responsiveness for decoration.

Set a budget and keep it

Give the storefront a written INP budget per template and treat new app installs as spending against it. Require a field measurement after each install, on the template the app touches, two weeks apart so real traffic fills the data. When the budget is spent, the next app gets in by evicting something, not by optimism. Stacks drift because installs are decisions and removals are chores. The budget turns removal into the same kind of decision.

Related reading

Keep going with .

Frequently asked questions

What is a good INP score for a Shopify store?

200 milliseconds or under at the 75th percentile of real visits is Google's good threshold, and over 500 milliseconds is poor. INP reflects close to your worst interaction, so one hanging cart drawer or filter can fail a store whose average tap feels fine.

Do Shopify apps slow down interactions?

They can, through the JavaScript they load storefront-wide and the listeners they attach to clicks and scrolls. The cost is shared: apps that pass alone can fail together. Measure with apps disabled in groups on a duplicate theme to find which installs actually tax your key interactions.

How is INP different from the old First Input Delay?

FID timed only the first interaction of a visit. INP, which replaced it in March 2024, tracks interactions across the visit and reports near the worst. Stores that looked responsive under FID often fail INP because a later interaction, like opening the cart, hangs.

Where should I check my store's INP?

Google Search Console's Core Web Vitals report shows field INP by page group at the 75th percentile. Use it instead of lab tests, which tap nothing and cannot reproduce the loaded conditions where app scripts stall real interactions.