Mit Wordpress zu arbeiten ist angenehm: Über Themes und Plugins kann man sich “sein” Blog zusammenstellen - so wie man es benötigt und die Besucher es gut finden. Designtechnisch gesehen ist es sehr flexibel, wenn man an die vielfältigen Themes und Templates denkt.
Das einzige Manko, das sich unter anderem beim PHP Blogger herausgestellt hat, ist die Performance. Denn die leidet unter all den Plugins und damit einhergehenden Hooks und Actions. Die Fastregel lautet: Je mehr Plugins, um so schlechter die Performance.
Und der Witz ist: Es gibt Plugins, um die Performance zu steigern (Wenn sich da mal die Katze nicht selbst in den Schwanz beisst ;)
Aber was ist schon schneller geladen, als eine statische Datei? Deshalb habe ich eine Idee aufgegriffen, die sicherlich schon einige Plugin-Entwickler beschäftigt hat: Ein Wordpress-Blog in statische Dateien und Verzeichnisse zu exportieren. Welchen Blog? Keine Frage, oder? Natürlich den PHP Blogger:
Unter http://static.phpblogger.net/ kann man sich das Ergebnis anschauen. Um Duplicate Content zu verhindern, ist die URL übrigens mit einer entsprechenden robots.txt ausgestattet und sollte (hoffentlich) nicht indexiert werden.
Nachgebildet wird die komplette Permalinkstruktur - und das dynamisch: je nach dem, wie sie konfiguriert ist. Für das Generieren der knapp 1000 HTML Seiten und etwa 700 Verzeichnisse hat das Wordpress Plugin “wpStatic” im Schnitt etwa 3-4 Minuten benötigt (gesamt versteht sich :)
Das Plugin gibt es übrigens noch nicht als Download, es fehlen nämlich noch ein paar wichtige Features für den Livebetrieb: Welche (und vor allem: wieviele) HTML Seiten müssen neu generiert werden, wenn…
- …ein neuer Beitrag veröffentlich wird?
- …ein neuer Kommentar abgeschickt wird?
- …eine neue Kategorie hinzukommt?
- …eine Datei hochgeladen wird?
- …etwas bestehendes bearbeitet und verändert wird?
Und dann noch andere quälende Fragen, wie z.B.:
- Wohin wird das statische Kommentarformular geschickt?
- Wie geht man mit Userlogins um?
- Sind personalisierte Ausgaben möglich?
- Sind alle Plugins kompatibel?
Man muss natürlich Einschränkungen in Kauf nehmen, wenn man eine eigentlich dynamische Seite statisch darstellen möchte. Der Trick liegt natürlich darin, die Einschränkungen so gering wie möglich zu halten.
Wenn Seiten auf irgendeine Art dynamisch zu halten, wird es einen Semi-Dynamik Modus geben. Was bedeutet das? Ist er ausgeschaltet, werden die Dateien als statische HTML Dateien abgelegt. Ist er eingeschaltet, werden PHP-Dateien generiert.
Über spezielle HTML-Kommentar-Tags kann man Bereiche mit oft benötigten, aber häufig änderbaren Inhalten eingrenzen: z.B. die Kategorieliste. Diese wird dann in eine seperate Datei abgelegt und an allen anderen Stellen über einen include-Befehl geladen.
Ändert sich etwas an den Kategorien, muss unter Umständen nur noch diese eine kleine Datei generiert werden! Welch ein enormer Performance-Zuwachs!
Trotzdem kann es je nach Bloggröße erforderlich ist, mehrere hundert HTML Dateien neu zu generieren. Das schreckt im ersten Moment etwas ab - aber man kann die zu generierenden HTML Dateien in verschiedene Level einteilen:
- Die Artikelseiten mit den Posts und Pages (Mit Abstand die wichtigsten - abgesehen von der Startseite meistens die Landingpage nach einer Suchmaschine)
- Die Startseite und die ersten 4 Kategorieseiten (Es ist eher selten, dass Besucher tiefer blättern)
- Die restlichen Kategorieseiten und verbleibende Archivseiten
Das Generieren der Level 1 und 2 HTML Dateien hat natürlich Priorätät - kann aber ohne Bedenken direkt erfolgen. HTML Dateien aus Level 4 können im Hintergrund aktualisiert werden.
Um im Hintergrund zu aktualisieren sind verschiedene Varianten denkbar:
- Server-Cronjob: Der echte Cronjob kann gemütlich im Hintegrund vielleicht pro Minute eine HTML Seite generieren, das wären pro Stunde 60 Dateien, am Tag 1440 - das bedeutet keine Serverlast und nur minimale Abweichungen auf den HTML Seiten. Je nach Serverperformance kann man die Generierungsgeschwindigkeit dynamisch einstellen. Allerdings ein Problem für Betreiber eines Blogs auf Sharedhosting-Maschinen bei 1und1 oder Strato etwa.
- wp_cron: Während Besucher auf der Seite surfen werden im Hintergrund HTML-Dateien generiert. (Natürlich nicht zu viele auf einmal, sonst ist der Performancegewinn wieder flöten *zwinker*) Diese Variante wäre auch für den typischen Webspace-Hoster denkbar.

















