Performance-Optimierung bei WordPress

Ich habe mich die letzten Abende (auch aufgrund der Nachfrage von Ralf in der Shoutbox) mal wieder bzw. dieses mal endlich ernsthaft mit dem Thema Performance-Optimierung beschäftigt. Ich gebe mir stets Mühe es zu verbergen, für das geübt Auge ist es aber dennoch ersichtlich: Bei dem Unterbau für diesen Blog handelt es sich um eine selbstgehostete WordPress-Installation. Im Gegensatz zu einer reinen HTML-Webseite (wie z. B. meine „private Webseite“ andre.kreykenbohm.net), bei der nach dem Aufruf der URL nur noch die vorgefertigte HTML-Datei vom Server heruntergeladen und im Anschluss vom Browser angezeigt werden muss, ist es bei einem WordPress-Blog etwas aufwändiger und daher dauert der Seitenaufbau dann auch länger. Hier entstehen nach dem Domainaufruf aus den generische PHP-Dateien durch aktive Datenbankzugriffe individuelle HTML-Seiten welche erst dann ordentlich dargestellt werden können. Während eine reine HTML-Webseite in wenigen Bruchteilen einer Sekunde angezeigt werden kann, benötigt die Darstellung eines WordPress-Blogs so mehrere Sekunden.

Wenn ich den Blog beschleunigen möchte, kann ich zunächst – und das ist der ganz große Vorteil von WordPress – auf Standard-Plugins von anderen Entwicklern zurückgreifen. Besonders für das sogenannte Caching existieren einige sehr ausgereifte und vor allem umfangreiche Plugins, auf die ich gleich noch einmal zurückkommen werde. Grundsätzlich muss man sich aber weiterführende Gedanken machen, als einfach nur das Plugins zu installieren und zu aktivieren. Wichtig ist vor allem im ersten Schritt herauszufinden, wo man überhaupt optimieren muss. Hierfür existieren unterschiedliche Anlaufstellen wie zum Beispiel PageSpeed Insights, GTmetrix, Pingdom oder WebPagetest. In den folgenden Bildern sind die aktuellen (also nach der Optimierung) erzielten Ergebnisse für unseren Blog ersichtlich.

Die Ergebnisse werden bei den meisten Anbietern in einer Skala von 0-100 (also eigentlich und überwiegen in Prozent) angegeben. Je besser die Webseite abschließt, umso höher der Wert und eben dieser ist auch relevant für das Ranking in Suchmaschinen. Es lohnt sich also ein wenig Zeit und Gehirnschmalz zu investieren. Wie bereits angesprochen existieren einige Wordpress Plugins, welche einem bereits einiges an Arbeit abnehmen. Die bekanntesten sind: W3 Total Cache oder WP Super Cache und je nachdem für welches man sich entscheidet, sind einige der nachfolgend genannten Funktionen evtl. nicht vorhanden oder laufen unter einer leicht anderen Bezeichnung. Ich persönlich habe mich für W3 Total Cache entschieden, versuche die Ausführungen im direkten Anschluss aber möglichst Plugin-neutral darzulegen.

Mit Hilfe des Page Cache werden auf dem Server für jeden Teilbereich (einzelne Artikel etc.) fertig generierte HTML-Dateien vorgehalten. Diese werden beim Aufruf eines Artikels vom Server abgerufen und so vermindert man im ersten Schritt sehr radikal die Zeit bis zur Darstellung der Webseite. Der große Nachteil dieser Technik ist aber, dass immer nur lokale Dateien mit leicht veralteten Inhalten abgerufen werden. Deshalb muss regelmäßig eine neue Version der einzelnen Artikelseiten erstellt werden. Ein aufwendiges Verfahren, welches auch viel Serverlast erzeugt. Zudem muss definiert werden, von welchen Bereichen HTML-Dateien vorgehalten werden sollen und wann diese ablaufen. Eine weitere Option in diesem Bereich ermöglicht es registrierten und eingeloggten Usern niemals Cache-Dateien zur Verfügung zu stellen um die vorangegangene Problematik zu umgehen – aber dann dauert der Seitenaufbau auch wieder länger.

Fast jedes WordPress-Plugin benötigt seine eigenen CSS- und JS-Dateien für die jeweiligen Funktionalitäten wie z.B. der Chat auf der linken Widget-Leiste in diesem Blog. Die bei Cache-Plugins oft mitgelieferte Komponente Minify (CSS / JS) kombiniert die jeweiligen Dateien der unterschiedlichen Plugins zu einigen wenigen und reduziert so die Anzahl der einzelnen Dateiabrufe um ein vielfaches. Zudem kann man den darin enthaltenen Text um Redundanzen beseitigen um so zusätzliche KB beim Abruf einzusparen. Das Zusammenfasssen der Dateien kann bereits zu Darstellungs- oder Funktions-Problemen führen, wobei es bei der Redundanzbeseitigung ganz sicherlich dazu kommen wird – daher sollte man hier sehr gewissenhaft arbeiten.

