Skip to content
HandbookPublic
Security

FID is retired — what replaced it, and what to do

FID was removed from Core Web Vitals in March 2024. Why it flattered almost every site, and how to migrate a dashboard or a contract that still names it.

Written forAnyone still tracking FID in a dashboard or an SLA
Reading time6 min read
Last reviewed2026-09-04

We are keeping this page rather than deleting it because the metric still appears in dashboards, in vendor proposals and in performance clauses written a few years ago. The useful content is why it was retired, because the reasoning explains what to measure now.

What FID actually measured

FID measured the delay between a user's first interaction and the moment the browser began running the event handler. It measured the queue, and nothing after it: not how long the handler took, and not whether anything appeared on screen afterwards.

FIDINP
Interactions countedThe first one onlyThe worst one in the session (near-worst on long sessions)
Phases measuredInput delayInput delay, processing, and presentation
Ends whenThe handler startsThe next frame is painted
Typical resultMost sites passed comfortablyMany of the same sites fail

The consequence was that a site could pass FID and still feel broken: tap a filter, the handler starts within 30ms, then a synchronous re-render blocks the thread for a second and the screen does not change. FID recorded 30ms. The user recorded a broken page.

Migrating a dashboard or an SLA

01
Replace the collection callonFID becomes onINP in web-vitals v4 and later; the attribution build gives you the three phases, which is what makes the number actionable.
02
Reset the thresholdsFID targets do not translate. INP is good at or under 200ms and poor above 500ms, measured at the 75th percentile of real sessions.
03
Expect the number to look worseIt is not a regression. You are measuring three phases where you previously measured one. Rebaseline before anyone reads it as a decline.
04
Rewrite the clauseIf a contract names FID, replace it with an INP target and a stated measurement method — field data at p75, by route, over a named window. A performance clause with no measurement method is unenforceable in both directions.