Core Web Vitals: Der vollständige Leitfaden 2026
So lesen Sie LCP, INP und CLS anhand von Felddaten, finden die verantwortliche Schicht und verbessern das Nutzererlebnis – ohne Rankings zu versprechen.
Core Web Vitals (CWV) sind Googles Metriken für das tatsächliche Nutzererlebnis: Ladegeschwindigkeit, Reaktionsfähigkeit der Oberfläche und visuelle Stabilität. Seit Mai 2021 gehören sie zur Page Experience und fließen in das Ranking ein.
Alle drei Metriken werden pro URL bewertet – gute Werte auf der Startseite helfen den Produktseiten nicht. Google bezieht die Daten aus dem Chrome UX Report (echte Nutzer), nicht aus Laborsimulationen.
Was Core Web Vitals sind
LCP – gut
Das größte Element ist vollständig dargestellt
INP – gut
Die Oberfläche hat auf Eingaben reagiert
CLS – gut
Minimale Layoutverschiebung
Schwelle der Bewertung
Anteil der Nutzer im grünen Bereich
Geschichte: von FID zu INP
Google hat Core Web Vitals 2020 mit drei Metriken eingeführt: LCP, FID (First Input Delay) und CLS. FID maß die Verzögerung beim ersten Tippen. Das war wertvoll, erfasste aber nur einen Teil der Interaktivität einer Seite.
Google führt drei Metriken ein: LCP, FID, CLS. Tools beginnen, die neuen Signale zu unterstützen.
CWV fließen offiziell in den Ranking-Algorithmus ein. Der Rollout ist im August 2021 abgeschlossen.
Interaction to Next Paint ersetzt First Input Delay. INP erfasst alle Interaktionen während der Sitzung, nicht nur die erste.
Seiten mit viel JavaScript (SPAs, E-Commerce, Filter) spüren den INP-Druck. Die Optimierung langer Tasks wird zur Priorität.
LCP – Largest Contentful Paint
LCP erfasst den Zeitpunkt, zu dem der größte sichtbare Inhaltsblock der Seite vollständig gezeichnet ist. Typischerweise ist das ein Hero-Bild, ein Titelbild eines Artikels oder eine große H1-Überschrift.
| LCP-Wert | Bewertung | Maßnahme |
|---|---|---|
| ≤ 2,5 s | Gut | Beibehalten, in der GSC überwachen |
| 2,5 – 4,0 s | Verbesserungsbedarf | Bilder optimieren, TTFB senken |
| > 4,0 s | Schlecht | Kritische Priorität, sofort prüfen |
Häufige Ursachen für einen langsamen LCP
- Langsame TTFB (Server, CDN, fehlendes Caching) – verantwortlich für bis zu 40 % der LCP-Zeit
- Hero-Bild nicht priorisiert:
fetchpriority="high"fehlt - Hero-Bild nicht vorab geladen (
<link rel="preload">) - Render-blockierendes CSS/JS verzögert die erste Darstellung
- Bilder zu groß: kein WebP/AVIF, kein
srcset - LCP-Element hängt an JS-Rendering (React SSR ist zum Zeitpunkt des LCP noch nicht abgeschlossen)
<!-- Prioritise the LCP image -->
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high" />
<img
src="/hero.webp"
alt="Hero"
fetchpriority="high"
loading="eager"
decoding="async"
width="1280"
height="720"
/>loading="lazy" nicht bei Hero-Bildern – der Browser verzögert deren Laden, und der LCP steigt. Setzen Sie lazy nur für Bilder unterhalb des sichtbaren Bereichs.INP – Interaction to Next Paint
INP misst die Verzögerung von einer Nutzerinteraktion (Klick, Tastendruck, Tippen) bis zur nächsten sichtbaren Darstellung der Seite. Anders als FID erfasst INP alle Interaktionen während der Sitzung und nutzt den schlechtesten Fall (mit bereinigten Ausreißern).
Was den INP verschlechtert
- Long Tasks über 50 ms blockieren den Hauptthread – der Browser kann Eingaben nicht verarbeiten
- Schwere Event-Handler: synchrones setState in React, massenhafte DOM-Updates
- Kein
scheduler.yield()und keinsetTimeout(0), um lange Tasks aufzuteilen - Skripte von Drittanbietern (Chat, Werbung, Analytics) belegen den Hauptthread
- JavaScript-gesteuerte Animationen statt CSS-
transform/opacity
// Breaking up a Long Task with scheduler.yield()
async function processLargeList(items) {
for (let i = 0; i < items.length; i++) {
processItem(items[i]);
// Yield to the main thread every 50 items
if (i % 50 === 0) {
await scheduler.yield();
}
}
}scheduler.yield() ist eine moderne Alternative zu setTimeout(0). Der Browser gibt die Kontrolle ab, verarbeitet Nutzereingaben und setzt die Aufgabe danach fort. Unterstützt ab Chrome 115; für andere Browser lässt sich setTimeout als Polyfill nutzen.CLS – Cumulative Layout Shift
CLS ist eine einheitenlose Kennzahl für die gesamte unerwartete Verschiebung von Seitenelementen. Formel: Anteil der Auswirkung × Anteil der Distanz. Die Verschiebung eines gedrückten Buttons zählt nicht – nur Elemente, die ohne Nutzeraktion verrutschen.
| CLS-Wert | Bewertung | Typische Ursache |
|---|---|---|
| ≤ 0,1 | Gut | Platz für alle Elemente reserviert |
| 0,1 – 0,25 | Verbesserungsbedarf | Schriften ohne font-display: swap, Banner |
| > 0,25 | Schlecht | Bilder ohne Maße, dynamisch eingefügte Elemente |
Häufige Ursachen für CLS
- Bilder ohne Attribute
widthundheight– der Browser kennt die Größe vor dem Laden nicht - Webschriften ohne
font-display: optionaloderswap– FOUT verschiebt den Text - Dynamisch eingeblendete Banner und Cookie-Hinweise oben auf der Seite
- CSS-Animationen, die
top/left/marginstatttransformändern - Werbeanzeigen ohne reservierten Platz (
min-heightam Container)
/* Reserve space for an ad slot */
.ad-container {
min-height: 250px;
width: 100%;
}
/* Animation without CLS: transform and opacity only */
.card:hover {
transform: translateY(-4px);
/* Wrong: margin-top: -4px — this shifts layout */
}Auswirkung auf Rankings
Google hat bestätigt: CWV gehören zu den Page-Experience-Signalen, die in das Ranking einfließen. Sie wirken aber als Tiebreaker, nicht als wichtigster Faktor. Eine Seite mit starkem Inhalt und schlechten CWV rankt vor einer Seite mit guten CWV und schwachem Inhalt.
Der indirekte Effekt wiegt schwerer: Schnelle Seiten senken die Absprungrate und erhöhen die Sitzungstiefe und die Conversions. Der wirtschaftliche Nutzen von CWV ist stärker als der SEO-Nutzen. Amazon stellte fest: +100 ms bei LCP entsprechen −1 % Umsatz.
So messen Sie CWV
Es gibt zwei Arten von Daten: Labordaten (Simulation – Lighthouse, WebPageTest) und Felddaten (echte Nutzer – CrUX, GSC). Google rankt auf Basis der Felddaten. Labordaten dienen der Diagnose.
| Art | Tool | Was es zeigt | Anwendungsfall |
|---|---|---|---|
| Feld | Google Search Console | CWV für alle URLs der Website (p75) | Problematische Seiten priorisieren |
| Feld | CrUX-Dashboard (Looker) | Trends im 28-Tage-Fenster | Fortschritt über die Zeit verfolgen |
| Labor | PageSpeed Insights | LCP/INP/CLS + Empfehlungen | Eine bestimmte URL diagnostizieren |
| Labor | Lighthouse (DevTools) | Detaillierter Wasserfall, Trace | Ursachenanalyse im Detail |
| Labor | WebPageTest | Videoaufnahme, Filmstreifen | Vorher-nachher-Vergleich |
Diagnosetools
| Tool | Kostenlos | LCP | INP |
|---|---|---|---|
| Google Search Console | Ja | ✓ | ✓ |
| PageSpeed Insights | Ja | ✓ | ✓ |
| Chrome DevTools | Ja | ✓ | ✓ |
| Lighthouse CI | Ja | ✓ | ✓ |
| WebPageTest | Ja (mit Limits) | ✓ | ✓ |
| SpeedCurve | Kostenpflichtig | ✓ | ✓ |
| Sentry (web-vitals SDK) | Freemium | ✓ | ✓ |
| Tool | CLS | Felddaten |
|---|---|---|
| Google Search Console | ✓ | ✓ |
| PageSpeed Insights | ✓ | ✓ (CrUX) |
| Chrome DevTools | ✓ | — |
| Lighthouse CI | ✓ | — |
| WebPageTest | ✓ | — |
| SpeedCurve | ✓ | ✓ |
| Sentry (web-vitals SDK) | ✓ | ✓ |
// web-vitals v4 — collect real CWV
import { onLCP, onINP, onCLS } from 'web-vitals';
function sendToAnalytics({ name, value, id }) {
// Send to GA4
gtag('event', name, {
value: Math.round(name === 'CLS' ? value * 1000 : value),
metric_id: id,
metric_delta: value,
});
}
onLCP(sendToAnalytics);
onINP(sendToAnalytics);
onCLS(sendToAnalytics);Checkliste zur Optimierung
LCP
fetchpriority="high"setzen undloading="lazy"vom Hero-Bild entfernen<link rel="preload" as="image">für das Hero-Bild im<head>ergänzen- Bilder in WebP oder AVIF umwandeln,
srcsetkonfigurieren - TTFB auf ≤ 800 ms senken: CDN, Caching, Edge SSR
- Render-blockierende Skripte aus dem
<head>entfernen (async/defer/module) Cache-Control: max-age=31536000für statische Assets setzen
INP
- Long Tasks in den Chrome DevTools prüfen: Performance → Main Thread
- Tasks über 50 ms mit
scheduler.yield()odersetTimeout(0)aufteilen - Handler für
inputundscrollentprellen (16–100 ms) - React optimieren:
useMemo,useCallback,React.memo, Virtualisierung von Listen - Skripte von Drittanbietern in Web Worker auslagern oder erst nach dem LCP laden
- CSS-Animationen nur über
transformundopacityumsetzen
CLS
widthundheightbei allen<img>-Elementen setzen – der Browser reserviert dann Platzaspect-ratiofür Container mit unbekannten Maßen verwendenfont-display: optionalfür kritische Schriften konfigurierenmin-heightfür Werbeflächen und dynamische Inhalte reservieren- Hinweise (Cookie, Banner) unten statt oben auf der Seite platzieren
- FOUT prüfen: Schriften ohne Fallback verschieben den Text beim Laden
Was sind Core Web Vitals und warum sind sie für SEO wichtig?
Wie prüfe ich die Core Web Vitals meiner Website?
Der LCP liegt über 4 Sekunden – wie dringend ist die Behebung?
Gelten für Mobile und Desktop dieselben Schwellenwerte der Core Web Vitals?
Was ist für E-Commerce wichtiger: LCP oder CLS?
Check it with SpiderHead
Free and local: run the audit on your own machine.



