
Wer WordPress nutzt, verlässt sich oft unbewusst auf ein zentrales Hintergrundsystem: sogenannte Cron-Jobs. Sie sorgen dafür, dass geplante Aufgaben automatisch ausgeführt werden — zum Beispiel das Veröffentlichen von Beiträgen zu einem bestimmten Zeitpunkt, das Versenden von E-Mails, das Abarbeiten von Shop-Bestellungen oder das Aufräumen von Datenbanken. Viele gehen davon aus, dass diese Aufgaben wie bei klassischen Servern zeitgesteuert im Hintergrund laufen.
Tatsächlich funktioniert das in einer Standard-WordPress-Installation jedoch anders.
WordPress verwendet von Haus aus keinen „echten“ Server-Cron, sondern ein eigenes System namens WP-Cron. Dieses wird nicht durch die Uhr gestartet, sondern durch Seitenaufrufe. Immer wenn jemand die Website besucht, prüft WordPress im Hintergrund, ob geplante Aufgaben fällig sind — und führt sie dann aus. Das ist praktisch, weil es auf fast jedem Hosting ohne zusätzliche Konfiguration funktioniert. Gleichzeitig hat dieses Verfahren aber auch Nachteile: Bei wenig Traffic können Aufgaben verspätet laufen, bei viel Traffic können sie mehrfach oder parallel gestartet werden. Beides kann zu Verzögerungen, unnötiger Serverlast oder fehlerhaften Abläufen führen — besonders bei Shops, Mitgliederseiten oder stark automatisierten Websites.
Deshalb ist es in vielen Fällen sinnvoll, die Cron-Ausführung aus WordPress herauszulösen und stattdessen einen echten, zeitgesteuerten Server-Cronjob zu verwenden. Dabei wird die WordPress-Crondatei regelmäßig direkt vom Server aufgerufen — unabhängig davon, ob gerade ein Besucher auf der Seite ist. Das sorgt für verlässlichere Abläufe, bessere Planbarkeit und oft auch für eine stabilere Performance. In diesem Beitrag zeigen wir, wie WordPress-Cron normalerweise arbeitet und warum die Auslagerung auf einen Server-Cron — zum Beispiel im Hosting-Panel — die robustere Lösung ist.
Hintergrundaufgaben in WordPress anzeigen
Viele WordPress-Aufgaben laufen unsichtbar im Hintergrund — zum Beispiel geplante Veröffentlichungen, E-Mail-Versand, Shop-Aktionen oder Wartungsjobs von Plugins. Standardmäßig gibt es im WordPress-Backend jedoch keine vollständige Übersicht aller geplanten Cron-Aufgaben – zumindest nicht, wenn man WooCommerce nicht installiert hat. Zum Glück lässt sich das leicht nachrüsten.
Am einfachsten funktioniert die Einsicht über ein kleines Hilfs-Plugin wie WP Crontrol. Nach der Installation findest du im Backend unter „Werkzeuge → Cron-Ereignisse“ eine vollständige Liste aller geplanten Aufgaben. Dort siehst du unter anderem den Namen des Hooks (also welche Funktion ausgeführt wird), das nächste geplante Ausführungsdatum sowie das Wiederholungsintervall. Einzelne Ereignisse lassen sich auch manuell starten oder bei Bedarf löschen. Das ist besonders hilfreich bei der Fehlersuche oder wenn Aufgaben scheinbar nicht ausgeführt werden.
Wenn du einen Online-Shop mit WooCommerce oder ein Plugin verwendest, das viele Hintergrundjobs erzeugt, gibt es oft zusätzlich eine zweite Aufgabenliste: den sogenannten Action Scheduler. Er verwaltet größere Aufgaben-Queues, etwa für E-Mails, Bestellverarbeitung oder Synchronisationen. Diese Liste findest du im Backend unter „Werkzeuge → Geplante Aktionen“. Dort kannst du sehen, welche Jobs erfolgreich waren, noch warten oder fehlgeschlagen sind — inklusive Zeitstempel und Fehlermeldungen.
Ein Blick in diese Übersichten lohnt sich: Wenn viele Aufgaben als „überfällig“ markiert sind oder sich fehlgeschlagene Jobs häufen, ist das ein deutlicher Hinweis darauf, dass die Cron-Ausführung nicht zuverlässig läuft. Genau hier zeigt sich der Unterschied zwischen dem standardmäßigen WP-Cron (aufrufbasiert) und einem echten Server-Cronjob (zeitgesteuert).
Schritt-für-Schritt: WordPress-Cron auf Hetzner Shared Hosting sauber einrichten
Ziel: WP-Cron nicht mehr über Seitenaufrufe, sondern zuverlässig über einen Hetzner-Cronjob ausführen.
1. WP-Cron in WordPress deaktivieren
Öffne deine wp-config.php (liegt i. d. R. im WordPress-Ordner public_html/wordpress/):
Füge oberhalb von /* That's all, stop editing! */ ein:
define('DISABLE_WP_CRON', true);
Damit verhindert WordPress, dass Cron bei jedem Seitenaufruf losläuft.
2) Cronjob im Hetzner Cronjob Manager anlegen
In der Hetzner-Konsole (Webhosting): Einstellungen → Cronjob Manager.
Hier „Hinzufügen“ wählen.
- Interpreter:
PHP Interpreter → in konsoleH eingestellte Version - Skript:
/usr/www/users/ftp-login/wp-cron.php
Bei ftp-login handelt es sich um den Loginnamen, den man mit FTP verwendet.
Das Verzeichnis/public_html/am Server entspricht/usr/www/users/ftp-login/, also wenn diewp-cron.phpam FTP-Server in/public_html/wordpress/liegt, würde der Pfad so lauten:/usr/www/users/ftp-login/wordpress/wp-cron.php - Ausführungszeiten: Manuell – und dann alle 5 Minuten

Anschließend „Speichern“ – und nach einigen Minuten wie folgt prüfen, ob alles funktioniert:
3) In WordPress prüfen, ob es wirklich läuft
Empfohlen: Plugin „WP Crontrol“

- zeigt alle Cron-Events, nächste Ausführungszeit, „überfällig“ usw.
WooCommerce / Action Scheduler:
„failed“ sollte nicht ständig neue bekommen
Backend → Werkzeuge → Geplante Aktionen

