LCP optimieren: So verbessern Sie Largest Contentful Paint

Wie Sie das LCP-Element, seine Ressource und den Auslieferungsweg diagnostizieren und die Verbesserungen für die betroffene Route anhand von Felddaten und Labormessungen überprüfen.

Largest Contentful Paint (LCP) ist die Metrik Core Web Vitals, die seit 2021 die Rankings bei Google beeinflusst. Sie ist mehr als eine technische Kennzahl: Sie zeigt, wie schnell Nutzer eine Seite als geladen wahrnehmen. Ein schlechter LCP bedeutet, dass Besucher einen leeren Bildschirm oder ein nicht geladenes Hero-Bild sehen und die Seite verlassen, bevor der Inhalt erscheint.

Ladezeitachse: Der LCP wird in dem Moment gemessen, in dem das größte Element im sichtbaren Bereich gezeichnet wird. Ziel ist der grüne Bereich unter 2,5 s.
Laut Google senkt die Verbesserung des LCP von „schlecht“ auf „gut“ die Absprungrate im Schnitt um 24 %. Im E-Commerce wirkt sich das direkt auf die Conversion aus.

Was ist LCP und warum er wichtig ist

LCP misst die Zeit vom Start der Navigation bis zu dem Moment, in dem das größte Inhaltselement (Text oder Bild) im sichtbaren Bereich (Viewport) erscheint. Google nutzt diesen Schwellenwert, um das Laden aus Nutzersicht als abgeschlossen zu bewerten.

Anders als FCP (First Contentful Paint), das beim ersten sichtbaren Pixel auslöst, erfasst der LCP gezielt relevante Inhalte. Eine Seite zeigt vielleicht schon bei 0,3 s einen Ladeindikator. Erscheint das Hero-Bild aber erst bei 5 s, liegt der LCP bei 5 s.

< 2,5 s

Guter LCP

Grüner Schwellenwert von Google. Ziel für die meisten Seiten

2,5–4 s

Verbesserungsbedarf

Gelbe Zone: Der LCP fällt Nutzern auf, eine Optimierung ist nötig

> 4 s

Schlechter LCP

Rote Zone: erheblicher Schaden für UX und Rankings

75.

CrUX-Perzentil

Google bewertet den LCP am 75. Perzentil realer Chrome-Nutzer

Google verwendet Daten aus dem Chrome User Experience Report (CrUX), also echte Messwerte von echten Chrome-Nutzern. Ihr Lab-Score in PageSpeed Insights kann grün sein, während CrUX gelb zeigt. Orientieren Sie sich an den CrUX-Felddaten: Google stützt seine Rankingentscheidungen darauf.

Welche Elemente der Browser als LCP-Kandidaten berücksichtigt

Der Browser prüft nicht jedes Element. Er achtet auf bestimmte Typen und wählt zum Abschluss des Ladens das flächenmäßig größte Element im sichtbaren Bereich aus.

<img>-Elemente
Standardbilder. Auf den meisten Seiten der häufigste LCP-Kandidat. Gemessen wird der Moment, in dem das dekodierte Bild im sichtbaren Bereich erscheint.
<image> in SVG
Bilder innerhalb von SVG-Elementen. Für den LCP werden sie wie normale img-Elemente behandelt.
CSS-background-image
Hintergrundbilder über CSS. Wichtige Besonderheit: Der Browser beginnt erst mit dem Laden eines background-image, wenn das CSSOM aufgebaut ist. Das ist eine der Hauptursachen für eine LCP-Verzögerung.
Textblöcke
<p>, <h1> bis <h6>, <div> und andere Elemente mit Textinhalt. Ist ein Textblock größer als jedes Bild, wird er zum LCP.
<video> mit poster
Das Poster-Bild eines Video-Elements (Attribut poster). Nimmt das Video den größten Teil des Bildschirms ein, muss das Poster so schnell wie möglich laden.
Elemente innerhalb von <iframe> sowie Elemente ohne sichtbare Größe (display: none, visibility: hidden, opacity: 0) zählen nicht als LCP. Wird Ihr Hero-Banner vor der JavaScript-Initialisierung ausgeblendet, kann der LCP auf einem ganz anderen Element gemessen werden.

