Bilder für Web optimieren: WebP, Kompression und Lazy Loading richtig einsetzen

Bilder sind mit über 50 Prozent des durchschnittlichen Seitengewichts die häufigste Ursache für langsame Websites und schlechte Core Web Vitals. WebP reduziert die Dateigröße um 25 bis 35 Prozent gegenüber JPEG, AVIF sogar um 40 bis 55 Prozent. In Kombination mit responsiven srcset-Attributen und gezieltem Lazy Loading lässt sich die lange Ladezeiten oft halbieren und der PageSpeed-Scores -Score deutlich steigern – ohne Inhalte zu entfernen.

Vergleich der Web-Bildformate PNG, JPEG, WebP und AVIF nach Dateigröße – WebP und AVIF deutlich kleiner
Moderne Formate wie WebP und AVIF reduzieren die Dateigröße um 25–55 % gegenüber JPEG und PNG bei gleicher Bildqualität.

Warum Bilder die häufigste Performance-Schwachstelle sind

Laut HTTP Archive (2025) laden Websites im Median über 900 KB an Bilddaten – auf mobilen Verbindungen ein erheblicher Flaschenhals. Bilder, die unkomprimiert oder im falschen Format ausgeliefert werden, wirken sich direkt auf den Largest Contentful Paint (LCP) aus: Der LCP misst, wann das größte sichtbare Element geladen ist, und ist ein zentraler Core-Web-Vitals-Wert für Google-Rankings.

  • Nicht komprimierte JPEGs und PNGs: Häufig 5–20× größer als nötig, direkt im CMS hochgeladen
  • Falsches Format: PNG für Fotos statt JPEG/WebP kostet unnötig Bytes
  • Keine Größenanpassung: Ein 3000 px breites Originalbild in einem 400 px Container geladen
  • Kein Lazy Loading: Alle Bilder werden beim Seitenaufruf geladen, auch die weit unten auf der Seite
  • Kein CDN: Bilder werden vom Ursprungsserver ausgeliefert statt von einem Edge-Node in Nutzernähe

WebP und AVIF: Moderne Bildformate im Vergleich

WebP und AVIF sind die zwei wichtigsten modernen Bildformate für das Web. Beide bieten gegenüber JPEG und PNG deutlich kleinere Dateigrößen bei gleicher oder besserer visueller Qualität.

  • WebP: 25–35 % kleiner als JPEG bei vergleichbarer Qualität, unterstützt Transparenz (ersetzt PNG), Browser-Support seit 2020 universal
  • AVIF: 40–55 % kleiner als JPEG, noch bessere Qualität bei niedrigen Bitraten, Browser-Support seit 2023 breit (Chrome 85+, Firefox 93+, Safari 16+)
  • JPEG XL: Vielversprechend, aber Browser-Support 2026 noch lückenhaft – noch nicht produktionsreif
  • Fallback-Strategie: Mit <picture> und <source type> WebP/AVIF anbieten, JPEG als Fallback für ältere Browser
  • Konvertierung: Tools wie Squoosh, Sharp (Node.js), cwebp oder Bildoptimierungs-Pipelines im Build-Prozess

In der Praxis empfiehlt sich für die meisten Projekte WebP als Standard-Exportformat mit JPEG-Fallback. AVIF lohnt sich zusätzlich, wenn eine automatisierte Konvertierungspipeline vorhanden ist. Ein CDN mit automatischer Bildoptimierung mit automatischer Bildoptimierung (Cloudflare Images, Imgix) kann diesen Schritt vollständig automatisieren.

Diagramm: Responsive Images mit srcset – Browser wählt passende Bildgröße je nach Viewport
Mit srcset und sizes lädt der Browser automatisch die passende Bildvariante – 400w für Smartphones, 1600w für Desktop-Retina-Displays.

Responsive Images: srcset und sizes korrekt einsetzen

