---
title: "Geplante Beiträge in WordPress verpasst: Ursachen finden und dauerhaft beheben"
date: 2026-09-30T22:29:35+02:00
modified: 2026-10-03T07:09:08+02:00
category: wordpress
type: how_to
author: Marcel Schönfelder
canonical: https://s-edv.com/anleitungen/wordpress-geplante-beitraege-ueberfaellig-wp-cron-beheben
keywords:
  - WordPress
  - WP-Cron
  - Cronjob
  - Beiträge
  - Fehlerbehebung
reading_time: 8
---

# Geplante Beiträge in WordPress verpasst: Ursachen finden und dauerhaft beheben

Ein Beitrag ist für Montag, 8 Uhr, geplant, doch am Vormittag steht in der Beitragsliste in roter Schrift „Überfällig“ statt „Veröffentlicht“. Das liegt fast nie am Beitrag selbst, sondern an der Art, wie WordPress zeitgesteuerte Aufgaben ausführt. Diese Anleitung erklärt, warum geplante Beiträge liegen bleiben, wie Sie die Ursache auf Ihrer Website eingrenzen und wie Sie das Problem dauerhaft lösen. Die wichtigsten Fehlerbilder haben wir auf einer Testinstallation mit WordPress 7.1.2 nachgestellt.

**Kurzfassung:** WordPress veröffentlicht geplante Beiträge über WP-Cron, und WP-Cron läuft nur, wenn jemand die Website aufruft. Häufige Ursachen für „Überfällig“ sind die Konstante `DISABLE_WP_CRON` ohne echten Cronjob, blockierte Loopback-Anfragen, ein Schutz vor `wp-cron.php` oder eine falsche Zeitzone. Prüfen Sie den Website-Zustand und die Liste der geplanten Ereignisse, veröffentlichen Sie überfällige Beiträge von Hand und richten Sie danach einen Cronjob ein, der `wp-cron.php` regelmäßig aufruft.

## Voraussetzungen

- [ ] **WordPress:** eine aktuelle Installation, getestet mit WordPress 7.1.2 in deutscher Sprache.
- [ ] **PHP:** die Version Ihres Hostings, im Labor PHP 8.4.
- [ ] **Zugriff:** Rolle Administrator im Backend. Für die dauerhafte Lösung Zugang zur Cronjob-Verwaltung Ihres Hosters oder SSH, optional WP-CLI. Zum Prüfen der `wp-config.php` SFTP.
- [ ] **Backup:** ein aktuelles Backup, bevor Sie die `wp-config.php` ändern. Ein Syntaxfehler in dieser Datei legt die gesamte Website lahm.

## Schritt 1: Verstehen, wie WordPress Beiträge zeitgesteuert veröffentlicht

Wenn Sie einen Beitrag planen, erhält er den Status „Geplant“, und WordPress legt ein Ereignis mit dem Namen `publish_future_post` für genau diesen Zeitpunkt an. Um den Zeitpunkt kümmert sich WP-Cron, der eingebaute Aufgabenplaner. Laut Plugin-Handbuch auf developer.wordpress.org prüft WP-Cron bei jedem Seitenaufruf, ob fällige Aufgaben anstehen, und läuft nicht dauerhaft wie der Cron-Dienst eines Linux-Servers. Das Handbuch nennt selbst das Beispiel: Ist eine Aufgabe für 14 Uhr geplant und kommt bis 17 Uhr kein Besucher, läuft sie erst um 17 Uhr.

Daraus folgen drei Grundregeln. Auf Websites mit wenig Besuch kommen Beiträge verspätet. Wird WP-Cron abgeschaltet, muss ein anderer Mechanismus einspringen. Und wenn WP-Cron zwar startet, aber die interne Anfrage an `wp-cron.php` scheitert, bleibt ebenfalls alles liegen.

> **Prüfen:** Sie wissen, dass geplante Beiträge von WP-Cron und damit von Seitenaufrufen oder einem externen Aufruf abhängen.

## Schritt 2: Das Fehlerbild genau ansehen

