Was ist First Input Delay (FID)?
First Input Delay (FID) war ein Core Web Vital, das die Zeit von der ersten User-Interaktion mit einer Seite bis zum Zeitpunkt maß, an dem der Browser tatsächlich antworten konnte. Es captured die "fühlt sich gefroren an"-Erfahrung, die User bekommen, wenn JavaScript busy executing und die Seite nicht auf Input reagieren kann.
Wichtig: FID wurde offiziell durch Interaction to Next Paint (INP) als Core Web Vital ersetzt am 12. März 2024. FID ist jetzt deprecated. Neue Audits sollten INP nutzen.
Was FID maß
| FID | Rating |
|---|---|
| ≤ 100ms | Good |
| 100ms - 300ms | Needs Improvement |
| > 300ms | Poor |
Warum FID durch INP ersetzt wurde
- Nur erste Interaktion.
- Nur Delay, nicht Full Response.
- Viele User hatten ~0ms FID.
INP fixt diese: es sampled Interactions über den Page-Lifecycle.
FID vs INP Vergleich
| Aspekt | FID | INP |
|---|---|---|
| Captured | Nur erste Interaktion | Alle Interaktionen |
| Was es misst | Nur Input-Delay | Full Input → Next-Paint |
| Reporting | Single Value | p98 aller Interaktionen |
| Guter Threshold | ≤ 100ms | ≤ 200ms |
| Status | Deprecated (März 2024) | Aktuelles Core Web Vital |
Wie FID gemessen wurde
new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
const fid = entry.processingStart - entry.startTime;
console.log('FID:', fid);
}
}).observe({ type: 'first-input', buffered: true });Häufige FID-Ursachen (gelten weiterhin für INP)
- Long-running JavaScript.
- Große Bundles laden.
- Third-party Scripts.
- Heavy Hydration.
- Lange Event-Handler.
- Layout-Thrashing in Handlers.
FID/INP verbessern: praktische Schritte
1. Code-Splitting
import('./heavy-feature').then(mod => mod.init());2. Non-critical JavaScript deferren
<script src="analytics.js" defer></script>
<script src="chat-widget.js" async></script>3. Lange Tasks aufbrechen
async function processInBatches(arr) {
for (let i = 0; i < arr.length; i += 100) {
arr.slice(i, i + 100).forEach(heavy);
await new Promise(r => setTimeout(r, 0));
}
}4. requestIdleCallback nutzen
requestIdleCallback(() => { prefetchNextPage(); });5. Third-party-Impact reduzieren
<link rel="preconnect">für Domains- Critical Fonts/Scripts self-hosten
- Unused Tags auditen + cullen
6. Hydration optimieren
- Partial Hydration (Astro Islands)
- Server Components (React)
- Resumability (Qwik)
Lab-Equivalent: Total Blocking Time (TBT)
| TBT | Rating |
|---|---|
| ≤ 200ms | Good |
| 200ms - 600ms | Needs Improvement |
| > 600ms | Poor |
FAQ: First Input Delay
Ist FID noch ein Core Web Vital?
Nein. Seit 12. März 2024 ersetzte INP FID.
Sollte ich noch für FID optimieren?
Die selben Optimierungen helfen beiden.
Wie unterscheidet sich FID von TBT?
FID = Field-Metric. TBT = Lab-Metric.
Warum ersetzte Google FID mit INP?
FID maß nur erste Interaktion.
Passt mein alter FID-optimierter Code automatisch INP?
Größtenteils ja — die zugrundeliegenden Ursachen sind dieselben.
Wo kann ich FID-Daten sehen?
Historical CrUX-Daten enthalten FID weiterhin.
Was ist der Unterschied zwischen FID und Time to Interactive (TTI)?
FID: tatsächliches Delay. TTI: Heuristik.
Responsiveness unter Last mit LoadFocus testen
LoadFocus läuft Lighthouse-Audits aus 25+ Regionen und trackt INP/TBT-Scores über Zeit. Registrieren bei loadfocus.com/signup.
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um — derselben Plattform, die alles antreibt, was du gerade gelesen hast.