Gzip-Komprimierung und Brotli: Texte kleiner ausliefern

Mit Gzip-Komprimierung schickt Ihr Webserver HTML, CSS und JavaScript in gepackter Form an den Browser, der sie in Millisekunden wieder entpackt. Textdateien schrumpfen dabei typischerweise auf ein Viertel bis ein Drittel ihrer Größe. Das neuere Verfahren Brotli spart bei Texten noch einmal spürbar mehr. Bei den meisten Webhostern ist eine der beiden Methoden schon aktiv. Ob das bei Ihnen so ist, prüfen Sie in einer Minute, und falls nicht, reichen ein paar Zeilen in der Konfiguration.

Das Wichtigste in Kürze

  • Komprimierung macht HTML, CSS und JavaScript beim Übertragen drei- bis viermal kleiner.
  • Brotli spart bei Texten noch einmal 15 bis 25 Prozent gegenüber Gzip.
  • Prüfen Sie den Antwort-Header content-encoding in den Entwicklerwerkzeugen des Browsers.
  • Bilder, Videos und WOFF2-Schriften sind schon gepackt und gehören nicht in die Liste.

Was Komprimierung bringt

Textdateien enthalten viele Wiederholungen: dieselben HTML-Tags, dieselben Namen von CSS-Klassen, dieselben Wörter. Komprimierungsverfahren ersetzen Wiederholungen durch kurze Verweise. Eine Startseite mit 120 KB HTML wird dadurch zu etwa 25 KB. Bei Stylesheets und Skripten von Frameworks ist der Effekt oft noch größer.

Das verkürzt die Ladezeit vor allem bei langsamen Verbindungen und auf dem Handy. Lighthouse und PageSpeed Insights melden fehlende Komprimierung als Hinweis „Textkomprimierung aktivieren“. Wo Komprimierung im Zusammenspiel mit anderen Maßnahmen steht, zeigt der Ratgeber zur Website-Performance.

Größe einer HTML-Seite ohne und mit Komprimierung
Beispiel für eine Startseite: ohne Komprimierung 120 KB, mit Gzip etwa 28 KB, mit Brotli etwa 23 KB. Die Ersparnis hängt vom Inhalt ab.

Gzip, Brotli und Zstandard

Gzip ist der Klassiker und wird von jedem Browser und Server unterstützt. Es ist schnell und spart bei Texten meist 60 bis 80 Prozent.

Brotli wurde von Google entwickelt und ist bei Texten meist 15 bis 25 Prozent kleiner als Gzip. Alle aktuellen Browser unterstützen es, allerdings nur über HTTPS. Auf höchster Stufe ist Brotli langsam beim Packen. Für Inhalte, die bei jedem Aufruf neu erzeugt werden, nimmt man deshalb eine mittlere Stufe.

Zstandard ist das jüngste Verfahren. Chrome und Firefox unterstützen es seit 2024. Es packt sehr schnell bei ähnlicher Größe wie Brotli. Auf Webservern ist es noch selten eingerichtet, für die meisten Seiten sind Gzip und Brotli heute die richtige Wahl.

Welches Verfahren genutzt wird, handeln Browser und Server selbst aus. Der Browser sendet in der Kopfzeile Accept-Encoding, was er kann, etwa gzip, deflate, br, zstd. Der Server wählt eines davon und nennt es in der Antwort unter Content-Encoding. Die Einzelheiten beschreibt die Referenz von MDN.

Wie Browser und Server das Verfahren aushandeln
Der Browser nennt in Accept-Encoding die Verfahren, die er kann. Der Server wählt eines, packt die Antwort und nennt das Verfahren in Content-Encoding. Der Browser entpackt.

Gzip-Komprimierung in einfachen Worten

Stellen Sie sich vor, Sie verschicken einen langen Brief als ZIP-Datei statt als losen Stapel Papier. Genau das macht die Gzip-Komprimierung mit Ihrer Webseite. Der Server packt den Text zusammen, schickt das kleinere Paket los, und der Browser packt es beim Empfang wieder aus. Besucher merken davon nichts, außer dass die Seite schneller da ist, besonders unterwegs mit schwachem Mobilfunk.

Wirksam ist das nur bei Text: HTML, CSS, JavaScript, SVG und JSON. Fotos im JPEG- oder WebP-Format sind schon gepackt und werden nicht kleiner. Für Bilder gibt es eigene Wege, die unser Ratgeber zum Bilder optimieren beschreibt.

Ohne Befehlszeile prüfen: Öffnen Sie Ihre Seite im Browser, drücken Sie F12, wählen Sie den Reiter „Netzwerk“ und laden Sie neu. Klicken Sie auf das HTML-Dokument und suchen Sie unter „Antwort-Header“ die Zeile content-encoding. Steht dort gzip oder br, ist die Komprimierung aktiv. Fehlt die Zeile, hilft der Abschnitt weiter unten für Webspace ohne Serverzugriff.

Prüfen, ob die Gzip-Komprimierung aktiv ist

