Jeder SEO-Blog hat einen Core-Web-Vitals-Artikel. Was in der Praxis verwirrt: Eine Seite kann in PageSpeed Insights schlecht abschneiden und für echte Besucher trotzdem schnell sein. In Luminas PageSpeed-Studie zu 47 DACH-Nachrichtenseiten, gemessen am 17.09.2026, hatten alle 47 in den Felddaten einen guten LCP (Median 1,3 s). Der Median des mobilen Labor-Scores lag dagegen bei 52. Dieselben Seiten am selben Tag, zwei völlig unterschiedliche Antworten.

Core Web Vitals sind drei Kennzahlen, an denen Google misst, wie eine Seite für echte Nutzer wirkt. Largest Contentful Paint (LCP) zeigt, wann der Hauptinhalt sichtbar wird. Interaction to Next Paint (INP) erfasst, wie schnell die Seite auf Klicks und Taps reagiert. Cumulative Layout Shift (CLS) erfasst, wie stabil das Layout während des Ladens bleibt. Die Werte kommen aus Chrome-Felddaten echter Nutzer über rollierende 28 Tage, nicht aus einer Laborsimulation auf einer einzelnen Maschine.

Was Core Web Vitals wirklich messen

Largest Contentful Paint (LCP): wann der Hauptinhalt erscheint

LCP ist die Zeit vom Start des Ladevorgangs bis zum Moment, in dem das größte sichtbare Element im Viewport fertig gerendert ist. Dieses Element ist meistens das Hero-Bild, die Haupt-Überschrift oder ein großer Textblock. Es ist der Moment, in dem der Nutzer zum ersten Mal das Gefühl hat: „Ok, die Seite ist da.“

Guter LCP: 2,5 Sekunden oder weniger im 75. Perzentil. Schlecht: mehr als 4 Sekunden. Die meisten Seiten, die beim LCP scheitern, scheitern an einer von vier Ursachen: ein nicht optimiertes Hero-Bild (zu groß, falsches Format, kein fetchpriority="high"), render-blockierende Third-Party-Skripte, langsame Server-Antwortzeiten (TTFB) oder eine Web-Font, die den Text-Render blockiert.

Interaction to Next Paint (INP): wie schnell die Seite reagiert

INP misst die Latenz jeder Nutzer-Interaktion auf der Seite: Klicks, Taps, Tastendrücke. Es erfasst die ganze Strecke vom Input-Event bis zum nächsten Paint, der die Aktion sichtbar bestätigt, inklusive Event-Handler-Zeit, DOM-Updates, Style- und Layout-Neuberechnung und Paint. Gemeldet wird die langsamste Interaktion auf der Seite. Bei Seiten mit sehr vielen Interaktionen lässt Google pro 50 Interaktionen die höchste weg, damit ein einzelner Ausreißer in einer langen Sitzung nicht den Wert bestimmt.

Guter INP: 200 Millisekunden oder weniger. Schlecht: mehr als 500 ms. INP hat First Input Delay (FID) am 12. März 2024 abgelöst. FID hat nur die Input-Verzögerung der ersten Interaktion gemessen. Wer bei INP scheitert, hat schweres JavaScript auf dem Main-Thread: Analytics-Skripte, die beim Klick 300 ms blockieren, React-Re-Renders, die Tausende Virtual-DOM-Nodes iterieren, Event-Handler in einer setTimeout(0)-Warteschlange, die nicht schnell genug abgearbeitet wird.

Cumulative Layout Shift (CLS): wie stabil das Layout bleibt

CLS erfasst unerwartete Layout-Shifts, also Sprünge von Elementen auf der Seite, wenn neuer Content nachgeladen wird. Jeder Shift trägt einen Score bei, basierend darauf, wie viel vom Viewport bewegt wurde und wie weit. Google summiert die Shifts innerhalb von Sitzungsfenstern (Shifts mit weniger als 1 Sekunde Abstand, jedes Fenster höchstens 5 Sekunden lang) und nimmt das größte Fenster als deinen CLS. Klicks und Taps innerhalb von 500 ms vor einem Shift zählen nicht (vom Nutzer ausgelöste Animationen sind also ok).

