Die Veröffentlichung von Beiträgen in WordPress planen, Plugins auf Updates überprüfen, Backups erstellen – all das sind typische Beispiele von Tasks, die wiederholt stattfinden. Und hier kommt in WordPress WP-Cron ins Spiel. Was das bedeutet und wann serverseitige Cronjobs sinnvoller sind, erklären wir in diesem Beitrag.
Wie du weißt, führt dein Computer durchgängig und mit rasender Geschwindigkeit unzählige Berechnungen mit Einsen und Nullen aus, die alle eine Aufgabe zu erledigen haben. Viele davon sind Tasks, die wiederholt werden müssen. Immer und immer wieder – wie das Zähneputzen. Deshalb habe ich folgende Frage an dich:
Wenn du das Zähneputzen automatisieren könntest, würdest du es tun?
Deine WordPress-Webseite hat automatisierte Wartungsaufgaben, die sie regelmäßig ausführen muss. In diesem Artikel werden wir uns ansehen, was diese Aufgaben sind, welche Probleme sie verursachen können und wie Raidboxes es dir super einfach macht, sie zu managen.
Jedes Mal, wenn dein lokaler Rechner dir eine Popup-Meldung anzeigt, dass ein Update gefunden wurde oder eine E-Mail in deinem Posteingang eingegangen ist, ist das mit hoher Wahrscheinlichkeit ein Cronjob, der hinter den Kulissen arbeitet.
„*“ zeigt erforderliche Felder an
Was ist Cron?
Cron ist ein Befehl zur Aufgabenplanung, der in Linux-basierten Systemen – wie zum Beispiel Ubuntu, Debian oder auch Mac OSX – und auch auf Servern integriert ist. Unter Windows heißt die Funktionalität „Task Scheduler“.
Dokumentation über die Verwendung der Cron-Funktion in diesen Systemen findest du hier:
- Windows – Task Scheduler (nutzt eine grafische Bedienoberfläche [eng. Graphic User Interface, GUI] für mehr Benutzerfreundlichkeit)
- Mac – Launched Jobs und Cron Jobs (nutzt Terminal und erfordert einige Kenntnisse in Bash-Skripterstellung)
- Server – Beispiel: cPanel – (nutzt entweder ein integriertes GUI oder Terminal)
Was macht Cron überhaupt?
Der Zweck von Cron ist es, wiederholende Aufgaben auszuführen – zum Beispiel das Prüfen auf vorhandene Updates oder der Versand und Empfang von E-Mails. Dies ist normalerweise standardmäßig für dich eingerichtet. Aber je mehr Software du auf deinem Rechner installiert hast, desto mehr Jobs werden höchstwahrscheinlich hinzugefügt. Der untenstehende Screenshot zeigt zum Beispiel in Windows 10 einen Cronjob im Taskplaner.
Du fragst dich, wie das funktioniert? Cron arbeitet, indem es Aufgaben anhand der Uhrzeit deines Geräts plant, und kann nach Minute, Stunde, Tag, Woche, Monat und Jahr eingerichtet werden. In Cron legst du eine bestimmte Zeit fest, zu der eine Aktion ausgeführt werden soll.
Was ist WP-Cron?
WordPress Cron, auch bekannt als WP-Cron, ist eine PHP-Datei, die normalerweise im Stammverzeichnis deiner WordPress-Installation zu finden ist.
Und was macht WP-Cron?
Die WordPress Cron-Datei (wp-cron.php) enthält die automatisierten Aufgaben, die deine WordPress-Installation ausführen muss. Zum Beispiel Dinge wie das Überprüfen auf Aktualisierungen von Plugins und WordPress oder das Veröffentlichen von geplanten Beiträgen. Für weitere Informationen, siehe dir die Dokumentation “What is WP-Cron” im offiziellen WordPress Plugin Handbook an.
WP-Cron versus Cron
Der Hauptunterschied zwischen WordPress Cron und dem Cron-Scheduler besteht darin, dass wp-cron.php nur ausgeführt wird, wenn ein Nutzer deine Webseite besucht und einen Seitenaufbau auslöst. Dies bedeutet, dass WordPress einen HTTP/HTTPS-Request deiner Website benötigt, um geplante Aufgaben auszuführen. Der Cron-Task wird dann in eine Warteschlange gestellt, um ausgeführt zu werden.
Du fragst dich jetzt vielleicht zu Recht:
Warum wird WP Cron nur dann ausgeführt, wenn ein Benutzer meine Webseite besucht?!
Nun, viele WordPress-Hoster bieten nur Shared Hosting an, was normalerweise bedeutet, dass der Hoster dir keinen Zugriff auf den Cron-Befehl gibt. Denn wäre das der Fall, hättest du Zugriff auf die Server-Befehle und alle Daten auf dem Server wären potenziell gefährdet. WordPress Cron ist also der Workaround für dieses Problem.
Der zweite Unterschied besteht darin, dass du bei der Verwendung von Cron bestimmte Zeiten festlegen kannst (zum Beispiel 17:00 Uhr täglich, um eine Aufgabe auszuführen). In WP-Cron dagegen, legst du Intervalle fest (zum Beispiel 14:00 Uhr & Intervall X danach). WP-Cron führt dann die Aufgabe in diesen Intervallen aus, solange ein Benutzer die Seite besucht hat. Für weitere Infos, siehe auch: Understanding WP-Cron Scheduling.
WP-Cron und Performance
Aufgrund der Tatsache, dass WP-Cron immer dann ausgelöst wird, wenn ein Benutzer deine Website besucht, kann dies sowohl bei kleinen als auch bei großen Webseiten zu Problemen führen. Wieso, erkläre ich dir jetzt.
Kleine & geografisch spezifische Webseiten
Bei kleineren Websites mit wenig Traffic besteht das Problem darin, dass der Cron-Task nicht oft genug ausgeführt wird. Ein Beispiel: Was ist, wenn deine Webseite um 2:00 Uhr morgens ein Backup erstellen soll, du aber eine kleine Reiseführer-Seite hast, die nur in einer Stadt betrieben wird. In diesem Fall ist es unwahrscheinlich, dass deine Zielgruppe um 2:00 Uhr morgens deine Webseite besucht und den Cronjob auslöst. Und wenn es in der Nebensaison ist, erhältst du möglicherweise tagelang keinen Besucher auf deiner Seite.
Größere Webseiten & globale Reichweite
Bei Websites mit einer großen Anzahl von Benutzern kann WP-Cron jedoch einige Leistungsprobleme verursachen und deine Seite sogar für eine DDoS-Attacke angreifbar machen. Nun, wenn du bei der Erwähnung eines DDoS-Angriffs wahrscheinlich gerade panisch nach deiner Maus oder Kaffeetasse gegriffen hast: mache dir keine allzu großen Sorgen, denn für alles gibt es eine Lösung.
Was verursacht das Problem?
Die Menge des Traffics verursacht das Problem. Für große Websites ist der Traffic natürlich ein Muss und wichtig fürs Geschäft, so dass die Eindämmung der Aufrufe keine Option ist, um das Problem zu lösen.
Wir erinnern uns: Jeder Seitenbesuch führt dazu, dass WP-Cron getriggert wird – und das belastet natürlich deinen Server, weil dafür Ressourcen benötigt werden.
Gibt es einen besseren Weg?
Glücklicherweise ist die Antwort “Ja”. Wir können zwar den Traffic nicht einfach eindämmen, physische Geschäfte rund um den Globus eröffnen oder den Aufbau von WordPress ändern. Aber wir können ändern, wodurch WP-Cron ausgeführt wird.
Anstatt wp-cron.php auf der Grundlage der Seitenbesuche auszuführen, können wir einen Cron-Task auf dem Hosting-Server einrichten, der WP-Cron in bestimmten Intervallen ausführt. Wie das geht, zeige ich dir jetzt.
Die serverseitige Ausführung von wp-cron.php bei Raidboxes konfigurieren
Um dir die Arbeit so einfach wie möglich zu machen, hat das Team hier bei Raidboxes diese Funktion direkt in das RB-Dashboard eingebaut. Du benötigst buchstäblich fünf Klicks, um die serverseitige Ausführung der WordPress Cronjobs einzurichten! Wenn du als Entwickler Zeit sparen möchtest, ist das eine der am einfachsten durchzuführenden Stellschrauben.
Um serverseitige Cronjobs in deinem Raidboxes Dashboard zu aktivieren, gehe zuerst in die Einstellungen deiner BOX und klicke dann auf „Cronjobs” in der Sidebar.
Nun bekommst du alle Einstellungsmöglichkeiten zu deinen Cronjobs angezeigt.
Nun solltest du in den Cronjobs folgende Konfiguration vornehmen:
- “WP-Cron ausführen” ausschalten (dies verhindert, dass WP-Cron durch Webseitenbesucher ausgelöst wird).
- “WP-Cron serverseitig ausführen” einschalten (dies fügt dem Server einen Cron-Task hinzu, um wp-cron.php in dem von dir festgelegten Intervall zu triggern).
Das ist schon alles!
Achtung
Für diese Anpassung ist es somit nicht notwendig, deinen Hoster zu kontaktieren, in das cPanel zu gehen oder deine wp-cron.php-Datei manuell zu bearbeiten. Bei Raidboxes benötigst du lediglich wenige Klicks und kannst direkt im RB-Dashboard deine Cronjobs überwachen und managen. Somit brauchst du kein zusätzliches Plugin installieren, um deine Cronjobs anzeigen zu lassen.
Wenn du weitere Konfigurationen vornehmen möchtest, kannst du im Raidboxes Dashboard außerdem festlegen, in welchem Intervall die wp-cron.php ausgeführt werden soll.
Es gibt eine Menge Spekulationen über das „beste“ Intervall für deine Cronjobs. Wir empfehlen in der Regel, nicht unter 5 Minuten zu gehen.
Bearbeiten deiner WordPress Cronjobs
Ohne Plugins
Wenn du kein Plugin installieren willst, um deine wp-cron.php Datei zu bearbeiten, ist das kein Problem! Bei Raidboxes kannst du deine Cronjobs wie oben beschrieben ganz einfach über das RB-Dashboard managen. Natürlich kannst du bei uns auch über eine SSH-Verbindung auf deine Cronjobs zugreifen. Sobald du dich mit deinem Konto verbunden hast, kannst du wp-cron.php im Stammverzeichnis deiner WordPress-Website bearbeiten.
Wenn du wissen möchtest, wie du deinen Workflow mit SSH noch effizienter gestalten kannst, schau dir am besten unseren Artikel “Der perfekte WordPress Development Workflow mit Git & SSH” an.
Mit Plugins
Das derzeit beliebteste Plugin zum Management von WP-Cronjobs ist “WP Crontrol”. Du kannst das Plugin auch direkt in deinem WordPress unter Plugins suchen und installieren.
Auf WP Crontrol’s Plugin-Seite auf WordPress.org findest du außerdem hilfreiche Dokumentation darüber, wie du das Plugin richtig verwendest.
Manuelles Einrichten des Servers zum Auslösen von WP-Cron (nicht nötig bei Raidboxes)
Mit ein wenig Einrichtungsaufwand kannst du deinen Server auch selbst so konfigurieren, dass die wp-cron.php in bestimmten Intervallen ausgeführt wird.
- Bearbeite die wp-cron.php
In wp-cron.php
- Deaktiviere deine wp-cron.php-Datei, indem du folgenden Code in der Datei hinzufügst:
define('DISABLE_WP_CRON', 'true');
Danach wird wp-cron.php nicht mehr ausgelöst, wenn ein Nutzer deine Webseite besucht.
- Füge einen Cronjob zu deinem Server hinzu
In deiner Server-Umgebung
Je nach deiner Hosting-Umgebung trifft eine der beiden unten aufgeführten Optionen auf deine spezifische Situation zu:
- Wenn du einen shared WordPress Hosting Service nutzt, wende dich an deinen Hostinganbieter und bitte diesen, einen serverseitigen Cron-Trigger für wp-cron.php hinzuzufügen, wenn du selbst keinen Zugriff auf die Linux-Befehle hast.
- Oder, wenn du deine Webseite mit cPanel betreibst und Zugriff auf deine Kommandozeile hast, schau dir die entsprechende cPanel Dokumentation an.
Die WP-Cron-Datei wird beim Aufbau einer WordPress-Webseite schnell übersehen, kann aber zu merklichen Fehlern führen, wenn deine Seite ordentlich an Traffic zulegt.
WordPress auf Trafficspitzen vorbereiten
Fazit
Ich hoffe, dieser Artikel hilft dir zu verstehen, was die WordPress Cron-Funktion ist und wie sie funktioniert. Richtig eingesetzt, kann sie dir helfen, wichtige Aufgaben zuverlässig zu automatisieren, sodass du dich auf das Wesentliche konzentrieren kannst.
Unser Ziel ist es, dir das Management deiner WP-Cronjobs über das Raidboxes Dashboard so einfach und bequem wie möglich zu machen. So kannst du durch diesen schnellen und direkten Zugriff die Entwicklung und Verwaltung deiner Seite noch weiter optimieren.
Hast du weitere Fragen zu WP-Cron oder unserem Dashboard? Dann lasse uns gerne einen Kommentar da! Du willst über neue Beiträge zu WordPress informiert werden? Dann folge uns auf Twitter, Facebook oder über unseren Newsletter.
Ist der Eintrag DISABLE_WP_CRON tatsächlich – wie im Artikel beschrieben – in der wp-cron.php einzufügen? Ich hätte einen solchen define-Eintrag eher in der wp-config.php vermutet.
Viele Grüße Stefan
Hallo Stefan,
das siehst du richtig, denn die wp-cron.php wird bei einem WordPress-Update wieder überschrieben. Solche Anpassungen gehören in die wp-config.php.
Viele Grüße
Timo