Um die Ladezeit und Datenmenge einer Website zu optimieren, sollte man - so insbesondere auch die Empfehlung von Google - deren HTML-Inhalt z.B. mittels GZIP komprimieren. Auf Apache-Servern mit PHP gibt es hierfür zwei Möglichkeiten: Zum einen kann man über das Modul mod_deflate geeignete Regeln in der .htaccess-Datei definieren, zum anderen kann über die PHP-Erweiterung zlib die Komprimierung aktiviert werden.

Von den Machern von WordPress findet man für beides den jeweils notwendigen Code sowie kurze Anleitungen unter codex.wordpress.org. Trotzdem möchte ich speziell für WordPress-Nutzer kurz auf die PHP-Variante eingehen. Die benötigte Code-Zeile ist dabei nur eine einzige, nämlich die folgende:

ob_start('ob_gzhandler');

Diese muss zu Beginn (in der Zeile nach <?php, aber vor der Zeile /**) der PHP-Datei index.php im Hauptverzeichnis der WordPress-Installation (nicht des aktivierten Themes!) eingefügt werden.

Werbung

Werbeblocker aktiv?

Vermutlich aufgrund eines Werbeblockers kann an dieser Stelle leider keine Werbung angezeigt werden. Als Blog ist diese Website jedoch darauf angewiesen, um diverse Kosten abdecken zu können. Vielleicht möchtest du Servaholics ja in deinem Werbeblocker als Ausnahme hinzufügen und so unterstützen? 🙂

Da diese Datei durch WordPress-Updates immer wieder überschrieben wird, sollte man nach jedem Update prüfen, ob die Zeile noch enthalten ist. Alternativ kann man auch programmatisch testen, ob die Komprimierung noch aktiv ist - und sich z.B. über eine Textausgabe als Administrator warnen lassen, wenn dies nicht der Fall ist:

  1. if (is_user_logged_in()) {
  2.     $current_user = get_user_by('id', get_current_user_id());
  3.     $user_roles = $current_user->roles;
  4.     $user_role = array_shift($user_roles);
  5.     if ($user_role == 'administrator') {
  6.         // Hier beginnt der relevante Teil ...
  7.         $status = ob_get_status(true);
  8.         $gzipped = false;
  9.         foreach ($status as $element) {
  10.             if ($element['name'] == 'ob_gzhandler') {
  11.                 $gzipped = true;
  12.             }
  13.         }
  14.         if (!$gzipped) {
  15.             echo 'GZIP in index.php nicht aktiviert';
  16.         }
  17.         // ... und hier endet er.
  18.     }
  19. }

Alternativ lassen sich Websites sowie einzelne Inhalte auch über unterschiedlichste Tools auf eine erfolgreiche Komprimierung prüfen. Eines davon sind die Entwickler-Tools von Chrome. Hier findet man im Reiter "Network" zum einen je Datei in der Spalte "Size" die komprimierte Größe in schwarzer und die Original-Größe in grauer Schrift, zum anderen wird beim Klick auf eine Datei im Reiter "Headers" im Abschnitt "Response Headers" - sofern GZIP aktiviert ist - die Zeile content-encoding: gzip angezeigt (vgl. auch developers.google.com).

Übrigens: Auch andere Inhalte wie CSS- und JavaScript-Dateien sowie Bilder können und sollten komprimiert werden. Mehr dazu findet man bspw. unter developers.google.com und developers.google.com.

Deine Meinung zu diesem Artikel?