Blog-Trainer

WordPress-Seminare seit 2006

Wie ich mit Widget Caching mein WordPress-Blog dreimal schneller machte

| 12.447 mal gelesen |

WP Widget Cache

WP Widget Cache

Haben Sie die Sidebars Ihres WordPress mit nützlichen, informativen und manchmal auch nur dekorativen Widgets ausgestattet? Dann kennen Sie das Problem: Bei jedem Seitenaufruf vergehen endlos lange Millisekunden, bis der Inhalt der Sidebars angezeigt wird. Fast alle Widgets führen einen oder mehrere Datenbankaufrufe aus. Als mir dies erstmals dramatisch bewusst wurde, hatten sich bei meinem Blog für jeden Seitenaufbau bereits 64 Datenbankanfragen angehäuft, die 1,231 Sekunden brauchten! Das ist endlos lang für DSL-verwöhnte Blogleser. Es führt dazu, dass die Leser wegklicken, bevor die Seite komplett geladen ist.

Es gibt natürlich komplexe Caching-Plugins wie WP Super Cache. Um diese kommen Sie nicht herum, wenn Sie richtig viel Traffic auf dem Blog haben. Bei meiner Installation wurden aber zwei Drittel der Datenbankabfragen von den Widgets erzeugt. Deshalb konnte ich allein durch Caching der Widget-Inhalte zwei Drittel der Zeit sparen, die WordPress zum Aufbau der Seite benötigte.

WP Widget Cache für schnelle Sidebars

Mit dem Plugin WP Widget Cache können Sie für jedes Sidebar-Widget individuell einstellen, nach wieviel Sekunden das Widgets sich frühestens wieder aus der Datenbank bedienen darf. Beispiel: Das Widget „Neue Kommentare“ könnten Sie so einstellen, dass neue Kommentare nach drei Minuten in der Sidebar gezeigt werden, indem Sie in das Feld „Expire“ 180 Sekunden eintragen.

Einstellungen von Widget Cache: Auto-Expire

Einstellungen von Widget Cache: Auto-Expire

Zusätzlich können Sie die Auto-Expire Funktion aktivieren. Dies bedeutet, dass die Ausgabe des Widgets sofort neu erzeugt wird, sobald ein neuer Kommentar (bzw. ein neuer Artikel, eine neue Kategorie, ein neues Tag oder ein neuer Link in der Linkliste) hinzukommt. Durch die Auto-Expire-Funktion können Sie bei den meisten Widgets ruhig eine sehr lange Verfallszeit für den Cache-Inhalt angeben. Im Screenshot oben stehen 100.000 Sekunden, also mehr als 24 Stunden. Dennoch geht kein neuer Kommentar verloren.

Besonders sinnvoll ist WP Widget Cache für selten geänderte Inhalte der Sidebars, wie Texte oder HTML-Code in Textfeldern. Auch diese würde ohne Caching bei jedem Seitenaufruf wieder aus der Datenbank geholt werden. Einige Widgets mit dynamischen Inhalten können Sie nicht sinnvoll cachen, da der Benutzer mit Ihnen interagiert. Dazu gehört das Meta-Widget, dass je nach Status (eingeloggt/ausgeloggt) einen anderen Inhalt zeigen muss. Auch Polls, die Sie für zufällig angezeigte Umfragen benutzen wollen, kommen mit Caching nicht klar.

Wie schnell ist Ihr Blog?

Woher erfahren Sie, ob bei Ihrem Blog Handlungsbedarf besteht? Die Datenbankaufrufe und die benötigte Zeit werden bei vielen Themes im Quelltext angezeigt. Das Standard-Theme Kubrick zeigt zum Beispiel als Kommentar im Footer:

<!-- 20 Datenbankanfragen. 0.308 Sekunden. -->
<!-- 20 queries. 0.308 seconds. -->

Manche Themes bieten die Option, die Anzeige der Queries und Zeiten ein- und auszuschalten. Falls beides bei Ihnen nicht vorhanden ist, müssen Sie für den Test die Zeile

<!-- <?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds. -->

in der footer.php eintragen. Am besten unmittelbar vor dem </body> Tag.

