WordPress beschleunigen

10. März 2009 um 09:03 Uhr

Wenn man den obigen Titel bei Google eingibt, dann erhält man bei den Suchtreffern fast immer gleiche Treffer. Meist von Experten, die sich speziell um die Optimierung des PHP-Codes via eAccelerator oder xfire auseinander setzen.
Mir persönlich ist das zu aufwendig und ich traue mich auch nicht so recht an diese Sachen ran.

Ich bin ein Laie und als Laie gebe ich das weiter, was meiner Meinung nach hier gut und sicher funktioniert. Mit gut und sicher meine ich, dass ich es seit mehreren Monaten selbst nutze und keine Probleme im Einsatz hatte.

Backup

Bevor überhaupt etwas geändert oder getan wird, empfehle ich immer ein Backup zu machen. Besonders eine einmal zerschossene Datenbank lässt sich kaum noch reparieren. Aber keine Sorge, mir ist das in den 2 ½ Jahren, die ich mit WordPress arbeite, noch nie passiert.
Das perfekte Programm, um seine Datenbank zu sichern und auch wieder herzustellen, ist MySQLDumper.
Die Installation ist wirklich sehr simpel, wer trotzdem Probleme hat, bekommt eine ausgezeichnete deutsche Webseite mit guten Videos, die Schritt für Schritt das Programm erklären. Auch wer sich entscheidet, mit seinem Blog von einem Hoster zu einem anderen zu wechseln, der ist mit einem Backup mit MySQLDumper bestens bedient.

Cache 1

Cache bedeutet simpel ausgedrückt, die Webseite bzw. Teile davon, die sich nicht ändern, zwischen zu speichern. Bei einem Blog ist das ja in der Regel so. Der Artikel ist raus und wird aufgerufen. Statt den Inhalt der Webseite immer wieder direkt aus der Datenbank zu holen, wird auf dem Server eine statische “Kopie” angelegt, die sich wesentlich im Browser aufbaut.

WordPress bietet die Möglichkeit den “intern” eingebauten Cache zu aktivieren. Viel möchte ich dazu gar nicht sagen, denn Frank Bültge hat es in seinem Blog schon genau erklärt. Wer dort nicht lesen möchte, der soll mir blind vertrauen und diese 3 Zeilen in seinen Konfigurationsdatei einbauen:

define('ENABLE_CACHE', true); // Cache on
define('CACHE_EXPIRATION_TIME', 604800); // Time in seconds, default is 900s
define('WP_MEMORY_LIMIT', '32M');

Cache 2

Das Plugin WP SuperCache ist für mich das Optimum und stellt den WordPress eigenen Cache in jeder Hinsicht in den Schatten. Leider gibt es bei vielen Hostern Probleme, das Programm sauber zum Laufen zu bekommen. Aber auch, wenn es nur mit halber Kraft fährt (Half Mode) bringt es noch immer einen enormen Schub an Geschwindigkeit.

Cache 3

WP Super Cache wirkt sich nur auf die Inhaltsseiten aus und daher sollte man als ideale Ergänzung dazu noch das Plugin WP Widget Cache installieren. Wie der Name schon sagt, es speichert die in der Sidebar angezeigten Widgets zwischen. Nach der Installation kann man dabei jedem Widget eine Zeit vorgeben, wann eine neue Zwischenspeicherung erfolgt. Das ist enorm wichtig! Natürlich möchte man ja, dass neue Kommentare auch sofort angezeigt werden, dafür muss die Archiv‑ oder Kategorien-Liste nicht so oft aktualisiert werden.

Eine Anmerkung noch: Wer am Blog Änderungen vornimmt, der sollte natürlich beachten, dass der Cache auch geleert wird. Beide angesprochenen Plugins bieten diese Optionen an. Nur vergisst man das hin und wieder und wundert sich, warum die vorgenommenen Veränderungen nicht sofort angezeigt werden.

Cache 4

Über die Möglichkeit der Komprimierung von Webseiten mit Hilfe von gzip und deflate verweise ich auf einen tollen Artikel und die anschließende Diskussion bei Perun.

Revisionen

WordPress bietet ja nicht nur seit einiger Zeit an sondern macht es auch ganz konsequent, dass es Revisionen, sogenannte Artikel-Backups, anlegt. Ob es beim Schreiben eines Artikels bereits zwischenspeichert oder bei späteren Änderungen. Nur das Ausbessern eines Rechtschreibfehlers veranlasst WordPress dazu, den kompletten Inhalt des Textes noch einmal oder mehrmals in der Datenbank abzulegen.

Sicherlich ein Segen für den Nutzer, der doch auf eine vorherige Version seines Artikels zurück greifen möchte, bei dem der Computer beim schreiben abstürzt oder wie auch immer.