Guter CLS: 0,1 oder weniger. Schlecht: mehr als 0,25. Die üblichen Ursachen: Bilder ohne explizite width- und height-Attribute (der Browser reserviert keinen Platz, bis das Bild geladen ist, und schiebt dann den Content nach unten), dynamisch injizierte Werbung oder Embeds, Web-Fonts, die mitten im Paint umschwenken und den Textblock neu skalieren, und Hero-Sektionen mit einem spät ladenden Video, das den Artikel darunter nach unten drückt.

Die Grenzwerte für 2026

Google veröffentlicht drei Grenzwerte pro Metrik: Gut, Verbesserung nötig, Schlecht. Den Status „Gut“ bei einer Metrik erreichst du nur, wenn das 75. Perzentil deiner echten Nutzer in diesem Bereich liegt. Das bedeutet: 25 % deines Traffics können noch im „Schlecht“-Bereich sein und du bestehst trotzdem.

Metrik Gut (75 % ≤) Verbesserung nötig Schlecht (>)
LCP (Largest Contentful Paint) 2,5 s 2,5 s – 4,0 s 4,0 s
INP (Interaction to Next Paint) 200 ms 200 ms – 500 ms 500 ms
CLS (Cumulative Layout Shift) 0,1 0,1 – 0,25 0,25

Eine Seite ist nur dann „gut auf Core Web Vitals“, wenn alle drei Metriken im 75. Perzentil gut sind. Eine einzige schlechte Metrik reicht, und du fällst durch. Im ganzen Web scheitern Seiten am häufigsten an LCP. Im CrUX-Release für August 2026 hatten 68,1 % der Origins einen guten LCP, gegenüber 81,5 % bei CLS und 85,3 % bei INP. INP wird allerdings schlechter, das Chrome-Team nennt die anhaltende Verschlechterung besorgniserregend.

Felddaten vs. Labordaten

Die größte Quelle der CWV-Verwirrung: Zwei Tools können dir für dieselbe Seite komplett unterschiedliche Antworten geben. Beide haben recht. Sie messen verschiedene Dinge.

Felddaten fassen die letzten 28 Tage echter Chrome-Nutzer auf deiner Seite zusammen. Google sammelt sie über den Chrome User Experience Report (CrUX), der anonymisierte Metriken von Nutzern sammelt, die zugestimmt haben. Felddaten sind das, was Google tatsächlich fürs Ranking verwendet. Du siehst sie oben im PageSpeed-Insights-Bericht, im Core-Web-Vitals-Bericht der Search Console und im rohen CrUX-BigQuery-Datensatz für seitenweite Analysen.

Labordaten sind ein einzelner simulierter Lauf auf einem gedrosselten Mobile-Profil. Lighthouse in den Chrome DevTools oder der PageSpeed-Insights-Laborlauf machen beide genau das. Das Profil: 1,6 Mbps Download, 750 Kbps Upload, 150 ms Round-Trip-Zeit, 4× CPU-Drosselung. Eine Näherung an ein Mid-Range-Smartphone auf 4G. Labordaten sind reproduzierbar: gleicher Input, gleiches Ergebnis. Deshalb erkennst du damit Regressionen vor dem Deploy. Aber kein einzelner echter Nutzer ist exakt auf diesem Profil unterwegs.

Wenn Feld und Labor auseinanderlaufen, sagt dir die Lücke etwas. In derselben DACH-Studie hatte br.de mobil im Labor einen LCP von 39,5 Sekunden, im Feld (CrUX-Origin-Daten, 75. Perzentil) dagegen 1,3 Sekunden. Die beiden Werte landen nicht einmal in derselben Kategorie: im Labor schlecht, im Feld gut. Warum, zeigt die Studie nicht. Ein häufiger Grund: Lighthouse lädt jede Seite kalt, echte Besucher kommen oft mit gefülltem Cache und bereits offenen Verbindungen. Das umgekehrte Muster, bei dem Labor besteht und Feld scheitert, bedeutet meistens, dass echte Nutzer langsame Geräte oder Ad-Blocker haben, die dein JavaScript brechen.

Felddaten für Ranking-Entscheidungen, Labordaten fürs Debugging.