Öffnen Sie *Beiträge > Alle Beiträge*. Überfällige Beiträge zeigen in der Spalte „Datum“ in roter Schrift „Überfällig“ und darunter den geplanten Zeitpunkt. WordPress setzt diese Kennzeichnung, sobald ein Beitrag noch den Status „Geplant“ hat, obwohl sein Termin in der Vergangenheit liegt.

Prüfen Sie danach *Werkzeuge > Website-Zustand*. Zwei Tests sind hier wichtig:

- **Geplante Ereignisse:** Im Idealfall steht dort „Geplante Ereignisse werden ausgeführt“. Bei Problemen meldet WordPress „Ein geplantes Ereignis ist überfällig“ und nennt den Namen des Ereignisses.
- **Loopback-Anfrage:** Meldet der Test, dass Loopback-Anfragen funktionieren, kann WordPress sich selbst aufrufen. Genau diesen Weg nutzt WP-Cron, um `wp-cron.php` im Hintergrund zu starten.

Beachten Sie, dass der Website-Zustand mit Verzögerung warnt. Im Quellcode von WordPress 7.1.2 gilt ein Ereignis bei abgeschaltetem WP-Cron erst nach 15 Minuten als überfällig. Im Test stand deshalb in der Beitragsliste schon „Überfällig“, während der Website-Zustand noch „Geplante Ereignisse werden ausgeführt“ anzeigte. Die Beitragsliste ist also der schnellere Hinweis.

Mit WP-CLI sehen Sie die anstehenden Veröffentlichungen direkt:

```bash
$ wp cron event list --hook=publish_future_post --fields=hook,next_run_gmt,args
```

Die Spalte `args` enthält die Beitrags-ID, `next_run_gmt` den Zeitpunkt in UTC.

> **Prüfen:** Sie wissen, welche Beiträge betroffen sind, und haben notiert, was der Website-Zustand zu geplanten Ereignissen und Loopback-Anfragen meldet.

## Schritt 3: Die häufigsten Ursachen prüfen

**WP-Cron abgeschaltet, aber kein Ersatz eingerichtet.** Öffnen Sie die `wp-config.php` per SFTP und suchen Sie nach `DISABLE_WP_CRON`. Steht dort `define( 'DISABLE_WP_CRON', true );`, startet WordPress WP-Cron nicht mehr selbst. Das ist sinnvoll, wenn ein Cronjob des Servers diese Aufgabe übernimmt. Fehlt der Cronjob, etwa nach einem Umzug zu einem anderen Hoster, bleiben alle geplanten Beiträge stehen. Genau so haben wir das Problem im Test ausgelöst. WP-CLI bestätigt den Zustand mit einer eindeutigen Meldung:

```bash
$ wp cron test
Error: The DISABLE_WP_CRON constant is set to true. WP-Cron spawning is disabled.
```

