First Input Delay (FID): De metric die Google heeft afgeschaft (en waarom)
FID is afgeschaft per maart 2024
Google heeft FID vervangen door Interaction to Next Paint (INP) omdat FID te gemakkelijk te omzeilen was en echte responsiviteitsproblemen miste. Als je nu Core Web Vitals optimaliseert, negeer dan FID. Focus op INP.
FID mat de vertraging voordat je browser kon reageren op de eerste klik. Klinkt nuttig. Behalve dat het alleen de eerste interactie controleerde, visuele feedback negeerde en perfecte scores gaf aan websites die traag aanvoelden. Google schafte het af met goede reden.
Wat was FID (en waarom het tekortschoot)?
FID mat invoervertraging: de tijd tussen de eerste klik van een gebruiker en het moment waarop de main thread van de browser die kon beginnen te verwerken. Het mat geen rendering, visuele feedback of enige interactie na de eerste.
De fatale fout: Je kon verschrikkelijke knoppen hebben door je hele website, maar als de eerste klik snel was, slaagde je. Gebruikers ervoeren trage interacties bij elk formulierveld, elke menuklik, elke knop. Maar FID rapporteerde "Goed." Dit maakte het nutteloos voor het meten van echte responsiviteit.
FID-normen (historisch)
Deze normen worden niet meer gebruikt voor ranking. INP heeft FID vervangen met normen van 200 ms (goed) en 500 ms (slecht).
Wat FID mat
User clicks button at time 0ms
↓
Main thread busy executing JavaScript
↓
Event handler starts at 150ms ← This is FID
↓
Event handler executes (not measured by FID)
↓
Browser paints visual feedback (not measured by FID)
FID only measured the delay, not the full interaction time.Waarom Google FID heeft afgeschaft en vervangen door INP
FID had structurele beperkingen die het een slechte indicator van de werkelijke responsiviteit maakten. INP pakt al deze problemen aan.
1. Mat alleen de eerste interactie
FID negeerde alle latere interacties. Een pagina kon verschrikkelijke responsiviteit hebben na het laden maar toch goed scoren op FID omdat de eerste klik toevallig snel was.
Fix: INP meet alle interacties gedurende de volledige levenscyclus van de pagina en rapporteert de slechtste.
2. Mat geen verwerkingstijd
FID mat alleen de vertraging voordat de event handler startte. Het negeerde hoe lang de handler nodig had om uit te voeren en hoe lang het duurde om het resultaat te renderen.
Fix: INP meet de volledige interactielatentie van invoer tot volgende paint, waarmee de complete gebruikerservaring wordt vastgelegd.
3. Gemakkelijk te omzeilen
Websites konden optimaliseren voor een snelle eerste interactie terwijl de rest van de pagina traag bleef. FID gaf geen eerlijk beeld van de werkelijke responsiviteit.
Fix: INP is niet te omzeilen omdat het de slechtste interactie meet, niet alleen de eerste of het gemiddelde.
4. Niet representatief voor de gebruikerservaring
De meeste websites hadden goede FID-scores (meer dan 90% van de pagina's scoorde "goed") zelfs wanneer gebruikers aanzienlijke interactievertraging ervoeren tijdens hun sessie.
Fix: INP is een uitdagendere metric die de waargenomen responsiviteit nauwkeurig weerspiegelt gedurende de hele sessie.
Waarom FID belangrijk was (historisch)
Ondanks zijn beperkingen was FID de eerste interactiviteitsmetric in Core Web Vitals. Het zette JavaScript-blokkering en main thread-prestaties op de kaart.
Rankingfactor
Van 2021 tot 2024 was FID een Google-rankingfactor. Websites met slechte FID konden lagere zoekposities zien, met name op mobiel.
Bewustwording van JavaScript
FID dwong ontwikkelaars na te denken over main thread-blokkering, lange taken en invoerresponsiviteit tijdens het laden van de pagina.
Fundament voor INP
De beperkingen van FID hebben het ontwerp van INP direct beïnvloed, dat een veel uitgebreidere responsiviteitsmetric is.
FID meten (historische referentie)
De meeste tools rapporteren nu INP in plaats van FID
Chrome UX Report, PageSpeed Insights en Search Console zijn overgegaan op INP. FID-data is nog beschikbaar voor historische vergelijking, maar INP is het toekomstige aandachtspunt.
Velddata (echte gebruikers)
FID kon alleen worden gemeten met echte gebruikersdata, omdat het echte gebruikersinteractie vereiste:
- Chrome UX Report — historische FID-data tot maart 2024
- Google Search Console — overgestapt van FID- naar INP-rapportage
- Real User Monitoring — de meeste RUM-tools tracken nu INP in plaats van FID
FID programmatisch meten (verouderde code)
Installeer de web-vitals library als je FID nog moet tracken:
npm install web-vitalsVerouderde FID-tracking (de meeste tools gebruiken nu INP):
import {onFID} from 'web-vitals';
onFID((metric) => {
console.log('FID:', metric.value);
analytics.track('fid', {
value: metric.value,
rating: metric.rating
});
});
// Modern replacement: Use INP
import {onINP} from 'web-vitals';
onINP((metric) => {
console.log('INP:', metric.value);
analytics.track('inp', {
value: metric.value,
rating: metric.rating,
interaction_type: metric.entries[0]?.name
});
});FID vs INP: de belangrijkste verschillen
| Aspect | FID (Afgeschaft) | INP (Huidig) | |--------|------------------|---------------| | Wat het meet | Alleen invoervertraging | Volledige interactielatentie (invoervertraging + verwerking + paint) | | Welke interacties | Alleen eerste interactie | Alle interacties (rapporteert de slechtste) | | Drempelwaarde (goed) | ≤100 ms | ≤200 ms | | Drempelwaarde (slecht) | >300 ms | >500 ms | | Bereik | Alleen paginalading | Volledige levenscyclus van de pagina | | Gebeurtenistypes | Klik, tik, toetsaanslag | Klik, tik, toetsaanslag | | Verwerkingstijd | Niet gemeten | Gemeten | | Paint-tijd | Niet gemeten | Gemeten | | Labmeting | Niet mogelijk | Niet mogelijk (alleen veld) | | Rankingfactor | Was (2021–2024) | Is (maart 2024+) |
Voorbeeld: zelfde interactie, verschillende scores
Scenario: User clicks button
Timeline:
- 0ms: User clicks
- 80ms: Main thread becomes free (FID = 80ms ✓ Good)
- 80-350ms: Event handler executes (270ms)
- 350-400ms: Browser paints update (50ms)
- 400ms: User sees visual feedback (INP = 400ms ✗ Poor)
FID score: 80ms (Good)
INP score: 400ms (Poor)
FID missed the slow handler and paint time.
INP captured the full user experience.Migreren van FID naar INP
1. Werk je monitoring bij
// Old: Track FID
import {onFID} from 'web-vitals';
onFID((metric) => {
sendToAnalytics({
metric_name: 'FID',
value: metric.value
});
});
// New: Track INP
import {onINP} from 'web-vitals';
onINP((metric) => {
sendToAnalytics({
metric_name: 'INP',
value: metric.value,
// INP provides more context
interaction_type: metric.entries[0]?.name,
target_element: metric.entries[0]?.target?.tagName
});
});2. Pas je performance budgets aan
Old FID budgets:
- Good: ≤100ms
- Target P75: 80ms
New INP budgets:
- Good: ≤200ms
- Target P75: 150ms
INP thresholds are higher because it measures more:
- FID: Just input delay
- INP: Input delay + processing + paint
Your optimisation target is harder, but more meaningful.3. Focus op totale interactielatentie
Optimalisaties die FID verbeterden, helpen INP nog steeds, maar je moet verder gaan:
- FID-strategie: Verminder main thread-blokkering tijdens het laden van de pagina
- INP-strategie: Verminder main thread-blokkering gedurende de hele sessie + optimaliseer event handlers + minimaliseer DOM-werk
Bekijk onze uitgebreide INP-optimalisatiegids voor:
- Lange taken opsplitsen om de browser controle te geven
- Event handler-prestaties optimaliseren
- DOM-manipulatie tijdens interacties minimaliseren
- Web workers gebruiken voor zware berekeningen
- Dure bewerkingen debouncen
4. Test verder dan het initieel laden
FID testing: Click once during page load
✓ Fast first click
✗ Didn't test scrolling, filtering, form submission
INP testing: Interact throughout the session
✓ Click all buttons
✓ Type in forms
✓ Use filters and search
✓ Navigate menus
✓ Trigger modals
Test the worst interactions, not just the first.5. Werk je dashboards en alerts bij
- Vervang FID-grafieken door INP-grafieken in je analytics
- Werk alertnormen bij: FID
<100 ms→ INP<200 ms - Track nieuwe dimensies: Interactietype, doelelement, paginastatus
- Historische vergelijking: Bewaar FID-data als referentie maar focus op INP-trends
FID-naar-INP-migratiechecklist
Klaar om te optimaliseren voor INP?
FID is verleden tijd. INP is de toekomst van responsiviteitsmeting. Wij helpen je je performancestrategie te herzien en uitstekende INP-scores te behalen. Lees onze INP-gids of neem contact op voor expertadvies.
Optimaliseer liever voor INP
FID is afgeschaft. Wij helpen je optimaliseren voor INP, de nieuwe responsiviteitsmetric die de gebruikerservaring beter vastlegt.