Google nutzt Felddaten. Eine Seite, die im Labor scheitert, aber im Feld besteht, ist meistens ok, weil echte Nutzer den Engpass aus dem Labor einfach nicht treffen. Regressionen fängst du aber weiterhin im Labor ab, bevor sie Nutzer erreichen. Nutze also beides.

So misst du Core Web Vitals

Fünf Tools, jedes für eine andere Frage.

PageSpeed Insights (Feld + Labor)

Der kanonische Einstieg. URL einfügen, Feld- (CrUX) und Labor-Werte (Lighthouse) für Desktop und Mobile bekommen. Kostenlos, kein Login, identische API wie jeder PSI-Wrapper. Luminas PageSpeed-Tool ergänzt KI-generierte Fix-Snippets aus den Audit-Daten.

Lumina PageSpeed →
Search Console (seitenweite Felddaten)

Der Core-Web-Vitals-Bericht zeigt für jede Seite deiner Website, ob sie besteht, gruppiert nach URL-Mustern. Nur Felddaten, 28-Tage-Fenster. Am besten geeignet, um URL-Gruppen zu erkennen, die sich nach einem Deploy verschlechtert haben.

GSC Dashboard →
Lighthouse in den DevTools (Labor-Debug)

Chrome DevTools → Tab Lighthouse → Bericht generieren. Einzel-URL-Labor-Lauf, gleiche Engine wie PSI. Nimm es, wenn du das Trace-Tab, das LCP-Element-Breakdown oder eine bestimmte Regression offline reproduzieren willst.

Lighthouse-Docs →
web-vitals.js (eigenes RUM)

Googles 3-KB-JavaScript-Library. In jede Seite einbinden und die Callbacks an deinen Analytics-Endpoint schicken. Du bekommst CWV-Daten pro Nutzer für deine eigene Seite, ohne auf CrUX zu warten. Der einzige Weg, CWV auf Seiten mit wenig Traffic zu messen.

web-vitals auf GitHub →
CrUX BigQuery (historische Felddaten)

Google veröffentlicht den vollen CrUX-Datensatz monatlich in BigQuery. Damit fragst du die CWV jeder Origin über Jahre zurück ab und vergleichst dich mit Wettbewerbern oder deiner Branche. Das kostenlose Kontingent von BigQuery (1 TB Abfragen pro Monat) reicht für die meisten einzelnen Websites. Darüber hinaus gelten die normalen BigQuery-Preise.

CrUX BigQuery →

Was du nicht brauchst: einen RUM-Anbieter nur für CWV. web-vitals.js plus deine bestehende Analytics deckt ab, was die meisten Websites für CWV brauchen. Ein kommerzielles RUM-Produkt lohnt sich erst, wenn du zusätzlich Session-Replay oder Cross-Service-Tracing brauchst.

Beeinflussen Core Web Vitals das Google-Ranking?

Nur geringfügig. Google sagt, dass es die relevantesten Inhalte zuerst zeigt, auch wenn die Page Experience schlecht ist, und dass eine gute Page Experience helfen kann, wenn viele Seiten ähnlich hilfreich sind. Core Web Vitals fließen in die Ranking-Systeme ein, wiegen aber nicht schwerer als Relevanz. So beschreibt Google die Page Experience, seit es Core Web Vitals 2021 als Signal eingeführt hat.

Warum du dich trotzdem um CWV kümmern solltest, liegt nicht an Rankings, sondern an den Nutzern, die du schon hast. Eine Seite mit 5-Sekunden-LCP verliert echte Nutzer, bevor sie den Content sehen. Eine Seite mit 500 ms INP fühlt sich bei jedem Klick kaputt an. Eine Seite mit CLS 0,3 wirft Nutzer mitten im Lesen raus, wenn das Layout springt. Das sind Conversion-Probleme und Retention-Probleme. Der Ranking-Bonus ist ein Rundungsfehler neben dem UX-Verlust.

Google veröffentlicht nicht, wie stark Core Web Vitals gewichtet werden, und auch die Hinweise zur Page Experience sagen nicht, dass sie bei umkämpften SERPs mehr zählen. Ist eine Seite nicht relevant genug, ändert ein bestandener CWV-Test daran nichts.

LCP, INP und CLS optimieren

