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.
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.
Guter LCP
Grüner Schwellenwert von Google. Ziel für die meisten Seiten
Verbesserungsbedarf
Gelbe Zone: Der LCP fällt Nutzern auf, eine Optimierung ist nötig
Schlechter LCP
Rote Zone: erheblicher Schaden für UX und Rankings
CrUX-Perzentil
Google bewertet den LCP am 75. Perzentil realer Chrome-Nutzer
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.
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.
| Komponente | Was sie misst | Üblicher Anteil |
|---|---|---|
| TTFB (Time to First Byte) | Zeit, bis das erste Byte des HTML vom Server ankommt | 10–40 % |
| Resource Load Delay | Verzögerung zwischen TTFB und dem Start des Ladens der LCP-Ressource | 10–30 % |
| Resource Load Duration | Dauer des Downloads der LCP-Ressource selbst (Bild, Schrift) | 30–60 % |
| Element Render Delay | Verzögerung zwischen dem Abschluss des Ladens und dem Erscheinen im sichtbaren Bereich | 0–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.
- HTTP-Caching einrichten: Cache-Control: max-age=31536000 für statische Dateien, s-maxage für CDN-Proxys.
- Komprimierung aktivieren: Brotli (bevorzugt) oder gzip für HTML, CSS und JS. Brotli liefert Dateien, die 15–25 % kleiner sind als bei gzip.
- CDN anbinden: Cloudflare, Fastly, BunnyCDN. Bei statischen Seiten senkt Edge-Caching die TTFB auf 20–50 ms.
- Datenbank optimieren: Indizes für häufig abgefragte Felder, Abfrage-Caching über Redis oder Memcached.
- HTTP/2 oder HTTP/3 nutzen: Mehrere Anfragen laufen über eine Verbindung, ohne Head-of-Line-Blocking.
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.
Schritt 3: Render-blocking-Ressourcen beseitigen
Jede render-blocking-Ressource verzögert den LCP. Ziel ist keine einzige blockierende Ressource im kritischen Pfad.
| Ressourcentyp | Problem | Lösung |
|---|---|---|
| JavaScript im <head> | Der Browser unterbricht das Parsen des HTML und führt das Script aus | defer oder async bei allen nicht kritischen Scripts |
| CSS im <head> | Der Browser rendert erst, wenn das gesamte CSS geladen ist | Kritisches CSS inline, nicht kritisches CSS per async loadCSS |
| Third-Party-Scripts | Analytics, Chat-Bots und Pixel werden im Head geladen | In den body verschieben oder mit Verzögerung laden (setTimeout 3000) |
| Schriften ohne Preload | Der 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.
- font-display: swap oder optional in @font-face setzen. Der Browser zeigt sofort eine Systemschrift und ersetzt sie nach dem Laden durch die Webschrift.
- Für kritische Schriften im <head> <link rel="preload" as="font" type="font/woff2" crossorigin> verwenden.
- Den Zeichensatz begrenzen: Subsetting lädt nur die benötigten Glyphen (Latein, Kyrillisch).
- Schriften selbst hosten statt sie über Google Fonts zu laden. So entfällt ein zusätzlicher DNS-Lookup und eine zusätzliche Verbindung.
- 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.
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).
| Werkzeug | Datentyp | Was es liefert | Wann einsetzen |
|---|---|---|---|
| PageSpeed Insights | Labor + Feld (CrUX) | LCP-Wert, Aufschlüsselung nach Teilkomponenten, konkrete Empfehlungen | Erste Prüfung, Kontrolle der Änderungen |
| Chrome DevTools Performance | Labor | Waterfall der Ladung, genaue Ursache der LCP-Verzögerung, Flame Chart | Tiefe Analyse eines konkreten Problems |
| Lighthouse CI | Labor | Automatisierte Prüfungen in CI/CD, LCP-Verlauf pro Release | Kontrolle auf Regressionen |
| WebPageTest | Labor | Tests aus verschiedenen Regionen, Videovergleich, Filmstreifen, Waterfall | Prüfung des CDN und des regionalen LCP |
| Google Search Console (CWV) | Feld (CrUX) | Echte LCP-Werte nach URL-Gruppen, URLs mit Problemen | Monitoring im Produktivbetrieb |
| web-vitals.js | Feld | JavaScript-API, mit der LCP-Werte echter Nutzer in die eigene Analytics erfasst werden | Eigenes 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.
- DevTools → Performance öffnen, Record starten, die Seite neu laden und die Aufnahme stoppen.
- Unter Timings die LCP-Markierung suchen. Sie zeigt die genaue Zeit und das Element.
- Den Waterfall untersuchen: Ressource des LCP-Elements finden und prüfen, wann ihr Laden im Verhältnis zur TTFB begann.
- Auf rote Balken achten. Das sind render-blocking-Ressourcen, sie erscheinen direkt vor dem LCP.
- Im Network-Tab nach dem Typ Image filtern, das LCP-Bild suchen und seine Priorität prüfen (sie sollte High sein).
- Im Coverage-Tab werden ungenutzte CSS- und JS-Teile angezeigt. Viel ungenutzter Code bedeutet eine Verzögerung des LCP.
Häufige Fragen
Der LCP ist in PageSpeed Insights „grün“, in der Search Console aber „rot“. Warum?
Lässt sich der LCP ohne Codeänderung verbessern?
Was ist zu tun, wenn der LCP ein Text und kein Bild ist?
Beeinflusst der LCP das Ranking direkt?
Muss ich den LCP auf allen Seiten optimieren oder nur auf der Startseite?
Check it with SpiderHead
Free and local: run the audit on your own machine.



