searchengine.forum
HomeTechnical SEOThread

INP replaced FID — real-world fixes that moved the needle

T
TechnicalTina Platinum
Asked 1h ago · Technical SEO

INP is failing on a couple of our key templates (filterable listing + product detail). p75 sits around 300ms on mobile. Lab tools say we're fine, field data says otherwise.

Looking for fixes people have actually shipped that moved p75, not theory. What worked?

Recommended answer
C
crawl_carl Platinum
Technical SEO expert

INP = input delay + processing time + presentation delay. Most teams only optimize processing and miss that a long task is blocking the main thread before your handler even runs.

The wins, in order of impact for us: (1) break up long tasks and yield to the main thread; (2) defer non-critical third-party JS until after first interaction; (3) cut hydration cost on JS-heavy templates; (4) shrink very large DOMs to reduce presentation delay. Target <200ms at p75 in CrUX — and remember it's field data, so fix first, then wait ~28 days for the metric to catch up.

Marked helpful by TechnicalTina
312 replies
D
DevOpsDanaGoldHelpful· 2h ago

Biggest single win for us: deferring third-party tags (chat widget, A/B tool) until after the first interaction. p75 went 310ms → 180ms.

S
search_samDiamondHelpful· 2h ago

Remember INP is CrUX field data. Lab tools only estimate it — the 28-day p75 from real users is what ranks.

N
newbie_nateBronze· 2h ago

What's a 'good' INP again?

C
crawl_carlPlatinum· 2h ago

@newbie_nate <200ms good, 200–500 needs improvement, >500ms poor — all at p75.

D
DevOpsDanaGold· 2h ago

scheduler.yield() has been a game changer where supported. Break up long tasks and let input through:

button.addEventListener('click', async () => {
  doUrgentWork();
  await scheduler.yield();   // let pending input run
  doDeferredWork();
});
T
TechnicalTinaPlatinum· 2h ago

@DevOpsDana yep — with a setTimeout fallback for unsupported browsers. Made our filter UI feel instant.

L
linkbuilder_leeGoldHelpful· 1d ago

Hydration is the silent killer on React/Next. Partial/selective hydration (or RSC) dropped our INP massively.

S
serp_saraSilverHelpful· 1d ago

Don't forget mobile — mid-tier Android is where INP actually fails. Test with 4–6x CPU throttling, not your M-series laptop.

S
schema_steveGold· 1d ago

Web Workers for anything CPU-heavy (parsing, formatting, search). Keep the main thread for input and paint only.

C
crawl_carlPlatinumHelpful· 1d ago

Measure the actual slow interactions with the web-vitals attribution build before guessing. It names the element and the phase.

N
newbie_nateBronze· 23h ago

The attribution build is underrated — it told us it was a single tracking script's click handler. Saved hours.

D
DevOpsDanaGold· 20h ago

Also: a huge DOM = slow presentation delay. We cut a 6,000-node page to 1,800 and INP improved without touching any JS.

S
search_samDiamondHelpful· 18h ago

One nuance people miss: INP is the page's worst interaction, not the average. A single janky modal can fail the whole page.

T
TechnicalTinaPlatinum· 14h ago

Confirmed fix shipped: deferred hydration + scheduler.yield + removed two GTM scripts. p75 now 165ms across templates. Thanks all.

L
linkbuilder_leeGold· 10h ago

Bookmarking this. The 'defer third-party until interaction' tip alone is worth the whole thread.

S
schema_steveGoldHelpful· 8h ago

Last tip: set a CI budget so INP regressions fail the build. Fixing it once and letting it creep back is the real trap.

Sign in to read the full discussion

You're viewing the public preview. 296 more replies — including code samples, benchmarks and follow-ups — are visible to members. Joining is free.

Free account · no spam · sign in to reply and vote