Vergiss den allgemeinen Rat „Mach die Seite schneller“. Was hilft, hängt davon ab, welche Metrik scheitert.

LCP fixen: das größte Element zuerst ausliefern

Identifiziere zuerst das LCP-Element. PageSpeed Insights sagt dir das im Diagnostik-Abschnitt. Suche nach „Largest Contentful Paint element“ mit dem exakten HTML. Es ist meistens ein Hero-Bild, eine Überschrift oder ein großer Textblock. Sobald du weißt, welches es ist, helfen diese Maßnahmen:

  • Das LCP-Bild preloaden. <link rel="preload" as="image" href="..." fetchpriority="high"> im Head ergänzen. Das startet den Fetch, bevor der Browser den <img>-Tag beim Parsen entdeckt. Nur ergänzen, wenn du verifiziert hast, dass das Element wirklich der LCP ist, denn das falsche Bild zu preloaden verlangsamt den echten LCP (siehe Luminas eigene LCP-Untersuchung der Startseite vom 20.04.2026).
  • Das LCP-Bild in WebP oder AVIF ausliefern. WebP spart 25–35 % gegenüber JPG bei gleicher Qualität. AVIF nochmal 20 % obendrauf. Beide werden 2026 von jedem Browser unterstützt. Cloudflare Images, ImageKit, Next.js Image oder ein Build-Time-Konvertierungsscript deckt das ab.
  • loading="eager" und fetchpriority="high" auf dem LCP-Bild setzen. In manchen CMS ist loading="lazy" der Default, was above-the-fold den Fetch um hunderte Millisekunden verzögert. Eager + High Priority signalisieren den kritischen Pfad.
  • Die Server-TTFB fixen. Jede Millisekunde TTFB geht direkt in den LCP ein. Am Edge cachen (Cloudflare, Fastly, Netlify). Wenn dein App-Server 800 ms zum Rendern braucht, rettet keine Front-End-Optimierung diese Zeit.
  • Kritisches CSS inline stellen. Externe Stylesheets blockieren den First Paint. Zieh das CSS, das für den sichtbaren Bereich nötig ist, direkt in den Head und lade den Rest verzögert mit <link rel="preload" as="style" onload="this.rel='stylesheet'">.

INP fixen: den Main-Thread frei halten

INP scheitert, wenn JavaScript den Main-Thread während einer Nutzer-Interaktion blockiert. Alles dreht sich darum, lange Tasks zu verkürzen:

  • Lange Tasks aufbrechen. Jeder synchrone JavaScript-Block, der länger als 50 ms läuft, ist in Chromes Vokabular ein „Long Task“. Teil ihn mit scheduler.yield() (modern) oder await new Promise(r => setTimeout(r, 0)) (kompatibel) innerhalb von Loops.
  • Nicht essenzielle Third-Party-Skripte verzögert laden. Analytics, Chat-Widgets, Ad-Scripts, Heatmap-Tracker. Lade sie nach der ersten Interaktion, nicht beim Pageload. Luminas eigenes GTM-Setup nutzt Interaction-only-Deferral (Scroll, Klick, Keydown, Mousemove), um gtag.js aus dem Pre-Interaction-Main-Thread rauszuhalten.
  • Forced Layout in Event-Handlern vermeiden. Das Lesen von offsetWidth, getBoundingClientRect, clientHeight direkt nach einem DOM-Write zwingt den Browser zu einer synchronen Layout-Neuberechnung. Bündel Lesezugriffe vor Schreibzugriffen und nutze requestAnimationFrame, wenn du Layout-Daten brauchst.
  • CSS-Transitions statt JavaScript-Animationen. Transitions auf transform und opacity können auf dem Compositor-Thread laufen, JavaScript-Animationen laufen auf dem Main-Thread. INP misst die Verzögerung bis zum nächsten Paint, also halte den Klick-Handler selbst kurz und überlass die Optik dem CSS.
  • React-Re-Renders reduzieren. React-Components, die bei jeder Interaktion re-rendern, besonders Context-Provider mit häufig wechselndem State, kaskadieren in hunderte Virtual-DOM-Diffs. Nutze React.memo, Refs für State ohne UI-Bezug und teil den Context nach Update-Häufigkeit auf.

CLS fixen: Platz reservieren, bevor Content ankommt