workshop-wordpress-bloggingWenn die angezeigten Werte bei Ihrem Blog über 50 Abfragen oder 0,5 Sekunden liegen, sollten Sie WP Widget Cache auf jeden Fall einmal ausprobieren. Ich konnte damit meine Datenbankabfragen um zwei Drittel reduzieren. Das Caching mit WP Widget Cache läuft absolut wartungsfrei. Nur wenn Sie an der Konfiguration Ihrer Sidebar-Plugins schrauben, müssen Sie gelegentlich auf den Button „Clear All Widget Cache“ klicken, um die Sidebar zu aktualisieren.

Wie ich mit Widget Caching mein WordPress-Blog dreimal schneller machte auf Facebook teilen
Wie ich mit Widget Caching mein WordPress-Blog dreimal schneller machte auf Twitter teilen
Wie ich mit Widget Caching mein WordPress-Blog dreimal schneller machte auf Google Plus teilen
Wie ich mit Widget Caching mein WordPress-Blog dreimal schneller machte auf Xing teilen
Wie ich mit Widget Caching mein WordPress-Blog dreimal schneller machte auf LinkedIn teilen

Das könnte Sie auch interessieren:

12 Kommentare

  1. Gute Sache. Werde ich mal testen

  2. 😉

    … ich hab 2799 Queries in 1.057 Sekunden. WP Supercache ist in Verwendung.

  3. @Daniel: Sehr gut! WP Widget Cache ist keine Alternative zu WP Super Cache, sondern eine Ergänzung. Setzt du es zusammen ein? Dann landest du sicher unter einer Sekunde.

  4. Super-Rat, wie immer! 🙂 Karl-Heinz, du bist mein Lieblings-Optimierungsberater!

    Eines hab ich jetzt nicht ganz verstanden: Was für einen Wert setze ich denn bei Widgets ein, die sich gar nicht verändern?

  5. Hallo Kerstin,

    danke für das Lob – das geht runter wie Öl.

    Bei den völlig statischen Widgets ist es im Grunde egal, Hauptsache groß. Ich nehme immer 100.000 Sekunden, das ist etwas mehr als ein Tag.

  6. Ja, das habe ich jetzt auch gemacht, weil du die Zahl genannt hattest. WP Super Cache habe ich gleich auch noch hinzugefügt. Schau mal, wie schnell meine Blogs jetzt dank dir laden!

    http://www.kerstin-hoffmann.de/pr-doktor/
    http://www.kerstin-hoffmann.de/liest/

  7. Hallo Karl-Heinz,

    ich habe soeben mal versucht, Ihre Tipps umzusetzen. Offen gestanden wurde mein Blog zumindest gefühlsmäßig hierdurch nicht schneller, woran das liegen könnte, weiß ich nun nicht.

    Das Plugin Super Cache, wie von Daniel erwähnt, ist nun ehr ein Buch mit sieben Siegeln, da die Einstellungen schon wirklich eine Menge Überlegungen erfordern. Löschen lässt sich dieses leider auch nicht so ohne weiteres mehr, da die Datenbank offensichtlich entsprechend verändert wurde.

    Vieleicht kennt ja ein Leser eine Lösung.

    Nette Grüße

    Amadeus

  8. Richtig. WP Supercache ist ziemlich aufwändig in der Einrichtung. Deshalb habe ich ja hier Widgetcache vorgestellt. Beides schließt sich aber nicht aus, sondern ergänzt einander.

    @Amadeus: Den Unterschied mit/ohne Caching kannst du sehr einfach messen. Ist oben beschrieben.

  9. Pingback: WordPress mit Caching schneller machen (und die Widgets nicht vergessen!)

  10. Hallo Karl-Heinz, vielen Dank für diesen interessanten Beitrag. Schon längere Zeit fällt mir auf, dass es eigentlich meine Widgets sind, die den Betrieb aufhalten. Ich habe mir das Plugin gleich installiert, es hat wirklich etwas gebracht, meine Ladezeit ist noch besser geworden. Meine Leser werden es dir danken 😉

    Herzliche Grüße Jürgen Schnick

  11. Danke für den Beitrag !