Daneben ist es zudem sinnvoll den sogenannten Browser Cache zu nutzen. Mit den Einstellungsmöglichkeiten hinter dieser Überschrift werden die HTML-Dateien um einige weitere Metadaten (also Daten welche nicht angezeigt werden) erweitert. Hier wird zum Beispielt das zuletzt geänderte Datum hinterlegt und wie lange die lokale Version, welche in den vergangenen Stunden von einem User im Browser zur Anzeige heruntergeladen wurde, gültig ist. Bevor das Datum nicht abgelaufen ist, schaut der Brwoser nicht nach einer neuen Version auf dem Server, sondern öffnet die lokal vorhandenen HTML-Datei und zeigt diese an.

Nach diesen oben aufgeführten Einstellungen erreicht man aber immer noch kein perfektes Ergebnis bei den oben genannten Diensten. Hier ist es nun an jedem intensiv zu recherchieren und zu erarbeiten, wie man die letzten Punkte aus den Bewertungstools herausholen kann. Einiges von dem was ich herausgefunden habe, könnte für andere WordPress-Nutzer von Vorteil sein, so dass ich diese weiteren Tipps hier ebenfalls noch einmal aufführen möchte:

  1. Viel hängt von dem Webhoster (also dem Anbieter des Servers) ab, ist dieser von der Performance unterdurchschnittlich, so kann der eigene Blog schon gar nicht mehr gute Ergebnisse erzielen. Anfänglich war ich mit Strato zufrieden, zwischenzeitlich dann unzufrieden aber mittlerweile schon wieder rundum glücklich. An dieser Stelle möchte ich meine persönliche Meinung aber noch einmal loswerden. Die sogenannten 1-Click-Angebote (auch bei Strato möglich) empfinde ich mehr als problematisch. Man sollte sich schon ein wenig mit der dahinter liegenden Technik beschäftigen und dann ist eine eigene WordPress-Installation auch mehr als einfach zu realisieren. Der zusätzliche Vorteil (neben der erhöhter Performance) ist die größere Individualisierungsmöglichkeit.
  2. In Bezug auf WordPress gibt es ein ganz wichtige Regel: Weniger ist immer mehr – und das gilt ganz besonders für die Anzahl der aktiv genutzten Plugins. Wer auf das eine oder andere Plugin verzichten könnte sollte dieses auch machen. Sicherlich ist jedes Plugin für sich immer ein Mehrwert, aber ob dieser wirklich die unnötige Komplexität rechtfertigt ist eine andere Sache. Zudem sollte man sich regelmäßig nach Alternativen erkundigen. Nur weil vor einem Jahr das genutzte Plugin als gut erwiesen hat, bedeutet das im Umkehrschluss nicht, dass mittlerweile nichts besseres vorhanden ist. Auch die Sicherheit ist hierbei ein wichtiger Aspekt, leider stellen einige Entwickler die Tätigkeiten zur Pflege ein, so dass Sicherheitsprobleme nicht mehr beseitigt werden. Spätestens dann heißt es: Plugin deaktivieren und löschen.
  3. Bei den Testseiten erhält man stets große Punktabzüge, wenn die auf der eigenen Webseite eingebundenen Bilder nicht mit den richtigen Ausmaßen, sondern verzerrt (im schlimmsten Fall verkleinert) angezeigt werden. In dem Fall wäre es dann nämlich so, dass man ein unnütz großes Bild herunterladen muss um es dann im Browser verkleinert anzuzeigen. Hier heißt es dann nun Bildoptimierung. Ein kleiner Hinweis von mir noch um dieses Thema Punktetechnisch auf die Spitze zu treiben: Die Testseiten arbeiten allesamt intern mit einer Auflösung von 1024 x 768 – dieses ist aber nur wichtig, wenn man ein sogenanntes Responsible Designs verwendet, welches die Seitenausmaße automatisch an jegliche Bildschirmauflösungen anpasst.
  4. Genauso wichtig wie die anderen Punkte ist aber auch eine geringe Anzahl von Redirects. Diese häufen sich ebenfalls, wenn man viele Plugins nutzt – zu nennen sind hier z.B. Recaptcha oder auch Gravatar. Für jeden Redirect (also das indirekte nachladen von Resourcen aus anderen Quellen als dem eigenen Webserver) erhält man wieder Punktabzug. Um eben diesen zu umgehen sollte man (auch aus Datenschutztechnischen Gründen) alle Funktionen selbst bereitstellen. Bei einigen Funktionen ist dieses eher schwer zu realisieren, aber definitiv nicht unmöglich. Besonders der in WordPress integrierte Gravatar-Dienst, also das darstellen von kleinen Userbildern neben den Kommentaren hat mich einige Zeit gekostet. Aber auch das ist erfolgreich erledigt.

Befolgt man nun den Großteil (im optimalsten Fall alle) der oben geschilderten Tipps, so erhält man eine wesentlich bessere Bewertung als vorher. Als Beispiel möchte ich hier mein Scoring bei PageSpeed Insight nennen: Ich habe mich von 78 auf 90 verbessert und schaden wird das ganz sicherlich nicht 🙂

Das könnte Dich auch interessieren...

1 Antwort

  1. 23. Januar 2016

    […] einen Blog auf Basis von WordPress betreibt wünscht sich nicht nur einen schnellen, sondern auch einen stabilen Internetauftritt. Um dieses zu ermöglichen muss man WordPress […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.