Weil’s in diesem Beitrag um Geschwindigkeit geht, gibt’s gleich vorweg die Kernaussage für alle Eiligen:
Wenn du dein Blog mit einer Version von WordPress vor 3.0 aufgesetzt hast und „schöne“ Permalinks verwendest, speichere jetzt die Permalink-Einstellungen noch einmal. Dein Blog wird dadurch schneller – sonst ändert sich nichts.

Und nun das Ganze noch mal langsam zum Mitlesen1…
Um schöne Permalinks nach dem Muster http://www.example.com/2010/12/hello-world
an Stelle der „hässlichen“ Variante http://www.example.com/?p=123
erzeugen zu können, benötigt WordPress das Apache-Modul mod_rewrite und einige Zeilen in der Datei .htaccess
, die im Wurzelverzeichnis des Blogs am Webspace liegt. In diesen Zeilen definiert WordPress, wie der Webhost auf Anfragen nach diesen „schönen“ Permalinks reagieren soll.
Das macht WordPress schon seit Urzeiten so. Aber erst am 9. Januar 2010 wurde bekannt, dass die bisher benutzen Regeln für mod_rewrite den Webserver dazu angeleitet hatten, diese Regeln häufig zwei Mal für jeden Seitenaufruf durchzuackern – mit der damit einhergehenden Geschwindigkeitseinbusse für jeden Besucher. Diese Scharte wurde am 11. März 2010 ausgewetzt und mit dem Release von WordPress 3.0 im allgemein genutzten Produkt beseitigt.
Bessere RewriteRules ab WordPress 3.0
Ab Version 3.0 schreibt WordPress also bessere Rewrite-Regeln in die .htaccess
– aber nur auf Aufforderung: Beim automatischen Update werden zwar alle Programmdateien aktualisiert und auch Datenbankstrukturen angepasst, aber etwaige Verbesserungen in der Konfiguration des Webservers bleiben aus Stabilitätsgründen außen vor.
So sieht der Block mit Rewrite-Regeln in .htaccess
auf einer Installation von WordPress vor Version 3.0 häufig aus:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Erst mit dem Klick auf „Speichern“ in den Permalink-Einstellungen werden die Rewrite-Regeln aktualisiert und um die eine Zeile ergänzt, die den zweiten Durchlauf durch das Regelwerk verhindert:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Schnellere Seiten, zufriedene Besucher
Diese eine zusätzliche Zeile erhöht im Fall von Hosting auf einem günstigen Webspace die Geschwindigkeit, mit der Seiten an die Besucher und auch an Google ausgeliefert werden, um etwa 10 bis 20 Prozent. Das ist zwar nicht atemberaubend, aber sowas von „geschenkter Gaul“ wie nur irgend möglich.
Wie schaut die Situation bei dir aus?