Auf die Frage „Wie wird der Seitenaufbau meines WordPress-Blogs schneller?“ bekommt man nahezu immer die Standard-Antwort „Lösche die Revisionen (Versionen von Artikeln) aus der Datenbank und benutze ein Plugin zum Cachen„. Aber wie funktioniert das in der Praxis und wie groß ist der Geschwindigkeitsgewinn? Eine kleine Fallstudie.
Ich habe den Test in drei Stufen gegliedert:
- Ladezeit vor der Optimierung
- Ladezeit nach der Löschung der Revisionen aus der Datenbank
- Ladezeit mit installiertem Cache-Plugin
Die Ladezeiten habe ich je zwei Mal mit drei verschiedenen Tools (Searchmetrics, Pagespeed, Pingdom) gemessen und in einer Tabelle festgehalten. Untersucht habe ich dabei jeweils die Startseite von media-affin sowie den Artikel WordPress Ladezeit um 15% verbessern – mit nur 3 Klicks mit zwei Bildern, einem Video und einigen Kommentaren.
Revisionen aus der Datenbank löschen
Die Ladezeit der Startseite betrug vorher im Schnitt 1.574 Sekunden, die der Contentseite 3.112 Sekunden. Als ersten Schritt habe ich die Revisionen der Artikel gelöscht, die WordPress automatisch beim Schreiben anlegt. Dies geschieht über phpMyAdmin mit folgendem MySQL-Befehl (gefunden auf perun.net):
[code]
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = ‚revision‘
[/code]
Da ich die Revisionen nicht nutze und somit nicht brauche, können sie komplett deaktiviert werden. Dazu in der wp-config.php einfach folgenden Code einfügen:
[code]
define(‚WP_POST_REVISIONS‘,false);
[/code]
Das Ergebnis kann sich sehen lassen: Selbst bei meinem noch recht kleinen Blog wurden 1473 Datensätze aus der Datenbank gelöscht.
Achtung: Vorher unbedingt ein Backup der Datenbank anlegen!
Und brachte es Geschwindigkeitsvorteile? Ja, zwar nur kleine, aber sie sind messbar: Die Startseite lädt mit 1.568 Sekunden jetzt 0,4% schneller, die Contentseite mit 2.945 Sekunden immerhin 5,4% schneller.
Cache-Plugin installieren
Das Plugin meiner Wahl ist hier Cachify vom Plugin-Dealer meines Vertrauens, Sergej Müller. Das Plugin ist übrigens kostenfrei und überzeugt durch seinen hohen Bedienkomfort. Einstellungen muss man nahezu keine vornehmen, das Plugin arbeitet auch so wunderbar. In Zahlen heißt das, dass die Startseite nun weitere 7% schneller lädt (1.457 Sekunden) und die Contentseite um unglaubliche weitere 51,1% beschleunigt wurde (1.44 Sekunden). Die Contentseite mit Video und Bildern lädt also genauso schnell wie die Startseite!
Die Tabelle habe ich auf Google Drive gespeichert und kann hier angeschaut werden.
Fazit
Das Löschen von Revisionen hat nur einen sehr geringen Einfluss auf die Ladezeit gehabt. Allerdings ist mein Blog noch jung und ich habe erst wenige Artikel veröffentlicht. Bloggt man schon seit Jahren und hat hunderte von Artikeln verfasst, dann ist durchaus eine spürbare Verbesserung der Ladezeit möglich. Was jeder nutzen sollte ist ein Cache-Plugin wie Cachify. Es beschleunigt den Seitenaufbau von WordPress enorm. Da darüber sowohl Besucher als auch Google (Stichwort Ladezeit als Rankingfaktor) gleichermaßen froh sind, sollte im wahrsten Sinne des Wortes keine Zeit verloren gehen.
Klar, repräsentativ ist dieser Test nicht, aber Tendenzen können durchaus abgelesen werden. Berichtet mir doch über eure Erfahrungen in den Kommentaren! Wie habt ihr euren Blog beschleunigt?
Hallo Dominik,
Ein wirklich hilfreicher Beitrag zum Thema Ladezeit optimieren. Da du ja schon fragst, wie wir unsere Blogs beschleunigen, fange ich mal an:
– Die Revisionen habe ich wie du auch in der wp-config deaktiviert, klar, brauche ich auch nicht.
– Ich verwende ebenso den Festplatten-Cache von Cachify ;)
Jedoch gibt es da noch mehr Aspekte, die man optimieren kann, zum Beispiel Grafiken, JS-Dateien und CSS-Dateien. Man kann gzip-Komprimierung aktivieren.
Ich bin noch weiter gegangen und habe auf meinen Seiten den NGiNX-Webserver installiert – der ist spürbar schneller, gerade verglichen mit Shared-Webhosting. Dazu habe ich meine Domains auf Cloudflare liegen, was den Domain-Lookup beschleunigt, Traffic spart und als CDN dient. Als Datenbankserver läuft bei mir auch nicht MySQL sondern MariaDB, ein Fork von MySQL von einem ursprünglichen MySQL-Entwickler. Die Datenbank-Abfragen und der Ping sind da um 5-10% besser.
Auch um 5-10% besser ist die Performance von PHP-Programmen, wenn man den PHP 5.4er – Zweig verwendet. Kann ich nur jedem empfehlen.
In der wp-config.php kann man übrigens noch die PHP-Queries entfernen, indem man die Blog-, Theme- und Plugin-Adresse manuell einträgt – das reduziert zusätzlich die Ladezeit, weil die wp-config ja vorher geparst wird.
Grüße!
Hi,
vielen Dank für deine ausführliche Antwort. Da finden auch Experten noch Optimierungstipps, das (Bastel-)Wochenende kann kommen :)
Hallo Dominik,
habe mich vor kurzem auch mit dem Thema beschäftigt, meine Wahl ist da aber eher auf das W3 Total Cache Plugin gefallen, werde mir aber auch mal Cachify ansehen.
Das deaktivieren der Revisionen war mir auch neu, wird aber umgehend bei mir eingesetzt.
Hallo Dominik,
danke für die Tipps. Ich hab‘ die Post Revisions via Plugin entfernt, da ich nur ungern in PHPMyAdmin rumexperimentiere. (Das Plugin heißt Delete Post Revisions)
Cachify schau ich mir gerade an.
Grüße,
Ralf
Hi Ralf,
klar, das geht auch. Verstehe deine Bedenken, aber an sich kann da nichts passieren. Am besten ist es, wenn du eine Testinstallation hast und Änderungen dort zuerst überprüfst. Ein Datenbankbackup solltest du auch regelmäßig anfertigen.
Und wichtig: Ungenutzte Plugins wieder löschen! Das bringt auch nochmal einen Temposchub, je nach Anzahl der „Plugin-Leichen“.
LG Dominik
Ansonsten kannst Du auch die Toolbox von Sergej Müller installieren. Dort ist bereits ein Modul vorhanden welches jede Woche die Datenbank säubert. Ich bin es im Moment am testen und bin gespannt ob das Ding seine Arbeit erledigt während ich gemütlich am Rotwein nippe :-)
Hallo Dominik,
paar gute Tipps in den Artikel schon bei, nur auf Cachify werde ich nicht so schwören, überprüfe paar Tage später in Google Webmaster Tools ob der Plugin keine 500/501/502 Fehler liefert.
Das war nämlich bei mir so unter PHP 5.4er.
Mfg
Hey Viktor,
Vielleicht hast du deine .htaccess nicht korrekt angepasst? Das musst du nämlich auch noch machen. Mehr Infos dazu findest du auf http://playground.ebiene.de/cachify-wordpress-cache/
Hi Viktor,
wie wp-tutorial schon richtig erwähnt, musst du bei den Methoden APC sowie HDD/Festplatte deine .htaccess anpassen. Bei diesen beiden Methoden ist nach Sergej’s Angaben (Cachify-Entwickler) die Zeitersparnis noch höher. Ich nutze „nur“ den Datenbankcache.
LG Dominik
Und unbedingt in der robots.txt: Disallow: /wp-content/cache/ einfügen um Duplicate Content zu vermeiden. Ich bin mit cachify sehr zufrieden, auf normalen Blogs sowieso, bei sehr dynamischen Seiten eigentlich auch, nur fehlt mir das Know-How um gewisse Bereiche vom Cache auszuschliessen.
Hi, hab alles angepasst wie es sein sollte, ich glaube Server configuration hats nicht mitgespielt.
Egal, hab jetzt andere alternative.
Mfg
DANKE Dominik – das posten des MySQL-Befehl ´s hat mir als Laie eine Möglichkeit eröffnet, die Revisionen in einem Duchgang zu eliminieren. Die Umsetzung der SPEZIALTipps der anderen „Postmänner“ behalte ich mir gerne vor: für´s „nächste“ Leben.
Ich habe mal ´ne andere Frage: die Ordner „.svn“,“42135″,“e4948″ unter „wp-content/ uploads“ – was haben ide für eine Bedeutung bzw. Funktion? Die werden ja offensichtlich autom. angelegt.
lg norman
Hi Norman,
freut mich, wenn dir der Artikel geholfen hat. Wie sagt man so schön: Man wächst mit seinen Aufgaben. Also ruhig auch mal die Spezialtipps in einer Testumgebung ausprobieren ;)
Ich habe die Ordner, die du genannt hast, mal gegooglet. In meinen Installationen habe ich die nicht. Es scheint sich dabei um Subversionen deines installierten Themes zu handeln. Was genau die tun, kann ich dir leider nicht sagen. Frage doch einfach mal beim Ersteller des Themes nach. Die Antwort kannst du dann gerne hier posten!
LG Dominik
Also um die Performance eines Blogs zu verbessern kann man auch versuchen herauszufinden, welches Plugin zu viel Ressourcen frist. Hier für kann ich das Plugin „P3 Performance Profiler“.
Hi danke toller Artikel…
Danke für den Artikel, welcher mir sehr geholfen hat. Ich habe nun auch auf Cachify umgestellt und bin mehr als zufrieden. Vorher hatte ich einige andere Cache-Addons durch probiert und war irgendwie mit den Einstellungen überfordert *seufz*.
Jetzt funktioniert alles prima, einfach installiert, auf Festplatte gestellt, htaccess ergänzt und fertig.
LG Thomas
Ich bin begeistert, die Ladezeit meiner Website ist durch den Einsatz von Cachify spürbar verkürzt.
Hey Dominik, toller Artikel. Aber wie wp-tutorial schon angedeutet hat, lässt sich da noch mehr raus holen :) Ich habe dazu vor kurzem eine recht umfangreiche Anleitung geschrieben. Die ist evtl. als Ergänzung für deinen Artikel ganz gut geeignet.
http://webspaceanbieter24.de/wordpress-schneller-machen-ladezeiten-optimieren/
Viele Grüße
Robert
Ich denke, dass man zwar theoretisch eine schnellere Website hat, jedoch merke ich persönlich keine Verbesserung der Ladezeit.