Lazy Loading

Lazy Loading

Lazy Loading ist eine Technik, bei der Ressourcen wie Bilder, Videos oder JavaScript-Module erst dann nachgeladen werden, wenn sie tatsächlich benötigt werden, um Ladezeiten, Traffic und Core-Web-Vitals spürbar zu verbessern.

Lazy Loading (dt. „träges Laden“) verschiebt das Herunterladen von Inhalten auf den Zeitpunkt, an dem sie sichtbaroder interaktiv werden. Dadurch verkleinert sich das initiale Transfer­volumen, was insbesondere auf mobilen Netzen die Largest Contentful Paint (LCP) und den Time to Interactive (TTI) beschleunigt.

Warum Lazy Loading?

  • Performance-Boost: Weniger Daten im ersten Request verringern Render-Blocking und Serverlast.
  • Bandbreiten-Ersparnis: Nutzer laden nur, was sie wirklich sehen; ideal bei großen Mediatheken.
  • SEO-Vorteile: Bessere Core Web Vitals wirken sich positiv auf Rankings aus.
  • Kosten-Reduktion: Geringerer CDN-/Hosting-Traffic, insbesondere bei High-Traffic-Sites.

Einsatzbereiche

RessourcentypTypische MethodeBesonderheit
Bilderloading="lazy"Ab Chrome 75 nativ unterstützt
Iframes/Videosloading="lazy" + PosterSpart Autoplay-Start, Preview nutzen
JavaScript-ChunksDynamisches import()In Single Page Applications (SPA)
CSS/Fontsmedia-Query, font-displayNur bei Bedarf einbinden
DatenanfragenAPI-Calls auf ScrollInfinite-Scroll, Chat-Apps

Technische Umsetzung

  1. Native Attribute

    <img src="hero.webp" loading="lazy" alt="Produktfoto">

    Moderne Browser ermitteln automatisch einen Threshold (meist ~300 px Vorlauf zum Viewport).

  2. IntersectionObserver-API

    const io = new IntersectionObserver(entries => {  entries.forEach(e => {    if (e.isIntersecting) {      e.target.src = e.target.dataset.src;      io.unobserve(e.target);    }  }); }); document.querySelectorAll('img[data-src]').forEach(img => io.observe(img));

    Vorteil: Vollständige Kontrolle, Fallbacks für ältere Browser möglich.

  3. Build-Infrastruktur
    • Webpack/Vite Code-Splitting: import("./chart.js") nur bei Bedarf laden.
    • Hybrid Rendering: First-Party HTML liefert Platzhalter, Client-Side JS lädt Inhalte nach.

Best Practices

  • Platzhalter nutzen: Blur-Up, SVG-Color-Blocks oder CSS-Skelett verhindern Layout-Shift.
  • Größenangaben setzen: width/height oder aspect-ratio vermeiden Cumulative Layout Shift (CLS).
  • Threshold feinjustieren: Bei Videos höherer Puffer (500-800 px), um Lade-Jitter zu vermeiden.
  • Analytics anpassen: Scroll-Events oder Custom Metrics erfassen, damit ungesichtete Ressourcen nicht als „Bounce“ interpretiert werden.
  • Server-Side Rendering (SSR): Platzhalter bereits im Markup ausliefern, damit Crawler Inhalte erkennen.

Vorteile & Grenzen

VorteilGrenze / Risiko
Schnellere First ViewZu aggressives Lazy-Loading kann „Klick-to-Click“ verzögern
Geringerer DatenverbrauchSEO-Crawler ohne JS könnten Inhalte übersehen
Besseres Mobile-ErlebnisZusätzliche JS-Logik erhöht Gesamt-Bundle
Skalierbarkeit bei MassenseitenKomplexere Debugging- und Test-Szenarien

Beispiel-Ergebnis

Ein Magazin mit 30 Bild-Kacheln pro Artikelseite ersetzte <img> durch native Lazy-Loading und reduzierte das Initial Payload von 4,8 MB auf 1,1 MB. Die LCP sank von 3,2 s auf 1,4 s, die Absprungrate – besonders auf 3G-Netzen – um 19 %.


Fazit: Lazy Loading ist ein leichtgewichtiger, zugleich mächtiger Performance-Hebel. Wer die Technik konsequent für Bilder, Videos und Skripte einsetzt, dabei Platzhalter und korrekte Größenangaben berücksichtigt, schafft schnellere, ressourcen­schonende und nutzer­freundliche Web-Erlebnisse.