Die Liste für CLS ist kurz, wird aber oft ignoriert:

  • Immer width und height auf jedem <img> setzen. Der Browser reserviert Platz über das Seitenverhältnis, bevor das Bild geladen ist. Ohne diese Attribute wird das Bild mit Null-Höhe eingefügt und schiebt danach alles nach unten.
  • Platz für Werbung, Embeds und dynamisch injizierten Content reservieren. Umschließe den Slot mit einem <div> mit fester min-height, die zur erwarteten Content-Größe passt. Wenn die Werbung lädt, füllt sie den reservierten Platz, statt den Artikel zu schieben.
  • font-display: swap vorsichtig einsetzen. Es verhindert unsichtbaren Text, triggert aber einen Layout-Shift, wenn die Web-Font lädt und die Fallback-Font ersetzt. Wenn Fallback und Web-Font ähnliche Metriken haben (size-adjust, ascent-override, descent-override auf dem @font-face), ist der Swap unsichtbar. Wenn nicht, bricht der Text neu um.
  • Nach dem Laden keinen Content über bestehendem Content einfügen. Banner-Notifications, Cookie-Prompts, Newsletter-Overlays. Wenn sie mitten im Laden oben auf der Seite erscheinen, schieben sie alles nach unten. Rendere sie stattdessen als Fixed-Position-Overlays.

Nach den Fixes mit Luminas PageSpeed-Tool verifizieren (Feld + Labor in einem Bericht), JS vs. No-JS laufen lassen, um zu sehen, wie stark die CWV von deinem JavaScript-Layer abhängen, und im Alt Text Checker fehlende Bildmaße abfangen, die CLS verursachen. Alle drei kostenlos, ohne Login.

FAQ

Was sind Core Web Vitals in einfachen Worten?+
Core Web Vitals sind drei Kennzahlen, mit denen Google bewertet, wie sich eine Seite für einen echten Nutzer anfühlt: Largest Contentful Paint misst, wie schnell der Hauptinhalt sichtbar wird, Interaction to Next Paint misst, wie schnell die Seite auf Klicks und Taps reagiert, und Cumulative Layout Shift misst, wie stabil das Layout während des Ladens bleibt. Die Werte stammen aus Chrome-Felddaten echter Nutzer, nicht aus Labor-Simulationen. Google verwendet das 75. Perzentil deines realen Traffics als Schwellenwert.
Schaden schlechte Core Web Vitals meinen Google-Rankings?+
Nur geringfügig. Google sagt, dass es die relevantesten Inhalte zuerst zeigt, auch wenn die Page Experience schlecht ist, und dass eine gute Page Experience helfen kann, wenn viele Seiten ähnlich hilfreich sind. Ein Ranking-Signal ja, aber ein kleines. Relevanz geht vor. Rankingverluste durch einen reinen CWV-Fail sind selten. Was du tatsächlich verlierst, sind Nutzer: Eine Seite mit 5-Sekunden-LCP verliert Besucher, bevor sie den Content überhaupt sehen.
Wann hat INP FID als Core Web Vital abgelöst?+
Google hat Interaction to Next Paint am 12. März 2024 zum Core Web Vital erhoben und damit First Input Delay ersetzt. FID hat nur die Input-Verzögerung der ersten Interaktion gemessen. INP betrachtet alle Klicks, Taps und Tastendrücke vom Input bis zum nächsten Paint und meldet die langsamste Interaktion (bei sehr vielen Interaktionen fällt pro 50 die höchste weg). Wenn dein Artikel oder dein Code noch FID verwendet, stammt er aus der Zeit vor März 2024 und braucht ein Update.
Warum zeigt mein Core-Web-Vitals-Bericht „Nicht genügend Daten“?+
Googles Felddaten kommen aus dem Chrome User Experience Report (CrUX). Dieser berücksichtigt nur Seiten mit genug echtem Chrome-Traffic für ein stabiles 28-Tage-Rolling-Sample. Seiten mit wenig Traffic, brandneue Seiten und Seiten hinter Login haben zu wenig CrUX-Daten. Die Lösung ist nicht technisch. Du brauchst Traffic. Bis dahin sind Labor-Tools (PageSpeed-Insights-Laborlauf, Lighthouse in den DevTools) dein einziges Signal. Labor-Daten approximieren einen echten Nutzer auf einer gedrosselten 4G-Verbindung, anders als Feld, aber trotzdem nützlich, um Regressionen zu erkennen.
Sind Core Web Vitals auf Mobile oder Desktop wichtiger?+
In der Praxis Mobile. Die Grenzwerte sind identisch, und die Search Console zeigt Mobile und Desktop getrennt an. Auf Smartphones scheitern Seiten aber deutlich öfter: Im Web Almanac 2025 hatten 74 % der Desktop-Seiten einen guten LCP, auf Mobile waren es 62 %. Auf Mobile legen die gedrosselte Verbindung und die schwächere CPU jede Rendering-Sünde offen. Optimiere zuerst für Mobile. Die Desktop-Werte folgen automatisch.
Was ist der Unterschied zwischen Felddaten und Labordaten?+
Felddaten sind die 28-Tage-Rolling-Werte echter Chrome-Nutzer auf deiner Seite, gesammelt via CrUX und sichtbar in PageSpeed Insights, im Core-Web-Vitals-Bericht der Search Console und im CrUX-BigQuery-Datensatz. Labordaten sind ein einzelner simulierter Lauf auf einem gedrosselten Mobile-Profil (1,6 Mbps, 150 ms RTT, 4× CPU-Drosselung), ausgeführt von Lighthouse in den Chrome DevTools oder PSI. Felddaten sind das, was Google wirklich fürs Ranking verwendet. Labordaten sind der Weg, Regressionen vor dem Deploy zu erkennen. Beides zählt. Wenn sie sich widersprechen (was oft passiert), sind Felddaten die Wahrheit über Nutzer; die Lücke zeigt dir, wo echte Browser Dinge optimieren, die Lighthouse nicht simuliert.

