WordPress Cron が動作しない問題を修正: スケジュール Backup が実行されない

WordPress には、スケジュールされたタスクをバックグラウンドで実行する仕組みがあります。この仕組みは、内部データのクリーンアップ、利用可能なアップデートの確認、Plugin が特定の時刻や定期的に実行すべきアクション(サイトの定期的な Backup の作成など)といった、多くの重要なタスクを担っています。

WordPress の Cron ジョブのスケジューラがスケジュールタスクを実行していないようだ、というメッセージが表示された場合は、以下の原因を確認してください。

サイトに訪問者はいますか?

しばらく誰もサイトを訪れていない場合、この状況は想定どおりです。WordPress は、訪問者がページにアクセスしたときにのみ何かを実行する機会を得ます。訪問者がいなければ WordPress には一切アクセスされず、スケジュールされたバックグラウンドタスクを開始できません。そのため、サイトが Staging サイトや開発サイトで、他の理由から実訪問者がいない場合は、このメッセージが表示されても不思議ではありません。ページをいくつか訪れれば、メッセージは消えるはずです。

WordPress のメンテナンスモードが有効ですか?

サイトはメンテナンスモードになっていませんか? メンテナンスモードでは、あらゆる種類のスケジュールタスクが無効化されます。そのため、WordPress の Cron ジョブを有効にするには、メンテナンスモードをオフにしてください。

WP Cron は有効ですか、それとも無効ですか?

WordPress のスケジューラは、サイトの設定でオフにできます。これに該当する場合は WP STAGING が警告を表示し、サイトの wp-config.php で DISABLE_WP_CRON が true に設定されていることをお知らせします。

手動で確認することもできます。

WordPress インストールのルートにある wp-config.php ファイルで以下の行を探し、削除してください。任意で、truefalse に変更しても構いません。

PHP
define('DISABLE_WP_CRON', true);

この場合、無効化は Hosting 会社が意図的に行っている可能性があるため、再び無効化される可能性があることに留意してください。一方で、ご自身が意図的に無効化し、Hosting 会社のコントロールパネルなどから別の方法で WordPress のスケジューラへアクセスする手段を用意している場合もあります。

この場合、DISABLE_WP_CRON に関するメッセージが表示されるのは想定どおりです。そのうえで、サイトのすべてのスケジュールジョブを処理できるよう、スケジューラが十分な頻度で呼び出されるようにする必要があります。

スケジューラがそれを呼び出すように設定するまで、スケジュール Backup は実行されません。

なお、DISABLE_WP_CRON は wp-config.php 以外のファイルで設定されている可能性もあります。wp-config.php は単に最も可能性が高い場所というだけです。DISABLE_WP_CRON に関する警告が表示され、wp-config.php には記述がない場合は、別の場所にあるはずなので、それを探してください。

ループバック接続は動作していますか?

一部の Hosting プロバイダは、正当な理由もなく意図的に、WordPress がスケジューラを実行するために必要な「ループバック」接続を無効化していることがあります。サイトがパスワード保護されている場合や、一般公開されていないStaging サイトを運用している場合にも、同じ状況になります。

ループバック接続が動作しない場合(意図的に無効化されているかどうかを問わず)、WordPress の代替スケジューラを試すことができます。

wp-config.php ファイルの中程あたりに、以下の内容の行を追加してください。

PHP
define('ALTERNATE_WP_CRON', true);

ファイルの末尾近くに追加しすぎると、効果がない場合があります。

サイト全体がパスワード保護されていませんか?

WP Cron とスケジュール Backup が動作しないもう 1 つの理由として、サイト全体が HTTP レベルでパスワード保護されている可能性があります。これは .htaccess ファイルによって行われている場合があります。

これも、WordPress のスケジューラが動作しない原因になります。ウェブサーバーを設定し、自分自身への接続を許可する「ループバック」接続を有効にする必要があります。そうしないと、WordPress のスケジューラとそれに依存するすべての機能が動作しなくなります。Apache と .htaccess を利用している場合は、.htaccess のアクセス制御セクションに以下の 2 行を追加してみてください。

.htaccess
Allow from 0.0.0.0
Satisfy Any

0.0.0.0 をサイトの IP アドレスに置き換えてください。

LiteSpeed ウェブサーバーを使用していますか?

LiteSpeed ウェブサーバーを使用していて WP の Cron ジョブが動作しない場合は、こちらの記事をご覧ください。

Updated on 5月 23, 2026

Rene Hermenau

著者: Rene Hermenau

About the author: René Hermenau is the founder of WP STAGING. He works on WordPress backups, staging, migrations, database handling, and safe deployment workflows.