Aus welchen Teilen sich die LCP-Zeit zusammensetzt

Google zerlegt den LCP in vier Teilkomponenten. Wer jede davon versteht, diagnostiziert richtig und setzt die Optimierungen in der richtigen Reihenfolge um.

KomponenteWas sie misstÜblicher Anteil
TTFB (Time to First Byte)Zeit, bis das erste Byte des HTML vom Server ankommt10–40 %
Resource Load DelayVerzögerung zwischen TTFB und dem Start des Ladens der LCP-Ressource10–30 %
Resource Load DurationDauer des Downloads der LCP-Ressource selbst (Bild, Schrift)30–60 %
Element Render DelayVerzögerung zwischen dem Abschluss des Ladens und dem Erscheinen im sichtbaren Bereich0–20 %

Regel: Gehen Sie zuerst die Komponente mit dem größten Anteil an. Entfallen 3 von 5 Sekunden LCP auf die TTFB, bringt die Optimierung der Bilder kaum etwas. Verbessern Sie zuerst die Antwortzeit des Servers.

Häufige Ursachen für einen langsamen LCP

90 % der schlechten LCP-Werte haben dieselben Ursachen. Die Diagnose dauert in DevTools oder PageSpeed Insights etwa 15 Minuten.

Langsame TTFB

Der Server antwortet in mehr als 600 ms. Ursachen: fehlendes Caching, schwaches Hosting, aufwendige Datenbankabfragen, kein CDN. Bei einer TTFB über 800 ms ist ein LCP unter 2,5 s ohne weitere Optimierungen kaum zu erreichen.

Nicht optimierte Bilder

Das LCP-Bild wiegt als JPEG 500 KB oder mehr statt 80 KB als WebP oder AVIF. Es fehlen das Attribut fetchpriority="high" und ein Preload. Der Browser entdeckt das Bild spät und lädt es langsam.

Render-blocking-Ressourcen

CSS und JS im <head> ohne async oder defer blockieren das Rendering. Solange der Browser sie nicht geladen und ausgeführt hat, kann das LCP-Element nicht erscheinen. Jedes zusätzliche Script im Head verzögert den LCP.

Langsames Laden von Schriften

Ist der LCP ein Textblock und braucht die Schrift 2 Sekunden oder länger, zeigt der Browser entweder unsichtbaren Text (FOIT) oder eine Systemschrift (FOUT). Bis der richtige Text erscheint, vergeht genau die LCP-Zeit.

Lazy Loading am LCP-Element

Das Attribut loading="lazy" am Hauptbild im Hero-Bereich ist einer der häufigsten Fehler. Der Browser verzögert das Laden bewusst, und das wirkt sich direkt auf den LCP aus.

LCP beim clientseitigen Rendering

In SPAs (React, Vue, Angular) ohne SSR erzeugt der Browser den Inhalt per JavaScript. Er erhält zunächst leeres HTML, lädt dann das JS und rendert den Inhalt. Diese ganze Kette summiert sich im LCP.

LCP optimieren: ein Schritt-für-Schritt-Plan

Die LCP-Optimierung ist kein einzelner Trick, sondern ein Bündel zusammenhängender Verbesserungen. Arbeiten Sie der Reihe nach und beginnen Sie mit den wirkungsstärksten Punkten.

Schritt 1: TTFB auf 200–400 ms senken

