Wordpress ist einer der beliebtesten CMS System unserer Zeit. Als Blogger Plattform gestartet wird WordPress heute in allen Bereichen eingesetzt. Sei es als Portfolio für Kreative, als Webseite für Firmen oder als mächtige Webshop Lösung mit Plugins wie WooCommerce.

De größte Schwachstelle die WordPress jedoch hat (speziell in Verbindung mit vielen Plugins) ist die Geschwindigkeit. Out of the Box ist WordPress ein relativ schlankes CMS System. Sobald jedoch große Plugins wie SEO Yoast oder WooCommerce hinzukommen kann die Seite schon mal schnell die magische 4 Sekunden Ladezeit überschreiten. Mit diesen sehr einfachen und schnell umsetzbaren Tipps kann man lange Ladezeiten massiv verkürzen und so die gesamte user experience  damit verbessern.

1. Das richtige Caching Plugin

WordPress generiert jede aufgerufene Seite dynamisch aus der Datenbank heraus. Wenn also eine Seite von 50 Usern gleichzeitig aufgerufen wird so generiert WordPress auch 50 PHP Anweisungen (vereinfacht ausgedrückt).

Hier setzt das Caching Plugin ein und speichert die Seite im Cache (es gibt mehrere Cache Arten). Dies hat den Vorteil, dass wenn die Seite erst einmal geladen ist, die Seite im Zwischenspeicher bleibt und so nicht bei jedem neuen Aufruf Server Ressourcen  verbraucht.

Die zwei gängigsten WordPress Caching Plugins sind:

2. Plugins behutsam einsetzen

Wie bereits erwähnt wird WordPress in einem schlanken Paket installiert und danach modular mit Hilfe von Plugins bestückt und für die eigenen Bedürfnisse aufgebaut. Jedes Plugin verbraucht Speicherplatz und Ressourcen. Es kann auch vorkommen, dass Plugns schlecht programmiert wurden und so unbemerkt Fehler auslösen welche die Performance drastisch verschlechtern können. Das einfachste ist natürlich, nach jeder Installation eines Plugins die Seite neu zu testen. Bei größeren Projekten, und nach unzähligen Updates kann hier die Fehlersuche aber schon mal mühsam werden. Das Plugin P3 Plugin Performance Profiler  testet alle Plugins und zeigt in einer Übersicht welches Plugin die meisten Ressourcen frisst.

3. Wp-cron.php deaktivieren 

Hier wird es schon interessanter. WordPress hat eine Standardeigenschaft die alle X Seiten die wp-cron.php mit aufruft. Im Server Log File sieht das dann so aus.

1.1.1.1 – – [03/dez/2014:01:08:05 +0200] “POST /wp-cron.php?doing_wp_cron=1334444885 HTTP/1.0” 200 – “-” “WordPress/3.6.1; https://slidebird.com”

Die Datei steuert unter anderem die Versendung von Emails bei neuen Kommentaren. Diese Datei wird bei einem gut besuchten Blog unzählige Male aufgerufen, auch wenn gar keine Kommentare geschrieben wurden. Dies verbracht unnötig Ressourcen und sollte daher unterbunden werden.

Zuerst muss man die Funktion in der functions.php deaktivieren mit dieser Zeile Code.

define(‘DISABLE_WP_CRON’, true);

Als zweiten Schritt muss man einen neuen Cron Job anlegen. Dies macht man Serverseitig. Hat man einen eigenen Server dann sieht das ganze so aus (natürlich mit eigenem Pfad):

0 */1 * * * cd /homepages/domain.tld/httpd && timeout=120 php ./wpcron.php

Die meisten werden jedoch ein shared Hosting benutzen und einen Cron Job in ihrem Hosing Panel anlegen müssen. Je nach Provider ist dies unterschiedlich. Meistens findet sich in den Erweiterten Einstellungen ein Punkt der “CRON JOBS” heißt. Dort sollte die Ausführung auf max. alle 6 Stunden gestellt werden. Somit wird 4mal täglich auf neue Kommentare überprüft was völlig ausreichend ist.

