Performanceoptimierung durch alternatives Bildformat WebP

Das neue Bildformat „WebP“ schickt sich an, der Nachfolger von JPG zu werden. Dabei will das neue Format mit besserer Komprimierung bei höherer Qualtität punkten. Wer das neue Format mal ausprobieren möchte, findet im folgenden Beitrag ein kleines Tutorial dazu.

Automatischer Umwandlung auf dem Webserver

Für die automatische Umwandlung der bestehenden Artikelbilder in das neue „WebP„-Format ist es am einfachsten das Kommandozeilentool „cwebp“ zu installieren, wofür es fertige Pakete gibt. Die Installation erfolgt per SSH über den Befehl

apt-get install webp

anschliessend wechselt man in den Artikelbilder-Ordner, i.d.R. ist das

cd ~/shop/images/products/main/

und gibt dann den folgenden Befehl für die WebP-Umwandlung ein

find . -regextype posix-egrep  -maxdepth 2 -type f  -iregex ‚.*\.jpg$‘ -exec cwebp -q 85 {} -o {}.webp \; 

dieser wandelt dann alle Bilder automatisch um

34030.jpg -> 34030.jpg.webp

Wenn auf dem Server keine Möglichkeit besteht die Umwandlung durchzuführen, dann kann man dies, z.B. auf dem Windows-PC mit IrfanView im Batchbetrieb erledigen, dazu sind die Format-Plugins zu installieren.

Auslieferung über .htaccess

Um die Bilder jetzt auszuliefern, ist die folgende .htaccess in den Order „/shop/images/products/main/“ zu legen: 

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_ACCEPT} image/webp
  RewriteCond %{REQUEST_FILENAME}.webp -f
  RewriteRule ^(.*)$ $1.webp [T=image/webp,E=accept:1]
</IfModule>

<IfModule mod_headers.c>
  Header append Vary Accept env=REDIRECT_accept
</IfModule>

AddType image/webp .webp

Browser-Unterstützung

Sollte der verwendete Browser (z.B. Chrome) „WebP“ akzeptieren, werden die neuen WepB-Bilder anstelle der JPG-Bilder ausgeliefert – ohne daß ein Eingriff am Shop notwendig ist. Firefox unterstützt das Format bis dato nicht.

Weitere Informationen zum Format finden sich unter anderem bei Wikipedia – inkl. einer kritischen Betrachtung.

Die Dateigrößen unterscheiden sich je nach Bildinhalt zwischen 30% und 50% – über die Entwickler-Console des jeweiligen Browsern kann leicht den Unterschied prüfen, indem man die Gesamtübertragungsmenge mit und ohne .htaccess-Datei vergleicht. Daraus ergibt sich ein schöner Performance-Vorteil gegenüber JPG-Bildern, ohne großen Aufwand.

Größenvergleich im Demoshop

webp vs. jpg Performancevergleich

Im Demoshop liegt die Gesamtmenge einer Suchergebnisseite (12 Artikel) mit WebP bei ca. 150kb und mit JPG bei ca. 180kb. Wobei derzeit eher mehr Bilder pro Blätterseite verwendet werden, was den Performance-Vorteil noch deutlicher erhöht.