Eine wichtige Maßnahmen zur Optimierung des Pagespeeds ist das Content-Encoding. GZIP ist dabei das verbreitete Format. Was Content-Encoding und GZIP ist ist Teil dieses Beitrags.
- Was ist Content-Encoding?
- lossless vs. lossy
- Was ist GZIP-Komprimierung?
- Wie aktiviert man GZIP-Komprimierung?
- Alternative zu GZIP inkl. Vergleich
- Prüfung des eingesetzten Formats
Was ist Content-Encoding?
Beim Content-Encoding werden Dateien, nachdem sie vom Client beim Server angefragt worden sind, vor dem Verschicken zunächst komprimiert. Der Client bekommt dann eine komprimierte Version der Datei, die in der Dateigröße deutlich reduzierter ist. Dies führt dazu, dass die Webseite schneller aufgebaut werden kann.
lossless vs. lossy
Bei Komprimierungen unterscheidet man grundsätzlich zwischen lossless (verlustfreie Komprimierung) und lossy (verlustbehaftete Komprimierung). Bei lossless können komprimierte Dateien in ihre Ursprungsform wieder hergestellt werden. Dies ist bei GZIP der Fall. Zunächst werden die Dateien komprimiert. Im Client werden sie jedoch wieder dekomprimiert, um sie zu lesen. lossy hingegen lässt sich nicht mehr wieder herstellen, da hier Daten bei der Komprimierung verloren gehen.
Was ist GZIP-Komprimierung?
GZIP ist ein Content-Encoding-Format. Dabei wird die Ursprungsdatei durch verschiedene Verfahren (Kürzung des Dokuments, Doppellungen löschen, etc.) komprimiert. Zum Schluss bekommt die Datei die Endung .gz. Beispiel vor und nach GZIP:
Datei | Größe |
---|---|
style.css | 400 kB |
style.css.gz | 80 kB |
Wie aktiviert man GZIP-Komprimierung?
Bei einem Apache-Server wird GZIP mittels folgenden Codes innerhalb der .htaccess aktiviert.
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
Die wichtigste Einstellung im Content-Encoding ist die Kompressionsstufe. GZIP bietet dabei 9 Stufen an (1-9). Standardmäßig wird bei den meisten wohl die Stufe 5 voreingestellt sein, wenn man GZIP aktiviert. 1 ist dabei die schwächste und am schnellsten durchgeführte Komprimierung. 9 ist die beste Komprimierung, jedoch muss hier der Server einiges an Arbeit leisten, weshalb diese Komprimierung mehr Zeit bez. Auslieferung in Anspruch nimmt. Hier sollte immer vorher zusammen mit der IT geprüft werden, was der Server verträgt.
Alternative zu GZIP inkl. Vergleich
Eine Alternative zu GZIP ist Brotli. Bisher wird Brotli kaum genutzt, kann aber gegenüber GZIP zu einer zusätzlichen Reduzierung der Datenübertragung führen.
Brotli wurde erstmals 2013 vorgestellt und diente zunächst zur Offline-Komprimierung von Webfonts. Zur Komprimierung von Daten nutzt Brotli ein Wörterbuch. Darin sind die 13.000 meist genutzten Ausdrücke in Text- und HTML-Dokumenten enthalten. Von den meisten Browsern wird Brotli schon unterstützt: https://caniuse.com/#feat=brotli.
Im Vergleich GZIP vs. Brotli sieht es wie folgt aus:
GZIP | Brotli | |
---|---|---|
Dateiendung | .gz | .br |
Erscheinungsjahr | 1992 | 2015 |
Bilderkomprimierung | Nein | Ja |
Stufen | 1-9 | 1-11 |
HTTPS notwendig? | Nein | Ja |
Prüfung des eingesetzten Formats
Mit dem Chrome-Browser lässt sich relativ schnell und einfach prüfen, welches Komprimierungsformat eine Website einsetzt:
- Chrome öffnen und Website aufrufen
- Mit F12 in die Developer Console wechseln
- Tab “Netzwerk” öffnen
- In der Liste die HTML-Seiten wählen
- Auf der rechten Seite erscheinen nun zusätzliche Daten. Im Reiter “Headers” und im Dropdown “Response Headers” findet man nun unter “content-encoding” das eingesetzte Format.