Zum Inhalt springen
DSGVO-konform. Gehostet in DE.
14 Tage kostenlos testen →
Core Web VitalDeep-Dive INP
Performance 12 Min. Lesezeit 14. März 2026

INP optimieren: Der Deep-Dive in die anspruchsvollste Core-Web-Vital-Metrik

65 % aller Websites verfehlen den INP-Schwellenwert. Dieser Leitfaden erklärt die drei INP-Phasen und zeigt konkrete Optimierungsstrategien für jede Phase.

X

XICTRAQ Team

XICTRAQ

PerformanceINPCore Web VitalsJavaScriptMain Thread
65%
verfehlen 200ms (Chrome UX Report)
200ms
INP-Schwellenwert (Google)
3
Phasen jeder Interaktion
INP Measurement: User Interaction Flow0ms50ms100ms150ms200ms☛User ClickInput Delay35msMain Threadis busyProcessing Time85msEvent handlersexecutePresentation60msRender +paint update Total INP = 35 + 85 + 60 = 180msZiel: < 200ms = Gut | > 500ms = Schlecht
Interaction to Next Paint (INP) ist seit März 2024 die offizielle Nachfolgemetrik von First Input Delay (FID) und die anspruchsvollste aller Core Web Vitals. Während FID nur die Verzögerung der ersten Interaktion mass, erfasst INP die Reaktionszeit über alle Interaktionen während des gesamten Seitenbesuchs. Laut Chrome User Experience Report verfehlen rund 65 % aller Websites den Schwellenwert von 200 Millisekunden (Chrome UX Report). Dieser Deep-Dive erklärt, wie INP funktioniert und wie Sie den Wert systematisch senken.

Warum INP die schwierigste Metrik ist

FID war vergleichsweise leicht zu optimieren, da nur die erste Interaktion zählte. Ein schneller Seitenaufbau ohne Long Tasks reichte oft aus. INP ist fundamental anders: Es misst jede Interaktion über den gesamten Seitenbesuch. Ein Klick auf einen Filter, ein Tippen in ein Suchfeld, ein Scrollen durch ein Dropdown: Jede dieser Aktionen wird bewertet.

Der gemeldete INP-Wert ist nicht der Durchschnitt, sondern typischerweise die schlechteste Interaktion (bei wenigen Interaktionen) oder eine hohe Perzentile (bei vielen Interaktionen). Das bedeutet: Eine einzige langsame Interaktion kann den gesamten INP-Wert der Seite ruinieren. Diese Strenge macht INP zur am häufigsten verfehlten Core-Web-Vital-Metrik.

Die drei Phasen jeder Interaktion

Jede Nutzerinteraktion durchläuft drei Phasen, deren Gesamtdauer den INP-Wert bestimmt. Die obige Grafik zeigt den typischen Ablauf. Um INP zu optimieren, müssen Sie verstehen, welche Phase die meiste Zeit beansprucht.

Phase 1: Input Delay

Input Delay ist die Zeitspanne zwischen der Nutzeraktion (Klick, Tastendruck, Tippen) und dem Beginn der Verarbeitung durch den zugehörigen Event Handler. Langes Input Delay entsteht, wenn der Main Thread zum Zeitpunkt der Interaktion durch andere Aufgaben blockiert ist. Der Browser kann den Event Handler erst starten, wenn die aktuelle Aufgabe abgeschlossen ist.

Typische Verursacher von Input Delay sind Long Tasks (JavaScript-Aufgaben über 50 ms), Third-Party-Scripts, die den Main Thread belegen, Garbage Collection, Style-Recalculations und Layout-Berechnungen, die durch vorherige JavaScript-Operationen ausgelöst wurden.

Phase 2: Processing Time

Processing Time ist die Dauer der Event-Handler-Ausführung selbst. Wenn ein Click-Handler komplexe Berechnungen durchführt, DOM-Bäume traversiert, umfangreiche State-Updates auslöst oder synchrone API-Aufrufe macht, verlängert sich diese Phase. Bei modernen Single-Page-Applications kann die Processing Time erheblich sein, besonders bei Aktionen, die umfangreiche UI-Updates auslösen.

