CRON jobs werden verwendet, um Aufgaben zu periodischen festen Zeiten, Datumsangaben oder Intervallen auf deiner WordPress-Site zu planen. Einige Beispiele für einen Cron-Job in WordPress umfassen das Planen eines Beitrags für die Veröffentlichung, das Überprüfen auf Updates oder ein Backup-Plugin, das nach einem vordefinierten Zeitplan ausgeführt wird.

In WordPress wird dies von WP-Cron gehandhabt, mit dem ein System-Cron simuliert wird. Abhängig von der Menge des Datenverkehrs zu deiner Seite kann die Verwendung des integrierten Cron-Handlers tatsächlich Auswirkungen auf deine Seitenladezeiten haben. Heute zeigen wir dir, wie du WP-Cron (wp-cron.php) deaktivierst und stattdessen einen Systemcron verwendest, um die Leistung zu verbessern.

Performance-Probleme mit WP-Cron

Wir haben bei Kinsta mit einer Vielzahl von verkehrsreichen und anspruchsvollen Seiten zu tun. Aus diesem Grund haben wir mit dem in WordPress integrierten Cron-Handler eine Reihe von Leistungsproblemen gesehen: WP-Cron. Zunächst einmal ist es wichtig zu verstehen, dass WP-Cron kein echter Cron-Job ist. Es ist einfach das, was WordPress entwickelt hat, um zu simulieren, was ein System-Cron tut.

WP-Cron läuft nicht kontinuierlich. Standardmäßig wird die Datei wp-cron.php bei jeder Seitenladung ausgelöst, was bei stark frequentierten Websites zu Problemen führen kann. Wenn eine Seite nicht über genügend PHP-Worker verfügt, wird manchmal eine Anforderung eingehen. WordPress gibt den cron aus. Der cron muss jedoch auf den Worker warten und sitzt daher nur dort.

Das umgekehrte Szenario trifft ebenfalls zu. Wenn auf einer Website nicht viel Verkehr herrscht, können Zeitpläne verfehlt werden, da niemand eine Seite geladen hat.

Ein besserer Ansatz ist, WP-Cron zu deaktivieren und stattdessen die Systemcron-Funktion zu verwenden. Dies läuft nach einem vordefinierten Zeitplan ab und wird sogar im offiziellen Plugin-Handbuch empfohlen.

Wie du WP-Cron deaktivierst

Um WP-Cron zu deaktivieren, fügst du Folgendes in deine Datei wp-config.php ein, direkt vor der Zeile mit der Aufschrift „That’s all, stop editing! Happy blogging.” Notiz: Dies verhindert, dass es beim Laden der Seite ausgeführt wird, nicht wenn du es direkt über wp-cron.php aufrufst.

define ('DISABLE_WP_CRON', true);
Deaktiviere WP-Cron
Deaktiviere WP-Cron

So planst du System Cron

Du musst dann die wp-cron.php von deinem Server aus einplanen.
Wenn es sich bei deiner Seite um eine Multisite handelt, musst du einige zusätzliche Schritte einrichten, damit die Cron-Jobs für deine Unterseiten ausgeführt werden können. Hier sind ein paar Ressourcen, die wir dir dafür empfehlen können:

Wenn du ein Kinsta-Kunde bist, ist die gute Nachricht, dass unser serverseitiger Cron standardmäßig alle 15 Minuten die wp-cron.php auslöst, wenn du nur eine Seite von WordPress betreibst. 💪 Dadurch werden alle geplanten WordPress Crons ausgeführt. Und wenn du musst, kannst du die Frequenz erhöhen, indem du dich an unser Support-Team wendest.

Wenn du dich mit SSH auskennst, kannst du auch unserem Tutorial folgen, wie du Servercrons über die Kommandozeile bei Kinsta verwalten kannst. Alle unsere Host-Angebote beinhalten SSH-Zugang.

Wenn du kein Kunde von Kinsta bist, empfehlen wir dir den Artikel WordPress-Cron-Jobs richtig einrichten, um zu lernen, wie du System-Cron-Jobs einrichtest.

Erstelle einen Cron-Job in cPanel

Wenn du einen Host mit cPanel verwendest, kannst du auch über das Steuerungsfeld einen Systemcron erstellen. Hinweis: Stellesicher, dass du zuerst den Standard-WP-Cron deaktivierst.

Schritt 1

Login bei cPanel Klicke im Abschnitt „Advanced“ („Erweitert“) auf Cron-Jobs.

cPanel cron jobs
cPanel cron jobs

Schritt 2

Im Abschnitt Add New Cron Job (Neuen Cron-Job hinzufügen) kannst du aus verschiedenen vordefinierten Zeitplänen auswählen, z. B. zweimal pro Stunde oder einmal pro Woche. Dein Hosting-Provider hat höchstwahrscheinlich ein Limit dafür, wie oft er Cron-Jobs ausführen kann. Zweimal pro Stunde ist eine übliche Einstellung für Shared Hoster.

cPanel cron job Einstellungen
cPanel cron job Einstellungen

Schritt 3

Gib folgenden Befehl ein: Ersetze https://domain.com durch deinen Domainnamen. Dieser Befehl kann je nach Konfiguration deines Hostings leicht variieren. Dann klicke auf „Add New Cron Job“ („Neuen Cron-Job hinzufügen“)

wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
cPanel fügt einen neuen Cronjob hinzu
cPanel fügt einen neuen Cronjob hinzu

The >/dev/null 2>&1 part of the command above disables email notifications.

Plane Crons mit einer Drittanbieterlösung

Wenn du mit dem Einrichten von cron-Jobs auf deinem Server nicht vertraut bist oder dein Hosting-Provider keinen Zugriff bereitstellt, kannst du auch eine Drittanbieterlösung wie EasyCron verwenden.