**Loopback-Anfrage scheitert.** Meldet der Website-Zustand, dass die Website keine Loopback-Anfrage abschließen konnte, kommt der Hintergrundaufruf nicht an. Typische Gründe sind ein Passwortschutz für die ganze Website (HTTP-Authentifizierung), eine Firewall, die Anfragen des eigenen Servers sperrt, oder eine falsche Namensauflösung auf dem Server. Wie Sie einen Passwortschutz so einrichten, dass er nur das Backend betrifft, beschreibt [Adminbereich per IP-Freigabe und HTTP-Auth schützen](https://s-edv.com/anleitungen/wordpress-adminbereich-ip-freigabe-http-auth-schuetzen).

**Sicherheitsregeln sperren wp-cron.php.** Manche Sicherheits-Plugins und Serverregeln blockieren direkte Aufrufe von PHP-Dateien. Rufen Sie zum Test `https://www.example.de/wp-cron.php` im Browser auf. Eine leere weiße Seite ist richtig, ein Fehler 403 oder eine Sperrseite ist die Ursache.

**Zeitzone falsch eingestellt.** Unter *Einstellungen > Allgemein* legen Sie die Zeitzone fest. Steht dort „UTC+0“ statt „Berlin“ oder „Wien“, wird ein für 8 Uhr geplanter Beitrag eine bzw. zwei Stunden später veröffentlicht als erwartet. Eine Stadt statt eines festen Versatzes berücksichtigt auch die Umstellung auf Sommerzeit.

**Wenig Besucher und Seiten-Cache.** Liefert ein Caching-Plugin oder der Hoster fertige Seiten aus, ohne PHP zu starten, zählt ein Besuch nicht als Seitenaufruf für WP-Cron. Auf Websites mit wenig Verkehr verschiebt sich die Veröffentlichung dann um Stunden.

> **Prüfen:** Sie haben mindestens eine der Ursachen bestätigt oder ausgeschlossen: Konstante in der `wp-config.php`, Loopback-Test, direkter Aufruf von `wp-cron.php`, Zeitzone.

## Schritt 4: Überfällige Beiträge sofort veröffentlichen

Bevor Sie die Ursache beheben, bringen Sie die liegengebliebenen Beiträge online. Im Backend öffnen Sie den Beitrag und klicken auf „Veröffentlichen“. Alternativ nutzen Sie in der Beitragsliste die Schnellbearbeitung und setzen den Status auf „Veröffentlicht“. Prüfen Sie dabei das Datum: Soll der Beitrag mit dem ursprünglich geplanten Datum erscheinen oder mit dem aktuellen?

Oft genügt es auch, WP-Cron einmal von Hand anzustoßen. Im Test veröffentlichte ein einzelner Aufruf von `wp-cron.php` einen überfälligen Beitrag sofort, obwohl `DISABLE_WP_CRON` gesetzt war. Die Datei führt fällige Ereignisse auch dann aus, die Konstante verhindert nur den automatischen Start bei Seitenaufrufen:

```bash
$ curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/wp-cron.php
```

Die Ausgabe sollte `200` lauten.

> **Prüfen:** In *Beiträge > Alle Beiträge* steht bei den betroffenen Beiträgen „Veröffentlicht“, und sie sind auf der Website sichtbar.

## Schritt 5: WP-Cron dauerhaft zuverlässig machen

Die robuste Lösung ist ein Cronjob auf Serverebene, der `wp-cron.php` in festen Abständen aufruft, unabhängig von Besuchern. Das Plugin-Handbuch beschreibt genau diesen Weg und empfiehlt, anschließend WP-Cron bei Seitenaufrufen abzuschalten, weil die Prüfung dann nur noch Last erzeugt:

Datei: `wp-cron.php`

```php
define( 'DISABLE_WP_CRON', true );
```

Die Zeile gehört in die `wp-config.php` oberhalb des Kommentars „That's all, stop editing!“. Tragen Sie sie erst ein, wenn der Cronjob läuft, nicht umgekehrt. Bei den meisten Hostern legen Sie im Kundenbereich einen Cronjob mit einer Adresse an. Auf einem eigenen Linux-Server sieht ein Eintrag in der Crontab des Webserver-Benutzers so aus:

Datei: `wp-config.php`

```php
*/5 * * * * wget -q -O /dev/null https://www.example.de/wp-cron.php
```

Alle fünf Minuten ist für geplante Beiträge ein guter Takt. Wer WP-CLI auf dem Server hat, kann stattdessen `wp cron event run --due-now` im Cronjob ausführen. Wie Sie das Schritt für Schritt einrichten, inklusive Benutzerrechten und Protokollierung, zeigt [WP-Cron durch echten System-Cron via WP-CLI ersetzen](https://s-edv.com/anleitungen/wordpress-wp-cron-echte-cronjobs-einrichten). Die Grundlagen der Zeitangaben erklärt [Cron und crontab richtig nutzen](https://s-edv.com/anleitungen/cron-crontab-grundlagen-linux).

Ein Cronjob ist allerdings nur so gut wie seine Überwachung. Nach einem Hoster-Wechsel, einer PHP-Umstellung oder einer neuen Firewall-Regel kann er unbemerkt ausfallen. Werfen Sie deshalb regelmäßig einen Blick in den Website-Zustand. Wer diese Kontrollen nicht selbst im Kalender halten möchte, kann sie abgeben: Die [WordPress-Wartung von wordpressupdate.de](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=artikel&utm_campaign=87) spielt Updates von WordPress, Plugins und Themes mit Kompatibilitätsprüfung ein, sichert die Website wöchentlich auf externen Speicher und richtet eine Firewall ein.

> **Prüfen:** Planen Sie einen Testbeitrag zehn Minuten in die Zukunft und rufen Sie die Website in dieser Zeit nicht auf. Nach spätestens fünf weiteren Minuten muss er den Status „Veröffentlicht“ haben. Löschen Sie den Testbeitrag danach.

## Typische Fehler

**„Überfällig“ nach Umzug**

Die `wp-config.php` wurde mit `DISABLE_WP_CRON` übernommen, der Cronjob beim alten Hoster blieb zurück. Legen Sie ihn beim neuen Hoster an.

**Cronjob läuft, Beiträge bleiben trotzdem liegen**

Der Aufruf endet mit 403 oder einer Anmeldeseite, etwa wegen Passwortschutz oder Firewall. Prüfen Sie den Aufruf mit `curl` und dem Statuscode.

**Beitrag erscheint eine oder zwei Stunden zu spät**

Die Zeitzone steht auf einem festen Versatz wie UTC+0. Stellen Sie auf „Berlin“ oder „Wien“ um.

**„Error: '11' is not a valid schedule name for recurrence.“**

Diese Meldung von `wp cron event schedule` sahen wir beim Versuch, ein Ereignis mit Beitrags-ID von Hand anzulegen. Der Befehl erwartet an dieser Stelle ein Intervall, keine Argumente. Veröffentlichen Sie überfällige Beiträge besser im Backend.

**Website-Zustand meldet nichts**

Die Warnung erscheint bei abgeschaltetem WP-Cron erst mit Verzögerung. Die Beitragsliste zeigt das Problem früher.

## Häufige Fragen

### Brauche ich ein Plugin gegen verpasste Veröffentlichungen?

Solche Plugins veröffentlichen überfällige Beiträge bei einem späteren Seitenaufruf nach. Sie behandeln das Symptom. Ein Cronjob auf Serverebene behebt die Ursache und funktioniert auch für Updates, Backups und alle anderen geplanten Aufgaben.

### Wie oft sollte der Cronjob laufen?

Alle fünf Minuten reicht für die meisten Websites. Kürzere Abstände bringen bei geplanten Beiträgen kaum Gewinn und erhöhen die Last. Manche Hoster erlauben nur größere Intervalle, dann verschiebt sich die Veröffentlichung entsprechend.

### Betrifft das Problem nur Beiträge?

Nein. Automatische Updates, die Suche nach Updates, Aufräumaufgaben und viele Plugins nutzen dasselbe System. Verpasste Beiträge sind oft nur das sichtbarste Zeichen dafür, dass im Hintergrund noch mehr liegen bleibt.

## Fazit

Verpasste Veröffentlichungen sind ein Zeichen dafür, dass WP-Cron nicht zuverlässig läuft. Prüfen Sie die Konstante in der `wp-config.php`, den Website-Zustand und die Zeitzone, veröffentlichen Sie liegengebliebene Beiträge von Hand und richten Sie einen Cronjob ein, der `wp-cron.php` regelmäßig aufruft. Dann erscheinen Beiträge pünktlich, und auch Updates und andere Hintergrundaufgaben laufen verlässlich. Wenn Sie Updates und Backups lieber abgeben möchten, übernimmt das die [WordPress-Wartung](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=fazit&utm_campaign=87).

## Weiterführende Anleitungen und Quellen

- [WP-Cron durch echten System-Cron via WP-CLI ersetzen](https://s-edv.com/anleitungen/wordpress-wp-cron-echte-cronjobs-einrichten)
- [Cron und crontab richtig nutzen](https://s-edv.com/anleitungen/cron-crontab-grundlagen-linux)
- [Adminbereich per IP-Freigabe und HTTP-Auth schützen](https://s-edv.com/anleitungen/wordpress-adminbereich-ip-freigabe-http-auth-schuetzen)
- [WordPress Plugin Handbook: Cron](https://developer.wordpress.org/plugins/cron/)
- [WordPress Plugin Handbook: WP-Cron in den System-Scheduler einbinden](https://developer.wordpress.org/plugins/cron/hooking-wp-cron-into-the-system-task-scheduler/)
- [WP-CLI: wp cron event run](https://developer.wordpress.org/cli/commands/cron/event/run/)