Ein häufiger Fehler: Die Website liefert dasselbe große Bild auf dem Desktop wie auf einem 375 px breiten Smartphone. Mit dem srcset-Attribut und sizes kann der Browser selbst entscheiden, welche Bildgröße er lädt.

  • Faustregel für srcset-Varianten: 400w, 800w, 1200w, 1600w – deckt mobile bis Desktop ab
  • sizes-Attribut: Entspricht der tatsächlichen CSS-Breite des Bildes im Layout (z. B. '(max-width: 768px) 100vw, 50vw')
  • Retina-Displays: 2× Variante für Schärfe auf HiDPI-Screens, aber Dateigrößen-Tradeoff beachten
  • Art Direction mit <picture>: Unterschiedliche Bildausschnitte für mobile vs. Desktop via media-Attribut
  • Angular NgOptimizedImage: Automatisches srcset-Generieren, Aspect-Ratio-Reservierung und fetchpriority-Steuerung eingebaut

Lazy Loading: Welche Bilder davon profitieren

Lazy Loading für Bilder bedeutet: Bilder werden erst geladen, wenn sie in den sichtbaren Bereich des Browsers scrollen. Das reduziert die initiale Datenmenge erheblich – besonders auf bildreichen Seiten. Für das initiale Rendering ist entscheidend, dass Bilder above-the-fold explizit vom Lazy Loading ausgenommen werden.

  • Native Lazy Loading: loading='lazy' Attribut am <img>-Tag – kein JavaScript nötig, alle modernen Browser unterstützen es
  • LCP-Bild NICHT lazy laden: Das Hauptbild im sichtbaren Bereich (Hero, Produktbild) muss loading='eager' oder fetchpriority='high' bekommen
  • Angular NgOptimizedImage: priority-Prop für LCP-Bilder setzen – sie erhalten automatisch fetchpriority='high' und preload-Link
  • Platzhalter-Dimensionen: width und height immer angeben, damit der Browser Platz reserviert und kein Layout Shift entsteht
  • Intersection Observer API: Für komplexere Lazy-Loading-Szenarien (Hintergrundbilder, iFrames) als JavaScript-Fallback

In Angular-Projekten ist NgOptimizedImage (seit Angular 15 stabil) der empfohlene Weg für alle Bilder. Sie erzwingt Breite/Höhe-Angaben, generiert srcset-Varianten und integriert sich sauber in das Caching-Verhalten -Verhalten von CDNs und Service Workern.

Illustration Lazy Loading: Bilder below the fold werden erst beim Scrollen geladen – spart initiale Ladezeit
Lazy Loading spart beim ersten Seitenaufruf erheblich Bandbreite: Nur Bilder im sichtbaren Bereich werden sofort geladen.

Kurz zusammengefasst

  • WebP als Standard: 25–35 % kleiner als JPEG, universeller Browser-Support – heute kein Grund mehr für JPEG/PNG als primäres Format
  • AVIF als Bonus: Noch kleiner, wenn eine Konvertierungspipeline oder ein CDN die Automatisierung übernimmt
  • srcset + sizes immer setzen: Browser wählt die passende Bildgröße selbst
  • LCP-Bild nie lazy laden: fetchpriority='high' und kein loading='lazy' für das wichtigste Bild im sichtbaren Bereich
  • Alle anderen Bilder: loading='lazy' standardmäßig aktivieren
  • Dimensionen immer angeben: width + height verhindern Cumulative Layout Shifts (CLS)
  • Angular: NgOptimizedImage nutzen – übernimmt srcset, LCP-Warnung, fetchpriority automatisch

Unterstützung bei Struktur & Local SEO?

Wenn Sie Ihre Website sauber strukturieren und langfristig sichtbar aufbauen möchten, unterstütze ich Sie gerne.

Autor

Benjamin Tietz – Fullstack Developer & DevSecOps Engineer
Benjamin Tietz
Fullstack Developer & DevSecOps Engineer

Fullstack Developer mit Fokus auf performante Websites, skalierbare Fullstack-Architekturen und nachhaltige SEO-Strategien. Spezialisiert auf Angular SSR/SSG und sichere Deployment-Prozesse.

Mehr über den Autor →