Phase 3: Presentation Delay

Presentation Delay ist die Zeit vom Ende der Event-Handler-Verarbeitung bis zum nächsten sichtbaren Frame-Update im Browser. Diese Phase umfasst Style-Recalculations, Layout-Berechnungen, Paint-Operationen und Compositing. Layout Thrashing, also das abwechselnde Lesen und Schreiben von DOM-Eigenschaften, ist der häufigste Verursacher hoher Presentation Delays.

Welche Phase optimieren?

Nutzen Sie den Chrome DevTools Performance-Tab, um die drei Phasen zu analysieren. Zeichnen Sie eine typische Interaktion auf und prüfen Sie, welche Phase den größten Anteil hat. Dort liegt das größte Optimierungspotenzial.

Long Tasks eliminieren: Der wichtigste Hebel

Long Tasks sind JavaScript-Aufgaben, die den Main Thread länger als 50 Millisekunden blockieren. Während einer Long Task kann der Browser keine Nutzerinteraktionen verarbeiten. Die Summe aller Long Tasks wird als Total Blocking Time (TBT) gemessen und korreliert direkt mit dem INP-Wert.

Long Tasks identifizieren

Chrome DevTools markiert Long Tasks im Performance-Tab als rote Balken. Die PerformanceObserver-API kann Long Tasks auch im produktiven Einsatz messen. XICTRAQ nutzt diese Daten, um Long-Task-Muster zu erkennen und deren Einfluss auf den INP zu quantifizieren.

Long Tasks aufteilen mit Yielding

Das Prinzip des Yielding besteht darin, lange JavaScript-Aufgaben in kleinere Einheiten aufzuteilen und dem Browser zwischen den Teilaufgaben die Möglichkeit zu geben, auf Nutzerinteraktionen zu reagieren.

Yielding mit scheduler.yield()
async function processLargeList(items) {
  for (let i = 0; i < items.length; i++) {
    processItem(items[i]);
    
    // Alle 5 Elemente dem Browser eine Pause geben
    if (i % 5 === 0) {
      await scheduler.yield();
    }
  }
}

scheduler.yield() ist die modernste Yielding-Methode und wird von Chrome seit Version 115 unterstützt. Als Fallback können Sie setTimeout(resolve, 0) in einem Promise verwenden oder requestIdleCallback() für Aufgaben mit niedriger Priorität nutzen.

Event Handler optimieren

Schlanke Handler schreiben

Ein Event Handler sollte so wenig Arbeit wie möglich auf dem Main Thread erledigen. Rechenintensive Operationen gehören in Web Worker, Netzwerkanfragen sollten asynchron sein, und visuelle Updates sollten über requestAnimationFrame() gebatcht werden.

  • Web Worker nutzen: Verlagern Sie Sortierung, Filterung und Berechnung in einen Web Worker. Der Main Thread bleibt frei für Nutzerinteraktionen.
  • Debouncing und Throttling: Begrenzen Sie die Ausführungsfrequenz von Scroll-, Resize- und Input-Handlern. Nicht jedes Scroll-Event braucht eine sofortige Reaktion.
  • Asynchrone Operationen: Verwenden Sie fetch mit async/await statt synchroner XMLHttpRequests. Synchrone Netzwerkanfragen blockieren den Main Thread komplett.
  • DOM-Operationen minimieren: Bündeln Sie DOM-Änderungen und führen Sie sie in einem einzigen Reflow durch. Document Fragments helfen bei der effizienten DOM-Manipulation.

requestAnimationFrame für visuelle Updates

Wenn ein Event Handler visuelle Änderungen vornimmt, sollte er diese über requestAnimationFrame() (rAF) einplanen. rAF synchronisiert die Änderungen mit dem nächsten Frame-Update des Browsers und verhindert unnötige Zwischenberechnungen. Das reduziert die Presentation Delay und sorgt für flüssige Animationen.

Layout Thrashing vermeiden