Die TTFB ist das Fundament. Ist der Server langsam, arbeiten alle weiteren Optimierungen gegen diese Obergrenze.

  1. HTTP-Caching einrichten: Cache-Control: max-age=31536000 für statische Dateien, s-maxage für CDN-Proxys.
  2. Komprimierung aktivieren: Brotli (bevorzugt) oder gzip für HTML, CSS und JS. Brotli liefert Dateien, die 15–25 % kleiner sind als bei gzip.
  3. CDN anbinden: Cloudflare, Fastly, BunnyCDN. Bei statischen Seiten senkt Edge-Caching die TTFB auf 20–50 ms.
  4. Datenbank optimieren: Indizes für häufig abgefragte Felder, Abfrage-Caching über Redis oder Memcached.
  5. HTTP/2 oder HTTP/3 nutzen: Mehrere Anfragen laufen über eine Verbindung, ohne Head-of-Line-Blocking.
Zielwert für die TTFB: unter 200 ms mit Server und CDN. Bei Nginx, statischem HTML und CDN ist das realistisch. Laufen PHP oder Node ohne Caching und mit Live-Datenbankabfragen, ist zuerst eine Optimierung auf Anwendungsebene nötig.

Schritt 2: Das LCP-Bild optimieren

Ist das LCP-Element ein Bild (Hero-Bild, Produktbild), lohnt sich dieser Schritt besonders.

  • Moderne Formate verwenden: WebP (25–35 % Einsparung gegenüber JPEG) oder AVIF (40–55 % gegenüber JPEG). Arbeiten Sie mit <picture> und einem Fallback.
  • fetchpriority="high" am LCP-Bild ergänzen. Der Browser lädt es dann mit höchster Priorität.
  • loading="lazy" vom LCP-Element entfernen. Lazy Loading eignet sich nur für Bilder unterhalb des ersten sichtbaren Bereichs.
  • <link rel="preload" as="image"> im <head> für das LCP-Bild ergänzen. Der Browser beginnt dann mit dem Laden, bevor der body geparst ist.
  • width- und height-Attribute angeben, um CLS zu vermeiden. Der Browser reserviert den Platz, bevor das Bild geladen ist.
  • srcset und sizes für adaptives Laden konfigurieren: Mobilgeräte erhalten ein 400-px-Bild statt eines 1.600-px-Bildes.
Die Kombination aus fetchpriority="high", Preload, WebP oder AVIF und einem sauberen srcset bringt bei echten E-Commerce-Projekten im Schnitt eine Verbesserung des LCP um 1–2 Sekunden.

Schritt 3: Render-blocking-Ressourcen beseitigen

Jede render-blocking-Ressource verzögert den LCP. Ziel ist keine einzige blockierende Ressource im kritischen Pfad.

RessourcentypProblemLösung
JavaScript im <head>Der Browser unterbricht das Parsen des HTML und führt das Script ausdefer oder async bei allen nicht kritischen Scripts
CSS im <head>Der Browser rendert erst, wenn das gesamte CSS geladen istKritisches CSS inline, nicht kritisches CSS per async loadCSS
Third-Party-ScriptsAnalytics, Chat-Bots und Pixel werden im Head geladenIn den body verschieben oder mit Verzögerung laden (setTimeout 3000)
Schriften ohne PreloadDer Browser entdeckt die Schrift erst nach dem Parsen des CSS<link rel="preload" as="font"> und font-display: swap

Schritt 4: Schriften optimieren, wenn der LCP ein Text ist

Ist das LCP-Element ein Textblock (Überschrift, Lead), liegt das Problem oft in der Verzögerung beim Rendern der Schrift.

  1. font-display: swap oder optional in @font-face setzen. Der Browser zeigt sofort eine Systemschrift und ersetzt sie nach dem Laden durch die Webschrift.
  2. Für kritische Schriften im <head> <link rel="preload" as="font" type="font/woff2" crossorigin> verwenden.
  3. Den Zeichensatz begrenzen: Subsetting lädt nur die benötigten Glyphen (Latein, Kyrillisch).
  4. Schriften selbst hosten statt sie über Google Fonts zu laden. So entfällt ein zusätzlicher DNS-Lookup und eine zusätzliche Verbindung.
  5. size-adjust, ascent-override und descent-override in @font-face setzen, um den CLS beim Austausch der Schrift zu verringern.