Öffnen Sie Ihre Seite im Browser, dann die Entwicklerwerkzeuge mit F12 und den Bereich „Netzwerk“. Laden Sie die Seite neu und klicken Sie auf die erste Zeile, das HTML-Dokument. Unter den Antwort-Headern steht bei aktiver Komprimierung content-encoding: br oder content-encoding: gzip. Prüfen Sie dasselbe auch für eine CSS- und eine JavaScript-Datei.

Auf der Konsole geht es mit curl:

curl -sI -H "Accept-Encoding: br, gzip" https://www.beispiel.de/ | grep -i content-encoding
curl -sI -H "Accept-Encoding: gzip" https://www.beispiel.de/style.css | grep -i content-encoding

Kommt keine Zeile zurück, ist die Komprimierung für diesen Dateityp nicht aktiv.

Gzip-Komprimierung bei Apache einrichten

Beim Webhosting mit Apache aktivieren Sie die Gzip-Komprimierung über das Modul mod_deflate in der Datei .htaccess im Hauptordner:

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
    AddOutputFilterByType DEFLATE application/javascript application/json
    AddOutputFilterByType DEFLATE application/xml application/rss+xml
    AddOutputFilterByType DEFLATE image/svg+xml font/ttf font/otf
</IfModule>

Die Klammer IfModule sorgt dafür, dass die Seite weiterläuft, falls das Modul fehlt. Trotz des Namens DEFLATE liefert Apache damit Gzip aus. Wie die Datei funktioniert und wie Sie Fehler vermeiden, erklärt der Ratgeber zur htaccess-Datei.

Brotli gibt es bei Apache über das Modul mod_brotli. Auf Webspace ist es meist Sache des Hosters, ob es geladen ist. Viele Server mit LiteSpeed liefern Brotli ohnehin von selbst aus. Fragen Sie im Zweifel den Support, bevor Sie eigene Regeln dafür eintragen.

Ist mod_brotli auf Ihrem Server geladen, können Sie Brotli mit Gzip als Rückfall kombinieren. Die Apache-Dokumentation beschreibt dafür eine Filterkette, bei der Brotli zuerst greift:

<IfModule mod_brotli.c>
    AddOutputFilterByType BROTLI_COMPRESS;DEFLATE text/html text/css application/javascript
</IfModule>

Testen Sie danach mit curl, ob Browser mit Brotli-Unterstützung wirklich br bekommen und alle anderen gzip.

Wenn Sie keinen Zugriff auf den Server haben

Bei manchen Baukästen und günstigen Tarifen können Sie weder die htaccess noch die Serverkonfiguration ändern. Dann bleiben drei Wege: den Support des Anbieters bitten, die Komprimierung für alle Textdateien einzuschalten, ein CDN vor die Seite setzen, das selbst komprimiert, oder bei der nächsten Gelegenheit zu einem Tarif wechseln, der das von Haus aus kann. Die meisten Hoster haben Gzip ohnehin aktiv. Fragen Sie konkret nach CSS und JavaScript, denn manchmal ist nur HTML komprimiert.

Gzip und Brotli bei Nginx einrichten

Auf einem eigenen Server mit Nginx ist Gzip eingebaut, aber oft nur für HTML aktiv. Ergänzen Sie im Block http der Datei /etc/nginx/nginx.conf:

gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_vary on;
gzip_proxied any;
gzip_types text/plain text/css text/xml application/javascript
           application/json application/xml application/rss+xml
           image/svg+xml font/ttf font/otf;

HTML müssen Sie nicht nennen, es wird immer komprimiert. Die Angabe gzip_vary sorgt dafür, dass Zwischenspeicher wie ein CDN gepackte und ungepackte Fassungen auseinanderhalten.

Für Brotli braucht Nginx das Zusatzmodul ngx_brotli. Auf manchen Distributionen gibt es dafür ein fertiges Paket, sonst müssen Sie es selbst bauen. Ist es geladen, sehen die Zeilen ähnlich aus:

brotli on;
brotli_comp_level 5;
brotli_types text/plain text/css text/xml application/javascript
             application/json application/xml image/svg+xml;

Testen Sie nach jeder Änderung mit sudo nginx -t und laden Sie dann mit sudo systemctl reload nginx neu.

Welche Dateien komprimiert werden sollten
HTML, CSS, JavaScript, JSON, SVG und XML profitieren stark. JPEG, PNG, WebP, WOFF2 und ZIP sind schon gepackt und werden nicht kleiner.

Was Sie nicht komprimieren sollten

Bilder wie JPEG, PNG, WebP und AVIF, Videos, Schriften im Format WOFF2 sowie ZIP-Archive sind bereits gepackt. Eine zweite Komprimierung macht sie nicht kleiner, kostet aber Rechenzeit. Lassen Sie diese Typen deshalb aus der Liste. Bei Bildern sparen Sie stattdessen mit der richtigen Größe und einem modernen Format, wie es der Ratgeber zum Thema Bilder optimieren beschreibt.

Sehr kleine Dateien unter wenigen hundert Bytes lohnen ebenfalls nicht, dafür gibt es die Mindestgröße gzip_min_length.