Layout Thrashing ist einer der häufigsten und am schwersten zu diagnostizierenden INP-Killer. Es entsteht, wenn JavaScript abwechselnd DOM-Elemente verändert (schreibt) und Layout-Eigenschaften ausliest (liest). Jeder Lesevorgang nach einem Schreibvorgang erzwingt eine sofortige Layout-Neuberechnung, die den Main Thread blockiert.

Layout Thrashing vermeiden
// SCHLECHT: Abwechselndes Lesen und Schreiben
elements.forEach(el => {
  const height = el.offsetHeight;  // Lesen -> erzwingt Layout
  el.style.height = height + 10 + 'px';  // Schreiben
});

// GUT: Erst alle lesen, dann alle schreiben
const heights = elements.map(el => el.offsetHeight);  // Alle lesen
elements.forEach((el, i) => {
  el.style.height = heights[i] + 10 + 'px';  // Alle schreiben
});

Layouteigenschaften, die eine Neuberechnung erzwingen, umfassen unter anderem offsetHeight, offsetWidth, scrollTop, clientHeight, getBoundingClientRect() und getComputedStyle(). Vermeiden Sie das Auslesen dieser Eigenschaften innerhalb von Schleifen, die auch DOM-Änderungen vornehmen.

Third-Party-Scripts und INP

Externe Scripts sind einer der Hauptverursacher schlechter INP-Werte. Analytics-Scripts, Werbe-Scripts, Chat-Widgets und Social-Media-Einbettungen registrieren eigene Event Listener und führen eigene Aufgaben auf dem Main Thread aus. Jedes dieser Scripts verlängert potenziell den Input Delay für Nutzerinteraktionen.

  • Laden Sie Scripts mit defer oder async: So blockieren sie nicht das initiale Parsing und Rendering
  • Priorisieren Sie nach Wichtigkeit: Geschäftskritische Scripts zuerst, Marketing-Pixel später
  • Entfernen Sie nicht benötigte Scripts: Jedes Script, das seit Monaten keine Kampagne mehr unterstützt, belastet unnötig den Main Thread. Mehr dazu im Artikel über Third-Party-Scripts.
  • Nutzen Sie Intersection Observer: Laden Sie Chat-Widgets und Social-Media-Buttons erst, wenn der Nutzer zu ihnen scrollt

XICTRAQ erkennt alle Third-Party-Scripts auf Ihrer Website und quantifiziert deren Einfluss auf die Main-Thread-Auslastung. So identifizieren Sie Scripts, die den INP-Wert am stärksten belasten, und können gezielt optimieren oder entfernen.

Progressive Enhancement und native HTML-Elemente

Viele JavaScript-Implementierungen lassen sich durch native HTML-Elemente ersetzen, die ohne Main-Thread-Belastung sofort reagieren. Das ist nicht nur für INP vorteilhaft, sondern verbessert auch die Barrierefreiheit und reduziert die Codekomplexität.

  • <details>/<summary> statt JavaScript-Accordion: Reagiert sofort, keine Main-Thread-Last
  • <dialog> statt Custom-Modal: Native Modals haben eingebautes Fokus-Management
  • Native Formularvalidierung statt clientseitiger Validierungsbibliotheken
  • CSS-Animationen statt JavaScript-Animationen: CSS-Animationen laufen auf dem Compositor-Thread
  • <input type="color/date/range"> statt Custom-Picker: Native Picker sind sofort responsiv

Code-Splitting und Lazy-Loading von JavaScript

Je weniger JavaScript eine Seite laden und ausführen muss, desto besser der INP. Code-Splitting teilt Ihre Anwendung in Chunks auf, die nur bei Bedarf geladen werden. Route-basiertes Splitting lädt nur den Code für die aktuelle Seite. Component-basiertes Splitting lädt komplexe UI-Komponenten erst bei Interaktion.

Lazy Import einer schweren Komponente
// Statt statischem Import
// import { HeavyChart } from './HeavyChart';

// Lazy Import bei Bedarf
button.addEventListener('click', async () => {
  const { HeavyChart } = await import('./HeavyChart');
  HeavyChart.render(container);
});