Nun gibt es die Möglichkeit, in die Konfigurationsdatei einen Zusatz einzutragen, ob man diese Revisionen einschalten möchte und wenn ja, wie viele es davon geben soll. Viel mehr möchte ich dazu auch nicht schreiben, weil es auf texto eine wirklich gute Anleitung gibt.

Ich selbst habe die Erfahrung gemacht, dass der Eintrag in die wp-config.php bei mir absolut nichts bewirkt. Ob ich da was falsch eingetragen habe oder nicht, ist mir ziemlich egal. Denn ich nutze das Plugin DeleteRevision. Es hat schlicht weg den Vorteil, dass ich entscheiden kann, wann ich mich von den alten Sicherheitskopien meiner Artikel verabschiede. Nicht immer möchte ich das gleich tun und ich fühle mich auf der sicheren Seite.

In jedem Falle macht sich der Einsatz dieses Plugins wirklich bemerkbar. Die Datenbank kann sich schnell aufblähen, wenn sich in ihr mehr und mehr im Prinzip völlig unnütze Text-Backups tummeln.

MySQL optimieren

Auch hierfür nutze ich ein Plugin mit dem Namen Database Tuning. Mit diesem Plugin kann man vom Backend die von WordPress in der Datenbank angelegten Tabellen prüfen, optimieren und reparieren. Desweiteren legt es neue Indizes in den Tabellen an, die die Geschwindigkeit erhöhen sollen.

Letzteres kann ich nicht nachvollziehen, aber seine Tabellen optimieren kann schon etwas bringen. Denn letztlich, wenn man z.B. die Revisionen alter Artikel aus der Datenbank löscht, hinterlassen sie eine Lücke in der Datenbank. Diese wird durch das Optimieren wieder geschlossen und verringert einfach deren Größe.

Die Tabelle wp_options

Fast nahezu jedes installierte Plugin legt seine Optionen und Einstellungen in einer vorgegebenen Tabelle von WordPress ab. Und nicht jedes Plugin, das deinstalliert oder gelöscht wird, entfernt seine Einträge aus dieser Tabelle. So finden sich nach und nach sogenannte Leichen in dieser Tabelle, was diese natürlich bei entsprechender Menge ziemlich aufblähen kann. Um diese Leichen aufzuspüren, gibt es das Plugin Clean Options.

Die Handhabung ist natürlich mit höchster Vorsicht zu genießen. Ich lasse lieber ein paar Einträge stehen, bevor ich die eine oder andere Konfiguration, bei der ich unsicher bin, lösche. Aber es kann natürlich schon einen Blick wert sein, welche verwaisten Einträge aufgeführt werden.

Wenn alles nichts hilft

Die besten Performance-Tipps helfen überhaupt nichts, wenn der Server, auf dem die Installation läuft, eine lahme Ente ist. Ich selbst habe mir vor kurzer Zeit einen anderen Hoster gesucht, weil ich mir ein Bein ausgerissen habe, um noch irgendwie ein wenig Geschwindigkeit aus dem Blog zu kitzeln. Erst der Wechsel hat das gebracht, wonach es mich dürstete. Diese Entscheidung werde ich niemals bereuen.

Denn nichts ist nervender als ewig auf den Seitenaufbau zu warten. Da gibt es diverse Statistiken im Internet, wie lange ein Anwender bereit ist, auf die angeforderte Webseite zu warten. Genauso verhält es sich beim Abruf der RSS-Feeds. Feeds, die bei mir länger dauern, wandern nach unten, damit die Aktualisierung nicht zu sehr aufgehalten wird. Und meldet der Feed-Leser ständige Time-outs, dann verliert man möglicherweise gute Abonnenten.

Fazit

Ich möchte natürlich hier eine optimale Liste vorlegen, kann aber wie Eingangs erwähnt nur das abliefern, was in meinem Kenntnisstand liegt.

Wer Anregungen, Tipps oder Fragen hat, der sei herzlich eingeladen, hier zu kommentieren.