Wo du anfängst

Fünf Schritte in Reihenfolge. 30 Minuten Baseline für eine kleine Seite, ein halber Tag für eine mittlere:

Felddaten-Baseline holen

Lass deine Homepage und deine Top 5 Content-URLs durch Luminas PageSpeed-Tool laufen. Notiere Feld-LCP, INP, CLS im 75. Perzentil pro URL. Das ist dein „heute“-Wert, nicht Labor. Nur Felddaten bewegen Google.

PageSpeed-Tool →
Die eine Metrik finden, die am häufigsten scheitert

Von den 3 Metriken blockiert meistens eine seitenweit. Fixe die zuerst, nicht alle drei parallel. Ist es LCP, spring zu Bild- und TTFB-Fixes. INP: JS-Main-Thread-Arbeit. CLS: Bildmaße und Ad-Slot-Reservierung.

Der Fix-Katalog ↑
web-vitals.js fürs eigene RUM installieren

CrUX zeigt ein rollierendes 28-Tage-Fenster und lässt Seiten mit wenig Traffic aus. Binde Googles web-vitals.js-Library ein und schick die Callbacks an GA4 oder deinen Analytics-Endpoint. Du bekommst CWV nahezu in Echtzeit für jede URL.

GA4 Dashboard →
Jeden Deploy im Labor testen

Lighthouse in den Chrome DevTools ist schnell, reproduzierbar, kostenlos. Ergänze einen Lighthouse-Check in deiner Pre-Deploy-Checkliste. Felddaten ändern sich nur langsam, weil sie die letzten 28 Tage mitteln; Labordaten fangen die Regression in 30 Sekunden ab.

Lighthouse-Docs →
Search Console monatlich prüfen

Googles CWV-Bericht in der Search Console zeigt URL-Gruppen, die sich verschlechtert haben. Ein einzelner Deploy kann hunderte URLs, die sich ein Template teilen, verschlechtern. Monatlich checken, Muster schnell fixen.

GSC Dashboard →

Core Web Vitals in 30 Sekunden auditen

Luminas kostenloses PageSpeed-Tool liefert PSI-Labordaten und CrUX-Felddaten nebeneinander, dazu KI-generierte Fix-Snippets für die Top-Probleme. Kein Login. Kostenlos sind 50 PageSpeed-Läufe und 10 KI-Fixes pro Tag.

PageSpeed-Tool starten →