WordPress 予約投稿が失敗する原因を徹底解説【原因別対策付き】

投稿の予約機能はブログ運営において非常に便利ですが、時折「予約投稿したはずなのに公開されていない」「予約時刻に公開されない」といったトラブルが発生します。
この記事ではその原因を根本から整理し、順を追って対策できるように解説します。

1 予約投稿が失敗したときに最初に確認すべき3点

  • サーバーの時間設定(タイムゾーン・時差)
  • クリックスケジュールが動作しているか(wp-cron.php)
  • キャッシュが原因で投稿が見えないだけか

これらをまず押さえておけば、トラブルの多くは回避できます。

2 原因:タイムゾーンがずれている

WordPress 管理画面 →「設定」→「一般」→「タイムゾーン」を確認。
サーバーと WordPress 設定の時刻にずれがあると、予約時刻を過ぎても公開されません。

特に海外サーバー・時間帯変更(サマータイム)対応の場合は要注意です。

3 原因:wp-cron が正しく動作していない

WordPress は「投稿の予約公開」を実行するために、内部で :contentReference[oaicite:0]{index=0} を呼び出しています。
この cron が動いていないと、予約投稿は実行されません。

3.1 典型的な症状

  • 予約時刻を超えても「公開済み」にならない
  • サーバーアクセスが少ないと予約が動かない

3.2 対策①:リアルcronに切り替える


// wp-cron を停止
define('DISABLE_WP_CRON', true);
*/15 * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

これで15分ごとに確実に予約投稿処理が実行されます。

4 原因:キャッシュプラグイン/CDNが原因で表示更新が遅い

予約投稿は正常に「公開済み」になっていても、キャッシュが古いまま表示されている場合があります。
特にキャッシュ長め・CDN併用サイトで起こりやすいです。

4.1 対策

  • 公開後すぐ:キャッシュクリア(プラグイン・CDN)
  • あらかじめ予約投稿設定時:キャッシュ解除時間を短く設定
  • 静的キャッシュ利用時:予約投稿時刻+5分程度キャッシュを無効化設定

5 原因:投稿日時を“未来”に設定し忘れている(基本ミス)

予約時刻を「未来」に設定しておくのを忘れると、実際には「すぐ公開」または「下書き」のまま放置されます。
ポイント:プルダウンから “予約日時” を選び、青い「予約」ボタンをクリックすることを確認してください。

6 原因:プラグインの競合・テーマの問題

いくつかのプラグイン/テーマでは予約投稿のフックをキャンセルしてしまうことがあります。
例:カスタム投稿タイプ用予約処理、ページビルダーなど。

4.1 対策

  • 最近入れたプラグインを停止してテスト
  • テーマを公式テーマ(Twenty Twenty-Twoなど)に切り替えてテスト
  • 予約投稿だけ専用ログを出すプラグインを入れて、実行状況を監視

7 原因:PHP実行時間制限・メモリ不足で処理が途中で止まる

予約投稿時には WordPress が内部処理を実行します。
PHPの `max_execution_time` やメモリ上限 `memory_limit` が低いと、処理が失敗することがあります。

4.1 対策

  • php.ini または .htaccess で `memory_limit = 256M` 以上に設定
  • 同じく `max_execution_time = 300` 程度に設定
  • サーバーの負荷状況を監視し、別サーバーへの移行も検討

8 原因:時刻変更によるサマータイム・冬時間の影響

特に海外サーバーを使っている場合、時刻が自動変更され「予約日時」がずれるケースがあります。
サーバー側のタイムゾーンと WordPress のタイムゾーンを一致させましょう。

9 原因:カスタム投稿タイプ・REST API・公開フックの誤用

開発サイトでよくあるのが、カスタム投稿タイプ(CPT)や REST API/公開フックを利用した予約処理が、テーマやプラグインの仕様変更により動かなくなるケースです。

4.1 対策

  • 予約投稿用の `wp_insert_post()` に `post_status => 'future'` を使っているか確認
  • `save_post` フックで `wp_publish_post()` を誤って呼び出していないか確認
  • テーマをアップデートした際に CPT 用予約が未対応になっていないかチェック

10 原因:Webhook・外部同期ツールとの競合

Zapier・IFTTT・Slack連携・外部サービス同期などを入れていると、
「予約投稿→外部同期→公開」 の流れに遅延・失敗が増える可能性があります。

4.1 対策

  • 同期対象を限定し、予約投稿から一定時間を空ける
  • 同期失敗時のエラーログを確認

11 原因:cron ジョブの実行間隔が長すぎる

`DISABLE_WP_CRON` を設定していない場合、アクセスが少ないサイトで **cron が長時間実行されず** 予約投稿が大きく遅れることがあります。
例:アクセスがゼロ → cronが発動せず →予約されていた投稿が公開されない。

4.1 対策

  • `define('DISABLE_WP_CRON', true);` を `wp-config.php` に追加
  • サーバー側で `*/15 * * * * wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1` のようなリアル cron を設定

12 まとめ

WordPress の予約投稿が失敗する原因は多岐に渡りますが、まず確認すべきは「タイムゾーン」「wp-cron の動作」「キャッシュ」の3つです。
そのうえで、プラグイン競合・PHP制限・cron間隔などを順番に潰していきましょう。

予約投稿が確実に動くようになれば、運営の負荷も大幅に減り、記事公開のスケジュール化がしっかり実現できます。
ぜひこの機会に設定を見直して、安定動作を手に入れてください。