WordPress verwendet ein "Pseudo-Cron"-System (WP-Cron), das bei jedem Seitenaufruf prüft, ob geplante Aufgaben anstehen. Das ist bei wenig besuchten Seiten unzuverlässig und erzeugt bei jeder Anfrage zusätzliche Last. Ein echter Server-Cronjob ist effizienter und zuverlässiger.
Schritt 1: WP-Cron in der wp-config.php deaktivieren
// WP-Cron deaktivieren (Pseudo-Cron bei Seitenaufruf)
define('DISABLE_WP_CRON', true);
Schritt 2: Echten Cronjob einrichten
Füge dies zur Crontab deines Servers hinzu (crontab -e):
# WordPress Cron alle 5 Minuten ausführen
*/5 * * * * wget -q -O /dev/null https://deine-domain.de/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Alternative Methoden
# Mit curl statt wget
*/5 * * * * curl -s https://deine-domain.de/wp-cron.php?doing_wp_cron >/dev/null 2>&1
# Mit WP-CLI (empfohlen, wenn verfügbar)
*/5 * * * * cd /pfad/zu/wordpress && wp cron event run --due-now >/dev/null 2>&1
# Mit PHP direkt (wenn HTTP-Zugriff eingeschränkt ist)
*/5 * * * * php /pfad/zu/wordpress/wp-cron.php >/dev/null 2>&1
Überprüfen, ob es funktioniert
# Alle geplanten WP-Cron Events auflisten (erfordert WP-CLI)
wp cron event list
# WP-Cron manuell auslösen zum Testen
wp cron event run --due-now
Was dieses Snippet macht
- DISABLE_WP_CRON – Verhindert, dass WordPress bei jedem Seitenaufruf nach geplanten Aufgaben prüft
- Server-Cron – Führt
wp-cron.phpin festem Intervall (alle 5 Minuten) aus, unabhängig vom Website-Traffic
Vorteile
- Reduzierte Serverlast – keine Cron-Prüfung bei jeder Seitenanfrage
- Zuverlässiger – Aufgaben werden planmäßig ausgeführt, auch bei wenig Traffic
- Schnellere Seitenaufrufe – eine Operation weniger pro Anfrage
- Vorhersagbare Ausführung – Cron läuft in exakten Intervallen
Hinweis: Die meisten Managed WordPress Hoster (wie Kinsta, WP Engine) kümmern sich bereits darum. Prüfe bei deinem Hosting-Anbieter, bevor du Änderungen vornimmst.