Wie wird die gzip-Komprimierung bei Joomla aktiviert?

Diese Anleitung funktioniert mit jeder Joomla! Version

Warum gzip? Diese Kompressionsmethode minimiert die Antwortzeit der Website drastisch, indem die Größe der zu übertragenen Dateien reduziert und komprimiert zu Verfügung gestellt wird. gzip ist zur Zeit die populärste und wirksamste verfügbare Kompressionsmethode, die die Datengröße um bis zu 70% reduzieren kann. Diese Methode bietet eine hohe Geschwindigkeit bei gleichzeitig guter Datenreduzierung. Der Einsatz der gzip-Komprimierung bietet eine gute Möglichkeit, die Geschwindigkeit, den Traffic und die Dateigröße der Website zu optimieren.

gzip-Komprimierung mit Hilfe von SmartOptimizer

SmartOptimizer stellt nicht nur die gzip-Kompression zur Verfügung, sondern bietet weitere Techniken für die Optimierung der Website. SmartOptimizer erhöht die Performance der Website, in dem es Techniken wie Minimierung (Minifier), Kompression, Caching, Konkatenation und Einbetten benutzt. Die Dateien werden beim ersten Aufruf optimiert. Bereits optimierte Dateien werden aus dem Cache geladen.

Hinweis: Mittlerweile gibt es Plugins, die diese Arbeit sehr gut verrichten und SmartOptimizier eigentlich überflüssig machen. Meine Empfehlungen: JFinalizer und JCH Optimize

Features von SmartOptimizer

- SmartOptimizer erhöht die Downloadgeschwindigkeit der Website durch die Reduzierung der JavaScript- und CSS-Dateien um bis zu 80%
- SmartOptimizer reduziert die Anzahl der HTTP Requests durch die Konkatenation der JS- und CSS-Dateien und dem Einbetten von CSS Images
- SmartOptimizer erstellt Cache-Dateien, damit die optimierten Dateien nicht bei jedem Aufruf neu generiert werden müssen. Werden Originale verändert, wird die Datei neu im Cache abgelegt.
- Unterstützt der Browser (ältere Versionen) keine gzip-Komprimierung, dann liefert SmartOptimizer die unkomprimierten Dateien aus.
- weitere Features sind auf der Entwicklerwebsite zu finden

Anleitung für Joomla mit eingeschaltetem mod_rewrite (.htaccess)

Sollte mod_rewrite deaktiviert sein oder kein Apache HTTP Server benutzt werden, dann kann SmartOptimizer auch genutzt werden.
Eine Anleitung ist auf der Website des Entwicklers zu finden.

ACHTUNG: Bevor man die gzip-Komprimierung mit SmartOptimizer durchführt, sollte man prüfen, ob diese Kompressionsmethode nicht schon per Default auf dem Server aktiviert ist. Eine weitere Komprimierung kann eine Fehlfunktion der Skripte verursachen.
Prüfen lässt sich das zum Beispiel hier: gzip Test
Sollte gzip bereits aktiv sein, kann SmartOptimizer trotzdem benutzt werden, jedoch sollte in der Konfigurationsdatei (s. unten) der Eintrag $settings['gzip'] = true; auf false gesetzt werden.
Ein Dank für den Hinweis geht an Flotte aus dem Joomlaportal-Forum.

1. SmartOptimizer installieren

Aktuelle Version runterladen (Downloadlink unten), entpacken und den Ordner "smartoptimizer" in das Root-Verzeichnis der Joomla-Installation laden. Das war's eigentlich schon mit der Installation!

2. SmartOptimizer aktivieren (.htaccess anpassen)

.htaccess öffnen und den Eintrag RewriteEngine On suchen, direkt danach hinzufügen (neue Zeile):

<IfModule mod_expires.c>
   <FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt)$">
      ExpiresActive On
      ExpiresDefault "access plus 10 years"
   </FilesMatch>
</IfModule>
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*\.(js|css))$ smartoptimizer/?$1
   <IfModule mod_expires.c>
      RewriteCond %{REQUEST_FILENAME} -f
      RewriteRule ^(.*\.(js|css|html?|xml|txt))$ smartoptimizer/?$1
   </IfModule>
   <IfModule !mod_expires.c>
      RewriteCond %{REQUEST_FILENAME} -f
      RewriteRule ^(.*\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt))$ smartoptimizer/?$1
   </IfModule>
</IfModule>
<FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt)$">
   FileETag none
</FilesMatch>

Abspeichern und hochladen. Fertig!

3. Konfiguration anpassen

SmartOptimizer funktioniert eigentlich ohne Änderung der Standardeinstellungen. Sollte es Probleme geben oder Änderungen (z.B.: gzip deaktivieren) nötig sein, findet man eine sehr gut dokumentierte Konfigurationsdatei unter /smartoptimizer/config.php. Die einzelnen Optionen werden ebenfalls auf der Website des Entwicklers erklärt.
Die Kompressionsstufe sollte auf 6 gesetzt werden, da die Stufe 9 bezüglich der Komprimierung nicht viel mehr bringt, jedoch eine viel höhere Last auf dem Server verursacht. Diese Option heißt $settings['compressionLevel'].

Demonstration der Optimierung

Diese Analysen wurden von der Startseite dieser Website mit der Erweiterung YSlow gemacht. Die HTTP Requests und die Datengröße werden enorm optimiert!

Ohne Smartoptimizer

Joomla ohne GZIP - Smartoptimizer

Mit Smartoptimizer

Joomla mit GZIP - Smartoptimizer

Exkurs: Bei der Option "minify" wird meine CSS-Datei größer. Warum?

Das liegt daran, dass Hintergrundbilder Base64-kodiert werden. Durch diese Kodierung werden die unkomprimierten Dateien zwar ein wenig größer, die gzip-komprimierten Dateien können jedoch noch weiter verringert werden. Ich empfehle die JS- und CSS-Dateien manuell zu optimieren.

Hier findet ihr entsprechende Links, um diese Dateien schnell und einfach zu optimieren:

JS-Dateien: Javascript Compressor Cruncher

CSS-Dateien: CSS Formatierer und Optimierer oder CSS Compressor

Exkurs: Beim Aufrufen der Website kommt der Fehler 'SmartOptimizer Error: File ist out of base directory'

Das passiert, wenn Dateien, die eingebunden werden, nicht vorhanden sind. Hierbei sollte man den Quellcode durchschauen, die nicht vorhandene Datei ausfindig machen und die Einbindung korrigieren. Diese Fehlermeldung lässt sich auch deaktivieren, man muss in der Konfigurationsdatei debug auf false stellen:

//Show error messages if any error occurs (true or false)
$settings['debug'] = false;

So wird nur die Meldung unterdrückt, die nicht vorhandene Datei jedoch weiter eingelesen. Ich empfehle die Bearbeitung des Quellcodes.

Download Smartoptimizer

Website: SmartOptimizer

Für Joomla 1.5 gibt es ein fertiges Plugin, das (nur) die gzip-Komprimierung automatisch aktiviert: RokGZipper Plugin. Jedoch optimiert dieses Plugin die Website nicht so gut wie SmartOptimizer. Die investierte Zeit für den Einbau von SmartOptimizer lohnt sich auf jeden Fall!

Siehe auch:

  • http://farhadi.ir/works/smartoptimizer
  • http://www.gidnetwork.com/tools/gzip-test.php
  • http://www.seo-ranking-tools.de/javascript-compressor-cruncher.html
  • http://floele.flyspray.org/csstidy/css_optimiser.php
  • http://www.cssdrive.com/index.php/main/csscompressor/