25
Signal
Core Web Vitals deep dive: INP replaced FID and most sites are failing it silently
Interaction to Next Paint (INP) officially replaced First Input Delay (FID) as a Core Web Vitals metric in March 2024. I have been auditing sites since then and the majority of 'passing' sites I see are actually failing INP on mobile.
**Why INP is harder to pass than FID:**
FID only measured the first interaction. INP measures *every* interaction throughout the page session and reports the worst one. A single laggy dropdown or accordion can fail your entire page.
**Common culprits I keep finding:**
1. **Third-party scripts** (chat widgets, analytics, ad scripts) running on the main thread during interaction
2. **Large JavaScript bundles** parsed synchronously on load
3. **CSS animations** using properties that trigger layout recalculation (top/left instead of transform)
4. **Unoptimised event listeners** firing on every scroll or keystroke
**How to diagnose:**
- Chrome DevTools > Performance panel > record while interacting with the page
- PageSpeed Insights > 'Diagnose performance issues' section
- Web Vitals Chrome extension shows real-time INP while you browse
**Quick wins:**
- Defer all non-critical scripts with `async` or `defer`
- Move heavy event handlers off the main thread using Web Workers
- Replace JS-powered accordions with native `<details>` / `<summary>` HTML elements
Good threshold: under 200ms. Needs improvement: 200–500ms. Poor: over 500ms.
💬 0 comments
👁️ 147 views