Stufen und vorab gepackte Dateien

Je höher die Stufe, desto kleiner die Datei und desto länger braucht der Server. Bei Gzip bringen Stufen über 6 kaum noch etwas. Bei Brotli ist eine Stufe zwischen 4 und 6 für Inhalte, die bei jedem Aufruf neu entstehen, ein guter Kompromiss.

Für Dateien, die sich selten ändern, etwa gebündelte Skripte und Stylesheets, können Sie beim Bauen der Seite fertige Fassungen auf höchster Stufe erzeugen, also app.js.gz und app.js.br neben app.js. Nginx liefert sie mit gzip_static on; direkt aus, ohne bei jeder Anfrage neu zu packen. Viele Werkzeuge für den Build wie Vite können solche Dateien mit einem Zusatz automatisch erzeugen.

CMS, Cache-Plugins und CDN

Viele Cache-Plugins für WordPress schreiben Regeln für die Gzip-Komprimierung selbst in die htaccess. Prüfen Sie danach, ob die Regeln doppelt vorkommen, und entfernen Sie eigene Einträge, wenn das Plugin sie schon setzt. Nutzen Sie ein CDN, komprimiert es die Antworten meist selbst mit Brotli, auch wenn Ihr Server nur Gzip kann. Mehr zum Zusammenspiel von Cache und CDN steht im Ratgeber zu Caching-Strategien.

Wo die Komprimierung eingerichtet wird
Auf Webspace mit Apache in der htaccess über mod_deflate, auf eigenen Servern mit Nginx in der nginx.conf, in WordPress oft über Cache-Plugins und bei einem CDN direkt in dessen Einstellungen.

Ein Wort zur Sicherheit

Ein bekannter Angriff namens BREACH nutzt Komprimierung, um über viele Anfragen geheime Werte aus verschlüsselten Seiten zu erraten. Er setzt voraus, dass ein Angreifer den Verkehr beobachten und eigene Eingaben in die Seite bringen kann, die neben einem Geheimnis wie einem Token stehen. Moderne Frameworks schützen sich dagegen, etwa indem sie Tokens bei jedem Aufruf verändern. Für normale Websites ist das kein Grund, auf Komprimierung zu verzichten.

Häufig gestellte Fragen

Ist die Gzip-Komprimierung bei meinem Hoster schon aktiv?

Bei den meisten ja. Prüfen Sie in den Entwicklerwerkzeugen den Antwort-Header content-encoding für HTML, CSS und JavaScript.

Brauche ich Gzip, wenn Brotli läuft?

Lassen Sie Gzip als Rückfall aktiv. Ältere Programme und manche Werkzeuge verstehen nur Gzip, und der Server wählt automatisch das beste Verfahren.

Belastet Komprimierung den Server?

Bei mittleren Stufen kaum. Die eingesparte Übertragungszeit ist fast immer größer als die Rechenzeit.

Warum meldet PageSpeed trotzdem fehlende Komprimierung?

Oft fehlen einzelne Dateitypen in der Liste, etwa JSON oder SVG, oder eine Datei kommt von einem fremden Server ohne Komprimierung.

Muss ich Komprimierung auch für HTTP/2 einschalten?

Ja. HTTP/2 und HTTP/3 komprimieren nur die Kopfzeilen, nicht den Inhalt. Für HTML, CSS und JavaScript bleibt Gzip oder Brotli nötig.

Gzip-Komprimierung und Brotli nutzen

Prüfen Sie den Header content-encoding für HTML, CSS und JavaScript. Fehlt er, aktivieren Sie die Gzip-Komprimierung in der htaccess oder in Nginx und fragen Sie nach Brotli. Lassen Sie bereits gepackte Formate wie Bilder aus.

Kombinieren Sie die Komprimierung jetzt mit dem richtigen Caching.


Weitere Artikel in „Performance & Optimierung“

PHP-Version ändern: Wann, wie und worauf Sie dabei achten

PHP Version ändern Schritt für Schritt: welche Versionen noch Updates bekommen, wie Sie beim Hoster …

Website-Monitoring: Ausfälle bemerken, bevor Kunden es tun

Website Monitoring einrichten: Erreichbarkeit, Inhalt, SSL-Zertifikat, Domain und Ladezeit von außen…

Bilder optimieren: weniger Ladezeit bei gleicher Qualität

Bilder optimieren für die Website: richtige Größe, WebP und AVIF, Kompression, srcset, Lazy Loading …

Website Performance optimieren: So wird Ihre Seite blitzschnell

Website Performance messbar verbessern: Bilder optimieren, Caching nutzen, Serverzeit senken und die…

Caching-Strategien für Webseiten: Jede Ebene optimal nutzen

Caching Strategien verständlich erklärt: Browser-, Server- und Objekt-Cache im Zusammenspiel, passen…

CDN Grundlagen: Content Delivery Networks für schnellere Websites

CDN Grundlagen verständlich erklärt: Wie ein Content Delivery Network arbeitet, wann es sich lohnt u…