Webdesign lernen Performance

Lazy Loading für Bilder & Videos.

Lazy Loading bedeutet, dass Bilder oder Videos erst geladen werden, wenn sie im sichtbaren Bereich (Viewport) erscheinen – so sparst du Bandbreite und beschleunigst deine Webseite.

Lazy Loading für Bilder und Videos

Lazy Loading bedeutet, dass Medien wie Bilder oder Videos erst dann geladen werden, wenn sie im sichtbaren Bereich des Nutzers (Viewport) erscheinen. Dadurch sparst du wertvolle Bandbreite und beschleunigst das Laden deiner Webseite.

1. Native Lazy Loading mit HTML

Moderne Browser unterstützen das Attribut loading="lazy" für Bilder und Iframes. Ganz einfach nutzen:

html
<img src="bild.jpg" alt="Beispielbild" width="600" height="400" loading="lazy">
<iframe src="video-embed.html" loading="lazy"></iframe>

Vorteil: Keine Extra-JavaScript-Bibliothek nötig, funktioniert einfach und performant. Gib Bildern immer width und height mit – so reserviert der Browser den Platz und die Seite springt beim Nachladen nicht (wichtig für den CLS-Wert).

Wichtig für SEO: Setze loading="lazy" nicht beim größten Bild ganz oben (meist das Hero- oder Titelbild). Das ist oft das LCP-Element und sollte sofort laden – dort hilft eher fetchpriority="high".

2. Lazy Loading mit Intersection Observer API (JavaScript)

Für ältere Browser oder zum Lazy Load von Videos verwendest du die moderne Intersection Observer API. Sie erkennt, ob ein Element sichtbar ist.

HTML Beispiel

html
<!-- Bild: src in data-src -->
<img class="lazy" data-src="bild-1.jpg" alt="Bild 1" width="600" height="400">
<!-- Video: Quelle (source) in data-src -->
<video class="lazy" width="600" height="400" controls muted preload="none">
  <source data-src="video.webm" type="video/webm">
  Dein Browser unterstützt das Video-Tag nicht.
</video>

JavaScript zum Nachladen

js
document.addEventListener("DOMContentLoaded", function() {
  let lazyElements = [].slice.call(document.querySelectorAll(".lazy"));
  if ("IntersectionObserver" in window) {
    let lazyObserver = new IntersectionObserver(function(entries, observer) {
      entries.forEach(function(entry) {
        if (entry.isIntersecting) {
          let el = entry.target;
          if (el.tagName.toLowerCase() === "img") {
            el.src = el.dataset.src;
            el.addEventListener('load', () => el.classList.add('loaded'));
          }
          else if (el.tagName.toLowerCase() === "video") {
            let sources = el.querySelectorAll("source");
            sources.forEach(source => {
              source.src = source.dataset.src;
            });
            el.load();
            el.classList.add('loaded');
          }
          lazyObserver.unobserve(el);
        }
      });
    });
    lazyElements.forEach(function(lazyEl) {
      lazyObserver.observe(lazyEl);
    });
  } else {
    // Fallback für alte Browser - alle sofort laden
    lazyElements.forEach(function(el) {
      if (el.tagName.toLowerCase() === "img") {
        el.src = el.dataset.src;
      } else if (el.tagName.toLowerCase() === "video") {
        let sources = el.querySelectorAll("source");
        sources.forEach(source => {
          source.src = source.dataset.src;
        });
        el.load();
      }
      el.classList.add('loaded');
    });
  }
});

CSS für den Unschärfe-Effekt

css
.lazy {
  filter: blur(12px);
  transition: filter 0.6s ease;
}
.lazy.loaded {
  filter: none;
}

Schritt-für-Schritt Erklärung

  • Bilder/Videos bekommen ihre Quelle (src) in ein data-src-Attribut.
  • Die Klasse lazy sorgt für einen verschwommenen Effekt bis zum Laden.
  • Der Intersection Observer beobachtet, wann die Medien im Viewport sichtbar sind.
  • Beim Sichtbarwerden wird die Quelle in src gesetzt und somit geladen.
  • Danach wird die Klasse loaded gesetzt, um die Unschärfe zu entfernen.
  • Für alte Browser gibt es einen Fallback, der alle Medien sofort lädt.

Demo

Unten siehst du lazy geladene Bilder und ein Video. Scrolle langsam nach unten!

↓ weiter scrollen
Lazy geladenes Beispielbild 1 Lazy geladenes Beispielbild 2

Lazy Loading in WordPress

WordPress setzt loading="lazy" seit Version 5.5 automatisch bei Bildern im Inhalt und lässt seit Version 5.9 das erste Bild im Inhalt bewusst aus. Für Videos, Hintergrundbilder oder eigene Templates brauchst du weiterhin die JavaScript-Variante von oben. Mehr Tipps für schnelle Seiten findest du im Tutorial Caching & Minification.

Weiterlernen

Noch schneller wird deine Seite mit Caching und Minification. Videos im Seitenkopf baust du mit dem Tutorial Video im Header erstellen ein, eigene Clips erzeugst du zum Beispiel mit KI in Freepik. Damit alles auch mobil passt, lies Responsive Webdesign erstellen.

Deine Seite lädt zu langsam? Ich optimiere Ladezeit und Hosting im Rahmen meines Services.

FAQ: Lazy Loading

Lazy Loading, SEO und Core Web Vitals

Was ist Lazy Loading?

Lazy Loading ist eine Technik, bei der Bilder, Videos oder Iframes erst geladen werden, wenn sie in den sichtbaren Bereich gescrollt werden. Die Seite lädt dadurch schneller und verbraucht weniger Datenvolumen.

Ist Lazy Loading gut für SEO?

Ja, richtig eingesetzt verbessert Lazy Loading die Ladezeit und damit die Core Web Vitals. Wichtig ist, das wichtigste Bild oben auf der Seite nicht lazy zu laden und Bildern feste Maße zu geben, damit die Seite beim Nachladen nicht springt.

Welche Browser unterstützen loading="lazy"?

Alle aktuellen Browser wie Chrome, Edge, Firefox und Safari unterstützen loading="lazy" für Bilder, die meisten auch für Iframes. Ältere Browser ignorieren das Attribut einfach und laden das Bild normal.

Kann ich auch Videos lazy laden?

Für das video-Element gibt es kein loading-Attribut. Setze stattdessen preload="none" und lade die Quelle per Intersection Observer erst, wenn das Video sichtbar wird – wie im Beispiel oben.

Was ist der Unterschied zwischen Lazy Loading und Caching?

Lazy Loading verschiebt das Laden von Medien auf den Zeitpunkt, an dem sie gebraucht werden. Caching speichert bereits geladene Dateien zwischen, damit sie beim nächsten Besuch nicht erneut heruntergeladen werden müssen. Beide Techniken ergänzen sich.

Passt dazu Weitere Tutorials

Weiter lernen.

Keine Zeit, es selbst umzusetzen? Ich baue Ihre Webseite schnell und sauber.

Jetzt kontaktieren