WordPress Heartbeat API deaktivieren

Inhaltsverzeichnis

Performance und die Hearbeat API

Wordpress Hosting ist zurzeit voll im Trend. Warum ist das wohl so? Weil Wordpress eben ganz schön auf die Hardware geht und mit speziellen Anpassungen selbiger einfach deutlich besser läuft, als auf normalen Servern oder Hosting-Paketen.

Mit ein paar Optimierungen lassen sich aber auch ohne spezielles Hosting viele Ressourcen einsparen und ich habe auch schon des Öfteren ein paar Tipps und Tricks bezüglich der Wordpress Performance veröffentlicht. Jetzt folgt ein weiterer Hinweis, denn auch die Wordpress Heartbeat API zieht ganz schön an der CPU und kann/sollte deshalb deaktiviert werden. Das geht eigentlich ganz einfach. Doch bevor wir damit anfangen: Was ist die Wordpress Hearbeat API eigentlich genau?

Was ist die Heartbeat API eigentlich?

Die Wordpress Hearbeat API hat ihren Namen bekommen, weil sie wie der menschliche Puls für das Herz funktioniert. Sie pocht also in regelmäßigen Abständen. Das zeigt schon wie und warum sie auf die Leistung eurer Wordpress-Installation drückt, denn so ein Puls ist nun einmal beständig. Menschen ohne Puls leben nicht länger, bei Wordpress ist das aber anders.

Der Puls ist vielmehr eine ständige Anfrage an den Server, eine dauerhafte Belastung also. Die ist aber nur in wenigen Fällen wirklich notwendig, weshalb die Wordpress Heartbeat API auch ruhig deaktiviert werden kann. Im Grunde sind damit nur alle Ajax-Aufrufe innerhalb von Wordpress gemeint, die fortan abgeschaltet werden.

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.

Das wiederum ist ein Problem, weil selbige nun im ständigen Rhythmus aufgerufen wird, auch dann, wenn ihr gerade in einem anderen Tab oder Programm arbeitet. Ein Performance-Fresser also, der deaktiviert gehört.

Wordpress Heartbeat API komplett deaktivieren:

add_action('init', 'stop_heartbeat', 1);
function stop_heartbeat()
	{
	wp_deregister_script('heartbeat');
	}Code-Sprache: JavaScript (javascript)

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');
	}Code-Sprache: PHP (php)

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');
	}Code-Sprache: PHP (php)

Hinweise zur Deaktivierung der Heartbeat API

Wer die Wordpress Heartbeat API überall deaktiviert, entlastet zwar die CPU seines Servers, muss aber auch auf automatische Speicherungen innerhalb der Beiträge verzichten. Solche automatisierten Aufrufe und Aufgaben funktionieren nämlich über die API und ist diese deaktiviert, so sind auch die entsprechenden Funktionen nicht mehr verfügbar.

Den einen ist das egal, andere haben sich daran gewöhnt, deshalb gibt es oben drei verschiedene Snippets. So könnt ihr die Hearbeat API entweder komplett und überall deaktivieren, oder nur auf dem Dashboard abschalten. Außerdem kann die API auch überall außer beim erstellen von neuen Beiträgen deaktiviert werden, was dann die eben erwähnten automatischen Speicherungen etc. wieder zulässt.

Allgemein gilt am Ende: Die Wordpress Heartbeat API geht auf die Ressourcen des Servers, vor allem auf die CPU. Wer die Performance verbessern möchte, muss selbige also deaktivieren. Davon abgesehen sollte Wordpress mit eingeschalter API auch nur geöffnet bleiben, wenn ihr aktiv damit arbeitet.

Ist dies nicht der Fall, loggt euch lieber aus, denn sonst sendet die API immer wieder Anfragen. Ihr merkt schon, das Deaktivieren, zumindest teilweise, macht durchaus Sinn.

Christian Pust
WordPress & Onlinemarketing Experte mit über 15 Jahren Erfahrung. Entwickler & CEO von Trackboxx – der Google Analytics Alternative.

2 Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte dich auch interessieren

Du benötigst Unterstützung bei deinem WordPress Projekt?

Dein Ansprechpartner
Christian