Machen wir uns alle nichts vor, wir können auf unserer Webseite noch so guten Content/Inhalt haben, wenn nicht das Google Ranking hoch ist. Es ist eben leider so, Zugriffe auf die Webseite kommen zu über 90% von Google. Daher ist es absolut wichtig das Google meint, dass deine Webseite gut für den Besucher ist und ihm seine Inhalte liefert die er sucht.
Tipp: Deine Webseite ist ohnehin Scheiße wenn diese keine Mehrwerte und Inhalte liefert, mach lieber das als Erstes, ist viel wichtiger.
Aber es ist eben auch wichtig das dieser Inhalt technisch gesehen schnell und schön dem Besucher präsentiert wird. Gerade schnell ist wichtig. Nichts ist schlimmer als eine Webseite die mehrere Sekunden braucht bis Inhalte angezeigt werden. Zum Glück liefere ich euch jetzt 2 schnelle Tipps wie wir Google ein bisschen Glücklicher machen können. Und zwar wenn du auf deinem Webserver (Apache, NGINX) HTTP/2 aktivierst und eben auch ein „Neues“ Komprimierungsverfahren namens BROTLI.
Schnell ein paar Worte zu HTTP/2
2015 ist der HTTP/2 Standard verabschiedet worden. Das große Ziel war die Übertragung zu beschleunigen und zu optimieren, aber trotzdem vollständig Abwärtskompatibel zu HTTP/1.1 zu sein. Den größten Performanceschub bekommt man bei HTTP/2 durch das Multiplexen. Hierbei werden über eine bestehende und offen gehaltene Verbindung mehrere Anfragen zur Webseite abgearbeitet. Wir müssen also nicht ständig neue TCP Verbindungen herstellen.
Wer mehr zum Thema HTTP/2 wissen will, HIER geht es zum passenden Wikipedia Eintrag.
# | Preview | Product | Rating | Price | |
---|---|---|---|---|---|
1 | Xiaomi Handy Redmi Note 13 256GB | 147,86 EUR | Bei Amazon ansehen | ||
2 | Xiaomi Redmi Note 13 Smartphone, 8+128GB, Handy ohne Vertrag, 6,67" FHD+ AMOLED Display, 5.000 mAh,... | 139,90 EUR | Bei Amazon ansehen | ||
3 | Motorola Mobility Moto g24 Smartphone (6,56"-HD+-Display, 50-MP-Kamera, 8/128 GB, 5000 mAh, Android... | 104,99 EUR | Bei Amazon ansehen |
HTTP/2 für Apache2 einschalten
Apache2 arbeitet bekanntlich mit Modulen. In der Regel ist das Modul http2 auch schon mit installiert, aber nicht aktiviert. Gleichzeitig sind noch weitere Module aktiv die das aktivieren von HTTP/2 verhindern (MPM_Prefork). Die meisten Webserver haben auch das PHP Modul aktiv, was auch verhindert das man das HHTP/2 aktivieren kann. Aber keine Sorge, schnell die 4 Befehle eingefügt und alles läuft wie vorher weiter, auch mit PHP.
## Ersetze die PHP Version mit deiner installierten Version (Hier im Beispiel Version 8.1) a2dismod php8.1 a2dismod mpm_prefork a2enmod mpm_event a2enmod http2 systemctl restart apache2
## Gebe dem Apache Webserver noch mit HTTP/2 Global zu benutzen ## ## nano /etc/apache2/apache2.conf ## nano /etc/apache2/apache2.conf ## Ergänze folgendes Zeile ## Protocols h2 h2c http/1.1
H2 aktiviert HTTP/2 und h2c aktiviert die Option HTTP/2 im Cleartext-Modus nutzen zu können.
BROTLI für Apache2 einschalten
Mit Brotli als Komprimierungsverfahren bietest du deinen Webseitenbesuchern ebenfalls eine Beschleunigung an. Daten werden besser und schneller komprimiert und somit ist das Aufrufen der Webseite deutlich schneller.
## Brotli installieren ## apt install brotli -y ## Brotli für Apache2 als Module aktivieren ## a2enmod brotli
Um dann den einzelnen Webseiten auf deinem Apache2 Webserver dies anbieten zu können, musst du das (falls nicht automatisch passiert) Brotli noch in den „virtual host“ Dateien hinzufügen. Einfach innerhalb des „<virtualhost ….. >“ Bereiches folgendes hinzufügen.
<IfModule mod_brotli.c> AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript </IfModule>
Das wars auch schon. Jetzt sind HTTP/2 und Brotli auf deinem Webserver aktiv und Google und die Besucher werden es dir danken.
Testen ob HTTP/2 und Brotli aktiviert sind.
curl -I -H 'Accept-Encoding: br' http://example.com ## Beispiel an schroederdennis.de ## HTTP/2 200 link: <https://schroederdennis.de/wp-json/>; rel="https://api.w.org/" x-frame-options: deny strict-transport-security: max-age=31536000; includeSubDomains; preload vary: Accept-Encoding content-encoding: br x-xss-protection: 1; mode=block x-content-type-options: nosniff x-permitted-cross-domain-policies: none referrer-policy: no-referrer content-length: 1 content-type: text/html; charset=UTF-8 date: Tue, 21 Jun 2022 06:36:03 GMT server: Apache
21. Juni 2022 um 22:24 Uhr
Erstmal vorhin auf meiner haproxy Instant http2 aktiviert super einfach…
Brotli bekomme ich nicht hin nach wenigen minuten des googlns gibt’s das für haproxy anscheinend nicht…
Noice
22. Juni 2022 um 08:25 Uhr
Das kann gut sein, dass es das für nicht alles gibt ja.
22. Juni 2022 um 16:56 Uhr
Hallo Dennis,
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/x-javascript applica>
soll wahrscheinlich
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript
heißen?!
VG
22. Juni 2022 um 18:01 Uhr
Du hast Recht, das soll es heißen!
22. Juni 2022 um 18:24 Uhr
Warum auch immer, aber ich hatte mit deinen Einstellungen kein Erfolg. Bei mir hängen mehrere Domains hinter einem Proxy (apache). Mit folgenden Einstellungen hatte es funktioniert:
SetOutputFilter BROTLI_COMPRESS
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|web[pm]|woff2|xyz|zip|tar\.gz|7z?)$ no-brotli
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|web[pm]|woff2|xyz|zip|tar\.gz|7z?)$ no-gzip
Kann leider den Zeilenumbruch nicht verhindern bei SetEnvIfNoCase, soll eine Zeile sein…
VG
22. Juni 2022 um 18:30 Uhr
So ein Mist aber auch, jetzt fehlen die Tags… die If Zeilen sind mit eckigen Klammern () …
If „%{HTTP:Accept-encoding} =~ /br/“
SetOutputFilter BROTLI_COMPRESS
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|web[pm]|woff2|xyz|zip|tar\.gz|7z?)$ no-brotli
/If
ElseIf „%{HTTP:Accept-encoding} =~ /deflate/“
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|web[pm]|woff2|xyz|zip|tar\.gz|7z?)$ no-gzip
/ElseIf