10 Kommentare zu “WordPress beschleunigen”

  1.  Papa Bodehase am 11. März 2009 um 09:40 Uhr

    Schön, daß ich Dich gut beraten konnte und Du noch immer zufrieden bist… :-)

  2.  Hartmut am 11. März 2009 um 19:44 Uhr

    Ich war beim Schreiben des Artikels ganz nah, auch einen Link zu Dir zu setzen. Ja, ich bin Dir für Deine Beratung und den Tipp absolut dankbar – und auch dafür, dass Du es hier auch dokumentierst.
    Ich meine das total Ernst und nicht Sarkastisch!

  3.  Papa Bodehase am 12. März 2009 um 11:08 Uhr

    Du, ich freue mich als Leser ja auch, wenn’s flott geht. Deshalb freue ich mich, daß ich helfen konnte.

  4.  Hartmut am 13. März 2009 um 05:52 Uhr

    Genau aus diesem Greunde habe ich auch den Artikel geschrieben. Ich kenne zwei Blogs, die ich sehr gerne Besuche und da dauert das Abholen der Feeds schon ewig (manchmal sogar Timeouts) und der Seitenaufbau ist auch schwer träge.

    Im Prinzip bin ich ja das gebrannte Kind und du hast mir die einfachste Lösung präsentiert. Optimierung hin oder her, wenn die Webseite auf nem lahmen Server liegt, geht halt einfach nichts anderes, als sich beim Hoster zu beschweren oder wenn das nichts hilft, sich um einen neuen zu bemühen.
    Und ich kann im nachhinein sagen, der Umzug war dank MySQLDumper wirklich ein Kinderspiel.

  5.  Jetzt neu weniger Ladezeiten | Duergy.de am 3. Mai 2009 um 07:40 Uhr

    […] hatte mir dann von Hartmut einen Beitrag zum beschleunigen von WordPress vorgenommen. Was auf den ersten Blick, aber nur wenig Erfolg brachte. Ich sah das Problem, bei dem […]

  6.  Robert Bergholz am 26. August 2011 um 01:25 Uhr

    Das Optimieren von den entstandenen Lücken in MySQL-Tabellen bringt zwar in den meisten Fällen nicht viel, schaden kann es jedoch auch nicht. Was hingegen super funktioniert, ist das empfohlene Plugin WP Super Cache. Besser gehts wirklich nicht und lohnt sich bei Trafficstarken Seiten. Bei Seiten mit extrem wenig Traffic dann vielleicht nicht, da sich beim ersten Load einer Seite die Ladezeit etwas erhöht. Zumindest empfand ich es in einigen Tests so.

  7.  Jenny am 29. März 2012 um 17:28 Uhr

    yapp, danke für die Tipps. Sehr hilfreich! : )

  8.  Mike am 31. Dezember 2012 um 13:44 Uhr

    Ich Danke auch für die wirklich aufschlussreiche Dokumentation. THX. Thumbs Up und weiter so!

  9.  Karl am 1. Februar 2013 um 16:55 Uhr

    Da gebe ich meinem Vorredner uneingeschränkt recht! THX

  10.  Bärbel am 2. April 2013 um 07:12 Uhr

    Es ist immer wieder schön spontan auf hilfreiche Artikel zu stoßen. Danke!

Trackback URI | Kommentare als RSS

Einen Kommentar schreiben

Bold Italic Link Blockquote  Alle HTML-Tags sind erlaubt!
 Zum Bezug auf einen Kommentar, auf laufende Nummer klicken!

Smilies anzeigen/verstecken
:smile_wp: :biggrin_wp: :sad_wp: :surprised_wp: :eek_wp: :confused_wp: :cool_wp: :lol_wp: :mad_wp: :razz_wp: :redface_wp: :cry_wp: :evil_wp: :twisted_wp: :rolleyes_wp: :wink_wp: :exclaim_wp: :question_wp: :idea_wp: :arrow_wp: :neutral_wp: :mrgreen_wp: :annoyed_tb: :blink_tb: :blush_tb: :bye_tb: :clap_tb: :cool1_tb: :drunk_tb: :devil_tb: :doh_tb: :down_tb: :dry_tb: :dunce_tb: :flush_tb: :guns_tb: :furious_tb: :glurps_tb: :happy_tb: :huh_tb: :innocent1_tb: :jittery_tb: :smoke_tb: :king_tb: :laugh_tb: :lol_tb: :mad_tb: :mellow_tb: :nono_tb: :help_tb: :ohmy_tb: :ponder_tb: :rolleyes_tb: :sad_tb: :shock_tb: :sleep_tb: :thumbup_tb: :smile1_tb: :surrender_tb: :tongue1_tb: :tongue2_tb: :unsure_tb: :wacko_tb: :thumbdown_tb: :wink1_tb: :wub_tb: :cool2_tb: :cry_tb: :embarassed_tb: :foot_in_mouth_tb: :wallbash_tb: :frown_tb: :innocent2_tb: :kiss_tb: :laughing_tb: :money_mouth_tb: :sealed_tb: :smile2_tb: :surprised_tb: :tongue3_tb: :undecided_tb: :smiley2_tb: :yell_tb: :) :) :D :x :P 8) 8x 8P :o 8O :( :? ;) :!: :?: :| :lol_ee: :smirk1_ee: :rolleyes_ee: :tongue_laugh_ee: :tongue_rolleye_ee: :tongue_wink_ee: :rasberry_ee: :ohh_ee: :grrr_ee: :gulp_ee: :ohoh_ee: :embarrassed_ee: :sick_ee: :shuteye_ee: :hmm1_ee: :angry_ee: :zip_ee: :kiss_ee: :shock_ee: :smirk2_ee: :grin2_ee: :hmm2_ee: :vampire_ee: :snake_ee:

Beitragsnavigation

« | »

SetTextSize SetPageWidth