Bilder

Der größte Hebel

Bilder sind fast immer der größte Posten im Ladegewicht – und damit der wirkungsvollste Hebel für LCP und für den Datenverbrauch auf Mobilgeräten.

Moderne Formate

AVIF und WebP sind bei gleicher Qualität deutlich kleiner als JPEG/PNG. Faustregel: AVIF zuerst, WebP als Fallback, klassisches Format als letzter Notnagel.

<picture>
  <source srcset="held.avif" type="image/avif" />
  <source srcset="held.webp" type="image/webp" />
  <img src="held.jpg" alt="…" width="1200" height="800" />
</picture>

Nur so groß wie nötig

Ein 4000-px-Bild in einem 400-px-Slot ist reine Verschwendung. Mit srcset und sizes liefert der Browser die passende Auflösung je Viewport:

<img
  src="foto-800.jpg"
  srcset="foto-400.jpg 400w, foto-800.jpg 800w, foto-1600.jpg 1600w"
  sizes="(max-width: 600px) 100vw, 800px"
  alt="…" width="800" height="533" />

Feste Maße gegen CLS

Immer width und height (oder aspect-ratio in CSS) setzen. Dann reserviert der Browser den Platz, bevor das Bild da ist – kein Springen, kein Layout-Shift.

Lazy Loading – aber nicht für das LCP-Bild

  • Unterhalb des Sichtbereichs: loading="lazy" – wird erst geladen, wenn es in die Nähe des Viewports kommt.
  • Das LCP-Bild (Hero, above the fold) NIEMALS lazy laden. Im Gegenteil: fetchpriority="high" und ggf. per <link rel="preload"> vorziehen, damit es früh startet.

Der bequeme Weg in Next.js

Die next/image-Komponente übernimmt Formatwahl, srcset, Lazy Loading und Maße automatisch. Wichtig: beim LCP-Bild priority setzen – das schaltet Lazy Loading ab und priorisiert den Ladevorgang.

Kurz: richtiges Format, richtige Größe, feste Maße, LCP-Bild bevorzugt laden. Damit ist der Löwenanteil vieler Performance-Probleme erledigt.