4. WordPress Heartbeat API und admin-ajax.php

Die sogenannte Heartbeat API ist für das Dashboard zuständig. Banal gesagt steuert die Heartbeat API alle ajax Aufrufe innerhalb der WordPress Seite. Sie führt eine ständige Anfrage an den Server aus. Daher auch der Name Haertbeat da es vergleichbar mit dem Herzschlag eines Menschen ist. Die Heartbeat API ruft also die “admin-ajax.php” auf, welche wiederum die CPU des Servers stark belastet, weil sie alle paar Sekunden für eine Aktualisierung der Inhalte sorgt. Folgende Optionen gibt es:

WordPress Heartbeat API komplett deaktivieren:

add_action('init', 'stop_heartbeat', 1);
function stop_heartbeat()
	{
	wp_deregister_script('heartbeat');
	}

WordPress Heartbeat API nur im Dashboard deaktivieren:

add_action('init', 'stop_heartbeat', 1);
function stop_heartbeat()
	{
	global $pagenow;
	if ($pagenow == 'index.php') wp_deregister_script('heartbeat');
	}

WordPress Heartbeat API überall außer bei Beiträgen deaktivieren:

add_action('init', 'stop_heartbeat', 1);
function stop_heartbeat()
	{
	global $pagenow;
	if ($pagenow != 'post.php' && $pagenow != 'post-new.php') wp_deregister_script('heartbeat');
	}

Wer die Heartbeat API überall deaktiviert muss lediglich aufpassen, da es dann zu keinem automatischen Zwischenspeichern der Beiträge kommt. Alternativ zu der PHP variante gibt es auch noch ein Plugin dafür. Wer also Angst vor dem bösen Code hat kann sich auch dieses Plugin installieren:

5. WordPress Kommentar Spam

Jeder der schon mal einen Blog geführt hat, weiß wie schnell man mal über 100 Spam Kommentare hat. Dies kann eine Datenbank durchaus belasten was wiederum die Performance der Seite verschlechtert.

Sollte es noch zu keinen Spam Einträgen kommen sein, um so besser. Ein Captcha Plugin hilft dabei, dass es auch so bleibt.  Sollte es bereits reichlich an Spam geben so muss zuerst mal die Datenbank gereinigt werden. Hierzu muss man sich zunächst in sein myPhpAdmin einloggen. In der Regel kann man das auf dem Panel seines Hosters unter Datenbankeinstellungen machen.

Danach sucht man sich in der linken Spalte die wp_comments heraus.

 

Diese Zeilen sind für uns interessant:

comment_post_ID
comment_author
comment_author_email
comment_author_url
comment_author_IP
comment_content

Danach klickt man auf die comment_post_ID um sie zu sortieren. So ist eine gute Übersicht möglich.

 

Nun kann man die Kommentare aus der Datenbank löschen, indem man auf das rote Minus drückt. Sollten es mehrere Spam Einträge sein, kann man mit Hilfe der Checkboxen auch mehrere gleichzeitig löschen.

Diese 5 Tipps sind schnell umgesetzt und speziell bei größeren Seiten sehr effektiv. Bei Fragen wie immer einfach ein Kommentar lassen, aber bitte kein Spam 😉

UNSERE LEISTUNGEN

Slidebird Webdesign & Online Marketing devider

Daniel Knoflicek ist seit 2012 Geschäftsführer von Slidebird Webstories, einer Agentur für online Marketing, Webdesign und Webentwicklung. Des Weiteren hat Daniel Knoflicek das Start Up Ernst M. gegründet, welches vegane, bio Marmelade in Österreich herstellet und vertreibt. Er ist als CTO für das Start Up tätig. Seit 2015 und der Gründung von DESK.WORKS ist Daniel Knoflicek als Brand Ambassador für Österreich zuständig.