Schritt 5: SSR/SSG für JavaScript-Frameworks

Läuft die Website mit React, Vue oder Next.js ohne SSR, ist der LCP standardmäßig hoch. Der Browser muss JavaScript laden und ausführen und erst danach den Inhalt rendern.

Server-Side Rendering (SSR)
Das HTML wird bei jeder Anfrage auf dem Server erzeugt. Der Browser erhält fertiges HTML, parst es, und das LCP-Element erscheint, ohne auf JS zu warten. Die beste Option für dynamische Inhalte.
Static Site Generation (SSG)
Das HTML entsteht zur Build-Zeit. Der Server liefert eine fertige Datei, was die höchste Geschwindigkeit bei TTFB und LCP ergibt. Ideal für Blogs, Landingpages und nicht personalisierte Seiten.
Incremental Static Regeneration (ISR)
SSG mit periodischer Neugenerierung (Next.js). Verbindet die Geschwindigkeit statischer Dateien mit aktuellen Daten. Optimal für die meisten CMS-Inhalte.
Streaming SSR
Der Server beginnt, HTML zu senden, bevor das Rendering abgeschlossen ist, und der Browser zeigt Inhalte schrittweise an. React 18 und Next.js 13+ unterstützen das ohne zusätzliche Einrichtung.
Partial Hydration und Islands-Architektur (Astro, Qwik) gehen noch einen Schritt weiter: Nur interaktive Komponenten werden hydriert, statische Inhalte erscheinen sofort. Bei inhaltsreichen Websites bringt das einen LCP-Gewinn von 0,5–1 s.

Schritt 6: CSS-background-image als LCP

Ist das LCP-Element ein per CSS eingebundenes background-image, kann der Browser das Laden erst starten, wenn das CSSOM aufgebaut ist. Das ist eine der heimtückischsten Ursachen für einen langsamen LCP.

  • CSS-background-image durch <img fetchpriority="high"> ersetzen. Der Browser entdeckt das Bild dann beim Parsen des HTML.
  • Ist ein Austausch nicht möglich, <link rel="preload" as="image"> nutzen, um das Laden manuell anzustoßen.
  • Für adaptive Hintergründe imagesrcset und imagesizes im Preload-Tag verwenden.
  • Das CSS mit dem LCP-background-image in ein inline <style> verschieben. So entfällt eine Netzwerkanfrage.

Werkzeuge zum Messen und Diagnostizieren des LCP

Eine korrekte Diagnose ist wichtiger als blindes Optimieren. Nutzen Sie beide Arten von Werkzeugen: Labor (synthetische Tests) und Feld (echte Nutzer).

WerkzeugDatentypWas es liefertWann einsetzen
PageSpeed InsightsLabor + Feld (CrUX)LCP-Wert, Aufschlüsselung nach Teilkomponenten, konkrete EmpfehlungenErste Prüfung, Kontrolle der Änderungen
Chrome DevTools PerformanceLaborWaterfall der Ladung, genaue Ursache der LCP-Verzögerung, Flame ChartTiefe Analyse eines konkreten Problems
Lighthouse CILaborAutomatisierte Prüfungen in CI/CD, LCP-Verlauf pro ReleaseKontrolle auf Regressionen
WebPageTestLaborTests aus verschiedenen Regionen, Videovergleich, Filmstreifen, WaterfallPrüfung des CDN und des regionalen LCP
Google Search Console (CWV)Feld (CrUX)Echte LCP-Werte nach URL-Gruppen, URLs mit ProblemenMonitoring im Produktivbetrieb
web-vitals.jsFeldJavaScript-API, mit der LCP-Werte echter Nutzer in die eigene Analytics erfasst werdenEigenes Monitoring, RUM