Frameworks wie SvelteKit bieten Code-Splitting standardmäßig. Jede Route erhält automatisch ein eigenes Bundle, und gemeinsame Abhängigkeiten werden in Shared Chunks extrahiert. Das Ergebnis: minimale JavaScript-Last pro Seite, was den INP direkt verbessert.

INP messen: Feld- und Labordaten

INP kann nur durch Felddaten zuverlässig bewertet werden, da Labortests die Vielfalt realer Nutzerinteraktionen nicht abbilden. Lighthouse misst TBT (Total Blocking Time) als Proxy für INP, aber TBT und INP sind nicht identisch.

Felddaten (real)

Chrome UX Report, PageSpeed Insights, XICTRAQ. Zeigen die tatsächliche INP-Erfahrung realer Nutzer über 28 Tage.

Labordaten (simuliert)

Chrome DevTools, Lighthouse (TBT). Nützlich zur Diagnose, aber nicht identisch mit realen INP-Werten.

Für die Diagnose verwenden Sie Chrome DevTools: Öffnen Sie den Performance-Tab, aktivieren Sie Web Vitals, und zeichnen Sie typische Interaktionen auf. Das Panel zeigt Input Delay, Processing Time und Presentation Delay für jede Interaktion separat an.

INP-Optimierung für verschiedene Website-Typen

Formulare und Checkout-Seiten

Formulare sind interaktionsintensiv. Jeder Tastendruck, jede Feldvalidierung und jeder Schritt im Checkout wird von INP erfasst. Nutzen Sie native Formularvalidierung statt JavaScript-Bibliotheken. Validieren Sie Felder asynchron nach Verlust des Fokus (blur), nicht bei jedem Tastendruck. Halten Sie Checkout-Schritte schlank und laden Sie nur den Code für den aktuellen Schritt.

Filter und Produktkonfiguratoren

Filter-Funktionen in Online-Shops und Produktkonfiguratoren lösen häufig komplexe UI-Updates aus: Produktlisten werden neu sortiert, Preise neu berechnet, Bilder gewechselt. Nutzen Sie virtuelles Scrolling für lange Listen, berechnen Sie Filter-Ergebnisse in einem Web Worker und zeigen Sie sofort einen Lade-Indikator an, um dem Nutzer visuelles Feedback zu geben, während die Aktualisierung läuft.

Content-reiche Seiten mit vielen Interaktionen

Nachrichtenportale, Social-Media-Feeds und Dashboards haben viele interaktive Elemente: Accordions, Tabs, Share-Buttons, Kommentar-Felder. Jedes Element registriert Event Listener, die den Main Thread belasten. Nutzen Sie Event Delegation (einen Listener auf dem Elternelement statt auf jedem Kind-Element) und implementieren Sie Lazy-Loading für Interaktionscode, der erst bei Sichtbarkeit benötigt wird.

INP im Zusammenspiel mit LCP und CLS

INP existiert nicht isoliert. Eine Optimierung, die INP verbessert, kann theoretisch LCP oder CLS verschlechtern, wenn sie nicht sorgfältig umgesetzt wird. Aggressives Code-Splitting kann die Reaktionsfähigkeit verbessern, aber zu zusätzlichen Netzwerkanfragen führen, die den LCP verschlechtern. Das Entfernen von Preload-Hints für Third-Party-Scripts verbessert den INP, kann aber CLS verschlechtern, wenn ein Script für die Layout-Stabilität benötigt wird.

XICTRAQ überwacht alle drei Core Web Vitals gleichzeitig und zeigt Ihnen, wie Änderungen sich auf das Gesamtbild auswirken. Die Reporting-Funktion erstellt Berichte, die Veränderungen aller drei Metriken korrelieren, damit Sie Trade-offs erkennen und vermeiden.

