Bilder sind oft die größten Dateien auf einer Website — und damit einer der stärksten Hebel für bessere Ladezeiten. Im Schnitt machen Bilder 50–70 % des Seitengewichts aus. Eine einzige schlecht optimierte Produktseite mit 10 unkomprimierten JPEG-Bildern kann leicht 5–8 MB wiegen.
Die gute Nachricht: Mit den richtigen Formaten (WebP, AVIF) und Techniken (Lazy Loading, responsive Bilder) lässt sich das Seitengewicht oft um 60–80 % reduzieren — ohne sichtbaren Qualitätsverlust. Das verbessert nicht nur die Ladezeit als Ranking-Faktor, sondern direkt auch den LCP-Wert der Core Web Vitals.
Bildformate im Vergleich: JPEG, PNG, WebP, AVIF
Die Wahl des richtigen Bildformats ist der erste und wichtigste Schritt bei der Bildoptimierung.
JPEG — Der Klassiker (meist noch gut)
Verlustbehaftete Komprimierung, gut für Fotos. Kein Transparenz-Support. Breite Browser-Unterstützung.
- Typische Größe: 200–500 KB für ein Produktbild
- Gut für: Fotos, komplexe Bilder mit vielen Farben
- Nicht geeignet für: Logos, Icons, Texte in Bildern
PNG — Verlustfrei (oft zu groß)
Verlustfreie Komprimierung, unterstützt Transparenz (Alpha-Kanal). Deutlich größer als JPEG bei Fotos.
- Typische Größe: 500 KB–2 MB für dasselbe Foto wie JPEG
- Gut für: Logos mit Transparenz, Screenshots, Grafiken mit Text
- Nicht geeignet für: Fotos (benutze stattdessen WebP oder JPEG)
WebP — Empfohlen für die meisten Fälle ✓
Von Google entwickelt. 25–35 % kleiner als JPEG bei gleicher Qualität. Unterstützt Transparenz. Alle modernen Browser unterstützen es (seit 2020 auch Safari).
- Typische Einsparung: 25–35 % gegenüber JPEG, 60–80 % gegenüber PNG
- Gut für: Fotos, Grafiken mit und ohne Transparenz — fast alles
- Browser-Support: Chrome, Firefox, Safari 14+, Edge — über 97 % aller Nutzer
AVIF — Die Zukunft (noch nicht überall)
Neuestes Format. 40–50 % kleiner als JPEG bei gleicher Qualität. Noch bessere Komprimierung als WebP. Browser-Support wächst, aber noch nicht vollständig.
- Typische Einsparung: 40–50 % gegenüber JPEG
- Browser-Support: Chrome 85+, Firefox 93+, Safari 16+, Edge 121+ — ~90 % der Nutzer
- Empfehlung: Als erste Option anbieten, WebP als Fallback
SVG — Ideal für Vektorgrafiken
XML-basiertes Vektorformat. Skaliert verlustfrei auf jede Größe. Sehr klein für einfache Grafiken.
- Gut für: Logos, Icons, einfache Illustrationen
- Kann direkt im HTML eingebettet werden (inline SVG)
WebP und AVIF mit <picture> einbinden
Das <picture>-Element ermöglicht es, mehrere Bildformate anzubieten. Der Browser wählt automatisch das beste unterstützte Format:
<!-- Optimales Bild-Markup: AVIF → WebP → JPEG Fallback -->
<picture>
<!-- AVIF für moderne Browser (beste Komprimierung) -->
<source srcset="produkt.avif" type="image/avif">
<!-- WebP als zweite Option -->
<source srcset="produkt.webp" type="image/webp">
<!-- JPEG als Fallback für ältere Browser -->
<img src="produkt.jpg" alt="Beschreibung des Produkts" width="800" height="600" loading="lazy">
</picture>
Wichtig: Das finale <img>-Tag muss immer vorhanden sein — es wird in alten Browsern gezeigt, die <picture> nicht unterstützen.
Responsive Bilder mit srcset
Warum ein 1200 Pixel breites Bild für mobile Nutzer laden, wenn deren Bildschirm nur 390 Pixel breit ist? Mit srcset kannst du verschiedene Bildgrößen für verschiedene Bildschirmauflösungen anbieten:
<!-- Responsive Bild: Browser wählt passende Größe -->
<img
src="hero-800.jpg"
srcset="hero-400.jpg 400w,
hero-800.jpg 800w,
hero-1200.jpg 1200w,
hero-1600.jpg 1600w"
sizes="(max-width: 640px) 100vw,
(max-width: 1024px) 50vw,
800px"
alt="Hero-Bild mit Beschreibung"
width="800"
height="600"
loading="eager">
<!-- loading="eager" für LCP-Bilder im sichtbaren Bereich -->
Kombiniert mit WebP und AVIF sieht das so aus:
<picture>
<source
type="image/avif"
srcset="hero-400.avif 400w, hero-800.avif 800w, hero-1200.avif 1200w"
sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 800px">
<source
type="image/webp"
srcset="hero-400.webp 400w, hero-800.webp 800w, hero-1200.webp 1200w"
sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 800px">
<img
src="hero-800.jpg"
srcset="hero-400.jpg 400w, hero-800.jpg 800w, hero-1200.jpg 1200w"
sizes="(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 800px"
alt="Hero-Bild Beschreibung"
width="800" height="600"
loading="eager">
</picture>
Bilder konvertieren: Werkzeuge und Methoden
Methode 1: Squoosh (kostenlos, im Browser)
Google Squoosh läuft vollständig im Browser und unterstützt alle gängigen Formate inklusive AVIF und WebP. Ideal für einzelne Bilder oder kleine Mengen. Einfach auf squoosh.app hochladen, Format wählen und Qualität einstellen.
Methode 2: Sharp (Node.js, für Automatisierung)
// Node.js: Sharp für Massen-Konvertierung
const sharp = require('sharp');
// Einzelnes Bild zu WebP konvertieren
sharp('input.jpg')
.webp({ quality: 80 })
.toFile('output.webp');
// Mehrere Größen für srcset generieren
const sizes = [400, 800, 1200, 1600];
sizes.forEach(width => {
sharp('hero.jpg')
.resize(width)
.webp({ quality: 82 })
.toFile(`hero-${width}.webp`);
sharp('hero.jpg')
.resize(width)
.avif({ quality: 65 }) // AVIF braucht niedrigere Qualitätszahl
.toFile(`hero-${width}.avif`);
});
Methode 3: ImageMagick (Kommandozeile)
# Einzelnes Bild zu WebP konvertieren
convert input.jpg -quality 82 output.webp
# Alle JPEGs im Verzeichnis zu WebP konvertieren
for f in *.jpg; do
convert "$f" -quality 82 "${f%.jpg}.webp"
done
# Zu AVIF konvertieren (braucht libavif)
convert input.jpg -quality 65 output.avif
Lazy Loading: Bilder nur laden wenn nötig
Bilder die beim ersten Laden der Seite nicht sichtbar sind, müssen nicht sofort heruntergeladen werden. Lazy Loading löst dieses Problem elegant:
<!-- Lazy Loading mit nativem HTML-Attribut -->
<img
src="produkt.webp"
alt="Produkt XL in Blau"
width="600"
height="400"
loading="lazy">
<!-- NICHT für Above-the-fold Bilder (LCP-Bild)! -->
Kritischer Fehler: Das LCP-Bild (das wichtigste sichtbare Bild beim Laden) darf NICHT loading="lazy" haben! Das verzögert den LCP und schadet dem Ranking. Nur Bilder unterhalb des sichtbaren Bereichs sollten lazy geladen werden.
fetchpriority für LCP-Bilder (2024+)
Das fetchpriority-Attribut gibt dem Browser Hinweise welches Bild er priorisiert laden soll:
<!-- LCP-Bild: Höchste Priorität, sofort laden -->
<img
src="hero.webp"
alt="Hero-Bild"
width="1200" height="630"
loading="eager"
fetchpriority="high">
<!-- Alle anderen Bilder: Normal oder niedrig -->
<img
src="gallery-1.webp"
alt="Galerie Bild 1"
width="400" height="300"
loading="lazy"
fetchpriority="low">
Alt-Texte: Pflicht für SEO und Barrierefreiheit
Alt-Texte sind nicht nur für Screenreader wichtig — Google kann Bilder zwar immer besser erkennen, verlässt sich aber nach wie vor stark auf Alt-Texte zur Kategorisierung. Dabei gilt:
- Gut:
alt="Elektriker montiert Sicherungskasten in Berliner Altbau" - Schlecht:
alt="Bild"oderalt="image123.jpg" - Keyword-Stuffing (schlecht!):
alt="Elektriker Berlin Elektriker günstig bester Elektriker Berlin Preis" - Dekorationsbilder: leeres Alt-Attribut setzen:
alt=""
Mit unserem Image-Alt-Tag-Checker kannst du prüfen, ob alle Bilder auf deiner Website korrekte Alt-Texte haben.
Bilder mit CDN ausliefern
Ein Content Delivery Network (CDN) liefert Bilder von einem Server nahe beim Nutzer aus. Das reduziert die Latenz erheblich. Für kleine Websites ist Cloudflare kostenlos und einfach einzurichten. Größere Sites nutzen Cloudinary oder imgix — die auch automatisch WebP/AVIF-Konvertierung, Größenanpassung und Optimierung übernehmen.
<!-- Cloudinary: Automatische WebP-Konvertierung via URL-Parameter -->
<img
src="https://res.cloudinary.com/dein-account/image/upload/f_auto,q_auto,w_800/produkt.jpg"
alt="Produkt XL"
width="800" height="600" loading="lazy">
<!-- f_auto: liefert WebP/AVIF wenn der Browser es unterstützt -->
<!-- q_auto: optimale Qualitätsstufe automatisch -->
CSS-Hintergrundbilder optimieren
Hintergrundbilder in CSS werden nicht durch HTML-Attribute wie loading="lazy" oder srcset gesteuert. Aber es gibt Alternativen:
/* Modernes CSS: image-set() für responsive Hintergrundsbilder */
.hero {
background-image: image-set(
url("hero.avif") type("image/avif"),
url("hero.webp") type("image/webp"),
url("hero.jpg") type("image/jpeg")
);
background-size: cover;
}
/* Responsive Hintergrundbilder mit Media Queries */
.hero {
background-image: url("hero-mobile.webp");
}
@media (min-width: 768px) {
.hero { background-image: url("hero-tablet.webp"); }
}
@media (min-width: 1200px) {
.hero { background-image: url("hero-desktop.webp"); }
}
Checkliste: Bildoptimierung für SEO
| Maßnahme | Priorität | Impact |
|---|---|---|
| Format auf WebP umstellen | Hoch | 25–35% kleiner |
| loading="lazy" für nicht-LCP-Bilder | Hoch | Reduziert initialen Transfer |
| width und height auf allen <img>-Tags | Hoch | CLS = 0 für Bilder |
| Alt-Texte mit beschreibenden Keywords | Hoch | Google Bildersuche + E-A-T |
| Bildgrößen für verschiedene Viewports (srcset) | Mittel | Bis zu 60% weniger Daten mobil |
| fetchpriority="high" für LCP-Bild | Mittel | LCP verbessert sich spürbar |
| AVIF als zusätzliches Format anbieten | Niedrig | Weitere 15–20% für AVIF-Browser |
| CDN für Bildauslieferung | Niedrig | Reduzierte Latenz weltweit |
Typische Fehler bei der Bildoptimierung
1. LCP-Bild lazy laden: Der häufigste Fehler. Das Bild das als Largest Contentful Paint gilt (oft das Hero-Bild oder das erste große Produktbild) darf niemals loading="lazy" haben. Das verzögert es unnötig.
2. Fehlende width/height-Attribute: Ohne diese reserviert der Browser keinen Platz. Sobald das Bild lädt, springt das Layout (schlechter CLS-Wert). Immer width und height im Original-Seitenverhältnis angeben — CSS kann das Bild dann responsiv skalieren.
3. Überdimensionierte Bilder: Ein 4K-Foto (4000×3000 px) als Hero-Bild hochladen, das nur 800 px breit angezeigt wird, ist Ressourcenverschwendung. Bilder immer auf die maximale Anzeigegröße skalieren (mit einem kleinen Puffer für Retina-Displays: 2x).
4. Fehlende Komprimierung: WebP ist kein Freifahrtschein. Ein qualitativ 100 % komprimiertes WebP ist größer als ein gut komprimiertes JPEG. Qualitätsstufe 75–85 ist für Fotos in der Regel ausreichend und spart bis zu 70 % der Dateigröße.
Fazit: Bilder sind dein stärkster Performance-Hebel
Wenn du nur eine Maßnahme für bessere Ladezeiten umsetzt: Stelle alle Bilder auf WebP um. Das allein reduziert das Seitengewicht um durchschnittlich 30 % und verbessert direkt den LCP-Wert.
Die komplette Optimierung in der Reihenfolge:
- Format: JPEG/PNG → WebP (sofort 25–35 % Einsparung)
- Lazy Loading:
loading="lazy"auf alle Bilder unter dem Fold - Dimensionen:
widthundheightauf alle<img>-Tags (CLS eliminieren) - Alt-Texte: Beschreibend, mit relevanten Keywords
- Responsive Images: srcset für verschiedene Bildschirmgrößen
Wer noch weiter optimieren möchte, schaut sich die verwandten Themen an: JavaScript-Performance und Caching sind die nächsten großen Hebel für schnellere Websites.