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);
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:
- WP CLI verwenden, um Cron Jobs auf Multisite-Netzwerken auszuführen
- WordPress Cron auf einer Multisite-Instanz ausführen
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.
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.
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
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.