LCP in den Chrome DevTools diagnostizieren

DevTools ist das präziseste Werkzeug, um zu verstehen, was den LCP auf einer bestimmten Seite bremst.

  1. DevTools → Performance öffnen, Record starten, die Seite neu laden und die Aufnahme stoppen.
  2. Unter Timings die LCP-Markierung suchen. Sie zeigt die genaue Zeit und das Element.
  3. Den Waterfall untersuchen: Ressource des LCP-Elements finden und prüfen, wann ihr Laden im Verhältnis zur TTFB begann.
  4. Auf rote Balken achten. Das sind render-blocking-Ressourcen, sie erscheinen direkt vor dem LCP.
  5. Im Network-Tab nach dem Typ Image filtern, das LCP-Bild suchen und seine Priorität prüfen (sie sollte High sein).
  6. Im Coverage-Tab werden ungenutzte CSS- und JS-Teile angezeigt. Viel ungenutzter Code bedeutet eine Verzögerung des LCP.
Im Network-Tab der DevTools sollte das LCP-Bild Priority: High und Initiator: Preload oder Parser zeigen, nicht ein Script. Ist der Initiator ein Script oder XHR, wird das Bild zu spät entdeckt.

Häufige Fragen

Der LCP ist in PageSpeed Insights „grün“, in der Search Console aber „rot“. Warum?
PageSpeed Insights zeigt sowohl Labordaten (Lighthouse) als auch Felddaten (CrUX). Ist der Wert grün, schauen Sie wahrscheinlich auf den Lighthouse-Score. CrUX in PSI und der Search Console spiegelt echte Chrome-Nutzer wider, die langsame Verbindungen, ältere Geräte oder andere Standorte haben können. Orientieren Sie sich an den CrUX- bzw. Felddaten, denn danach richtet Google das Ranking aus.
Lässt sich der LCP ohne Codeänderung verbessern?
Teilweise, ja. CDN anbinden, HTTP-Caching einrichten und Brotli aktivieren sind Änderungen an der Serverkonfiguration. Bilder in WebP oder AVIF umzuwandeln und zu komprimieren erfordert ebenfalls keine Codeänderung an der Website. Für fetchpriority, Preload, das Entfernen von Lazy Loading im Hero-Bereich und SSR ist dagegen Arbeit am Code nötig.
Was ist zu tun, wenn der LCP ein Text und kein Bild ist?
Konzentrieren Sie sich auf Schriften und die TTFB. Fügen Sie einen Preload für die Webschrift hinzu, nutzen Sie font-display: swap und hosten Sie die Schriften selbst. Steht der Text in einem großen Block, dem kritisches CSS fehlt, stellen Sie sicher, dass das CSS für diesen Block das Rendering nicht blockiert. Prüfen Sie außerdem die TTFB: Auch ohne Bild führt ein langsamer Server zu einem hohen LCP.
Beeinflusst der LCP das Ranking direkt?
Ja. Der LCP gehört zu den Core Web Vitals, dem Page-Experience-Signal, das Google seit 2021 offiziell als Rankingfaktor nutzt. Ein schlechter LCP lässt die Positionen nicht über Nacht abstürzen, aber bei sonst gleichen Bedingungen hat eine Seite mit gutem LCP einen Vorteil. Am deutlichsten wirkt sich das auf mobilen Geräten aus.
Muss ich den LCP auf allen Seiten optimieren oder nur auf der Startseite?
Priorisieren Sie Seiten mit hohem organischem Traffic und Landingpages für bezahlten Traffic. Die Search Console zeigt, welche URLs einen schlechten LCP haben. Fangen Sie dort an. Im E-Commerce kommen meist die Startseite, Kategorieseiten und Produktkarten zuerst dran. Technische Verbesserungen wie Schriften, CDN oder Brotli wirken dagegen seitenübergreifend.

Check it with SpiderHead

Free and local: run the audit on your own machine.

Try it