Priorisierte Maßnahmen-Checkliste

  1. Long Tasks mit Chrome DevTools identifizieren und mit Yielding aufteilen
  2. Third-Party-Scripts evaluieren und nicht benötigte Scripts entfernen
  3. Event Handler schlank halten und rechenintensive Logik in Web Worker verlagern
  4. Layout Thrashing durch Bündeln von DOM-Lese- und Schreibvorgängen vermeiden
  5. Native HTML-Elemente statt JavaScript-Widgets verwenden
  6. Code-Splitting und Lazy-Loading für interaktive Komponenten implementieren
  7. Debouncing und Throttling für Scroll- und Input-Handler einsetzen
  8. requestAnimationFrame für visuelle Updates nutzen
  9. Kontinuierliches INP-Monitoring mit XICTRAQ einrichten

Kontinuierliches INP-Monitoring einrichten

Da INP die Reaktionsfähigkeit über alle Nutzerinteraktionen hinweg misst, kann sich der Wert mit jedem Deployment, jeder Code-Änderung und jedem neuen Plugin verschlechtern. XICTRAQ überwacht Ihre Core Web Vitals einschließlich INP kontinuierlich und warnt Sie bei Verschlechterungen.

Die Kombination aus Performance-Monitoring, Third-Party-Script-Erkennung, regelmäßigen Lighthouse-Audits und dem SEO-Monitoring gibt Ihnen die Werkzeuge, um INP-Probleme nicht nur zu erkennen, sondern auch deren Ursache schnell zu identifizieren. Starten Sie jetzt mit einer kostenlosen Demo oder registrieren Sie sich für das kontinuierliche Monitoring Ihrer Website.

Was genau misst INP?
INP misst die Reaktionszeit der Website auf Nutzerinteraktionen (Klicks, Tastendrücke, Tippgesten). Der Wert umfasst drei Phasen: Input Delay (Wartezeit), Processing Time (Verarbeitung) und Presentation Delay (visuelles Update). Es wird die schlechteste bzw. eine hohe Perzentile aller Interaktionen während des Seitenbesuchs gemeldet.
Warum verfehlen so viele Websites den INP-Schwellenwert?
Laut Chrome UX Report verfehlen rund 65 % aller Websites den 200-ms-Schwellenwert. Der Hauptgrund sind JavaScript-Heavy-Websites mit vielen Third-Party-Scripts, komplexen Event Handlern und fehlender Main-Thread-Optimierung. INP ist deutlich strenger als der Vorgänger FID.
Was ist der Unterschied zwischen INP und TBT?
TBT (Total Blocking Time) misst die Summe aller Long Tasks während des Seitenladens und ist ein Laborwert. INP misst die tatsächliche Reaktionszeit bei Nutzerinteraktionen und ist ein Feldwert. Lighthouse verwendet TBT als Proxy, aber die Werte sind nicht identisch.
Wie finde ich heraus, welche Phase meinen INP verschlechtert?
Chrome DevTools Performance-Tab: Zeichnen Sie eine Interaktion auf und analysieren Sie die drei Phasen separat. Die Web Vitals Extension für Chrome zeigt INP-Werte direkt im Browser an. XICTRAQ korreliert INP-Daten mit Third-Party-Script-Analysen.
Hilft ein CDN bei der INP-Optimierung?
Ein CDN verbessert primär die Ladezeit (TTFB, LCP), nicht direkt den INP. INP wird durch JavaScript-Ausführung auf dem Client bestimmt, nicht durch Netzwerklatenz. Indirekt kann ein CDN helfen, indem es Ressourcen schneller bereitstellt und so die Main-Thread-Blockierung beim Laden reduziert.
Welche Frameworks bieten die beste INP-Performance?
Frameworks mit minimalem JavaScript-Overhead und automatischem Code-Splitting schneiden am besten ab. SvelteKit, Astro und Qwik erzeugen weniger JavaScript als React-basierte Frameworks. Entscheidender als das Framework ist jedoch die Implementierung: Jedes Framework kann gute INP-Werte erreichen, wenn Long Tasks vermieden und Event Handler optimiert werden.
Quellen und Studien

Dieser Artikel basiert auf Daten von: Core Web Vitals (Google).

In 60 Sekunden starten

Lassen Sie XICTRAQ Ihre Website bewachen.

Dauerhaft kostenloser Plan verfügbar. Keine Kreditkarte, keine Installation, keine versteckten Kosten.