WordPress wird nachgesagt, dass es recht verschwenderisch mit Ressourcen umgeht. Es belastet die Datenbank etwas mehr als nötig. Dem kann man durch geeignete Massnahmen entgegenwirken. In diesem Beitrag geht es darum das eigene WordPress Theme auf Geschwindigkeit und minimale Serverlast hin zu optimieren.

WordPress Themes sind meistens auf Aussehen hin optimiert – selten auf Geschwindigkeit. Das ist im Prinzip auch gut, da der Blog vor allem dem Besucher gefallen soll. Andererseits bremsen einige installierte Features den Blog wieder aus. Er wird nicht so schnell geladen, weil er aufgeblähten Quellcode erzeugt, weil Bilder viel zu groß sind, skaliert werden oder nicht gut komprimiert sind. Siehe auch Website Leistung steigern.

WordPress Theme – komplexere Abfragen vermeiden
Wenn Sie merken, dass Ihr Blog etwas langsam wird, versuchen Sie dynamische Inhalte durch HTML-Code zu ersetzen. Es gibt Widgets, die Ihre Kategorien, die Blogroll oder Ihre Seiten ausgeben. Bei diesen Widgets wird jedes mal die Datenbank abgefragt, und das obwohl sich die Inhalte möglicherweise Jahrelang nicht ändern. So können Sie Ihre Blogroll per Widget anzeigen lassen – Sie können aber auch die paar Links per Hand in die Sidebar eintragen. Dieser Effekt ist nicht zu verachten. So kann sich mit ein paar Widgets die Datenbanklast schnell verdoppeln. Uns es geht ganz einfach. Bleiben wir doch beim Beispiel Blogroll. Wenn Sie diese bisher per Widget ausgeben, so schaun Sie sich doch mal den uelltext an. Kopieren Sie die entsprechende Passage und fügen sie an geeigneter Stelle in Ihre Sidebar ein. Dann entfernen Sie das nun überflüssige Widget, und schon haben Sie eine Datenbankabfrage gespart.

WordPress Theme – unnötige Mini-Abfragen
Wordpress Themes sind darauf angelegt, dass sie von einem Designer gebaut werden und auf tausenden Blogs sofort Einsatz bereit sind. Das ist natürlich sehr praktisch. Aber wenn Sie das Theme installiert haben, werden Sie zu 99,99% weder die URL des Blogs noch das Them, noch den Zeichensatz ändern. So fragt ein WordPress Theme am Anfang beispielsweise meist den Zeichensatz ab, oder wo die CSS-Datei liegt.

<html <?php language_attributes(); ?>>
<meta charset=“<?php bloginfo( ‚charset‘ ); ?>“ />
<link rel=“stylesheet“ type=“text/css“ media=“all“ href=“<?php bloginfo( ’stylesheet_url‘ ); ?>“ />
<link rel=“pingback“ href=“<?php bloginfo( ‚pingback_url‘ ); ?>“ />

Diese Abfragen können Sie getrost direkt durch die eigentliche Info oder den korrekten Link ersetzen.

<html dir=“ltr“ lang=“de-DE“>
<meta charset=“utf-8″ />
<link rel=“stylesheet“ type=“text/css“ media=“all“ href=“http://www.ihredomain.de/wp-content/themes/twentyten/style.css“ />
<link rel=“pingback“ href=“http://www.ihredomain.de/xmlrpc.php“ />

Aus dem etwas kompliziert anmutenden

<a href=“<?php echo home_url( ‚/‘ ) ?>“ title=“<?php echo esc_attr( get_bloginfo( ’name‘, ‚display‘ ) ); ?>“ rel=“home“>
<?php bloginfo( ’name‘ ); ?></a>

wird wieder

<a href=“http://www.ihredomain.de“ title=“Home“>Home</a>

Der Effekt für eine Abfrage an sich ist nicht so groß, da ein einzelner Befehl blitzschnell bearbeitet wird. Dennoch wird der Server wieder ein wenig entlastet. Ein Theme kann zig solcher Abfragen beinhalten.

Wenn Sie nicht genau wissen, was Sie da ersetzen sollen schauen Sie sich doch einfach den Quellcode der fertigen Seite an. Ändern Sie immer nur eine Sache und überprüfen Sie danach die Funktion der Homepage. Wenn Sie Ihr WordPress Theme lokalisieren, also die Sprache anpassen können Sie das auch direkt im Theme tun und Konstruktionen wie <?php _e( ‚Comments are closed.‘, ‚twentyten‘ ); ?> durch den Text „Die Kommentarfunktion ist deaktiviert“ oder so ähnlich ersetzen.

Fazit:
Prinbzipiell gilt, dass pures HTML schneller ist als PHP oder Widgets und Datenbankabfragen. Denn PHP und Datenbankabfragen erzeugen erst den HTML-Code, den der Server dann ausliefert. Also jedes Widget, dass Sie durch einen puren HTML-Code ersetzen können entlastet die Datenbank und den Server. Das führt dazu dass der Server die Webseiten schneller anzeigen kann. Denn bei einem Webserver greifen gleichzeitig viele User auf die Datenbank zu. Natürlich lässt sich nicht alles ersetzen, aber wer gezielt Unnötiges entfernt bekommt so eine schnellere Website..

1 Comments

  1. Das ist ein toller Hinweis, um die Performance ein wenig zu optimieren, allerdings hat diese Optimierung auch einen Nachteil: jede Anpassung macht die Portierbarkeit des Themes hinfällig, leider wird darauf im Artikel nicht deutlich genug hingewiesen.

    Was für einen enormen Einfluss die Übersetzung haben kann, darf man sich aus dem Fall, dass die deutsche Version von WordPress durch den Flaschenhals der Übersetzungsfunktionen viel langsamer ist, entnehmen.

Comments are closed.