# First Input Delay

First Input Delay, FID, measured the time from a visitor’s first interaction to the moment the browser began processing it. It was a Core Web Vital until March 2024, when Interaction to Next Paint replaced it. If a report still shows FID, the report is out of date.

Updated 2026-09-15 · Source: https://porteur.ai/glossary/first-input-delay

## Why it was replaced

|  | First Input Delay | Interaction to Next Paint |
| --- | --- | --- |
| Interactions measured | The first one only | Every click, tap and key press |
| What it timed | The wait before processing began | The wait, the processing, and the paint |
| Typical result | Most pages passed | Slow pages fail, as they should |
| Status | Retired in March 2024 | A Core Web Vital |

FID measured only the delay before the handler started, on the first interaction. A page could pass while every button took a second to show a result, because the work after the handler started was never counted.

## What to work to now

- Interaction to Next Paint: good up to 200 ms, poor above 500 ms, measured on real visitors.
- Total Blocking Time is the lab stand-in, since a lab run cannot click anything.
- The causes are the same ones FID hinted at: long tasks on the main thread, heavy handlers, hydration of large frameworks, third-party scripts.

> Anything written before 2024 that tells you to optimise for FID is telling you to optimise for a metric nobody measures. The advice underneath usually still applies: ship less JavaScript.

## Where the old number went

1. **Search Console** The Core Web Vitals report shows LCP, CLS and INP. FID is gone from it.
2. **PageSpeed Insights** The field section shows INP where there is enough traffic. Old screenshots in blog posts still show FID.
3. **Your own reporting** If a dashboard still collects FID from the web-vitals library, switch the metric to INP so the numbers mean something.

## Questions

### Is First Input Delay still a Core Web Vital?

No. Interaction to Next Paint replaced it in March 2024. Reports and articles that still feature FID predate that change.

### What is the difference between FID and INP?

FID timed only the delay before the browser began handling the first interaction. INP measures every interaction and includes the processing and the paint, then reports the slowest.

### What is a good INP?

Up to 200 ms is good and above 500 ms is poor, measured at the 75th percentile of real visitors over 28 days.

### Why did most pages pass FID?

Because it measured so little: the wait before a handler started, on one interaction. A page could be slow in every way that a visitor feels and still pass.

### Do I need to do anything different now?

The work is the same and the bar is higher: fewer and smaller scripts, shorter tasks on the main thread, and painting the visible change before doing the rest of the work.

## Read next

- [Interaction to Next Paint (INP)](https://porteur.ai/glossary/interaction-to-next-paint): INP is the delay from tap to next paint, good up to 200 ms; learn how to measure it, read field versus lab data, and fix script delays.
- [Core Web Vitals](https://porteur.ai/glossary/core-web-vitals): Core Web Vitals are Google’s three field speed and responsiveness metrics. See their thresholds, lab versus field, how to read them, and what to fix.
- [How to improve Interaction to Next Paint](https://porteur.ai/guides/how-to-improve-interaction-to-next-paint): Cut slow interactions to under 200 ms. See where INP hurts, why Lighthouse misses it, and the fixes that make your page feel instant.
- [Total Blocking Time: the lab number that stands in for INP](https://porteur.ai/guides/total-blocking-time): What Total Blocking Time measures in Lighthouse, why it weighs 30 percent, how it relates to INP, and the fixes that cut it fast.
- [Core Web Vitals for a product site: the three numbers](https://porteur.ai/guides/core-web-vitals): The product founder’s guide to LCP, CLS and INP: what Google measures, why phones decide the pass, common causes, and how to test and fix.
- [The Core Web Vitals report in Search Console, page group by page group](https://porteur.ai/guides/search-console-core-web-vitals-report): Understand where the Core Web Vitals data comes from, how page groups work, what to fix by template, and how to move groups to Good.
- [Core Web Vitals checker](https://porteur.ai/tools/core-web-vitals-checker): Paste a URL for one Lighthouse run on a simulated phone: LCP, CLS, TBT and FCP against Google's thresholds, the biggest savings, the failing audits.
- [Time to first byte](https://porteur.ai/glossary/time-to-first-byte): Time to first byte is the interval from the request to the first byte of the response. The thresholds, what it contains, and what actually improves it.

The free check measures how your home page loads and responds on a simulated phone, then names the first thing worth fixing. Free check: https://porteur.ai/
