WP-Cron を修正する: 機能する簡単なガイド

公開: 2025-11-02

WordPress は、世界中の何百万もの人々に使用されている強力なコンテンツ管理システムです。その隠しエンジンの 1 つである WP-Cron は、スケジュールされた投稿の公開、プラグインの更新の確認、メンテナンス タスクの実行などのスケジュールされたタスクの処理を担当します。ただし、多くの WordPress ユーザーは、WP-Cron の機能が原因でパフォーマンスの問題に遭遇します。スケジュールされた投稿が公開されない場合、または自動バックアップが失敗する場合は、WP-Cron システムが誤動作している可能性があります。このガイドでは、WP-Cron を修正し、Web サイトを効率的に実行するための信頼性が高く、わかりやすい方法を提供します。

WP-Cronとは何ですか?

WP-Cron (WordPress Cron の略) は、WordPress のデフォルトのタスク スケジュール システムです。事前定義された時間に実行される従来の Unix/Linux ベースの cron ジョブとは異なり、WP-Cron は誰かが Web サイトにアクセスしたときにのみ実行されます。その結果、トラフィックの少ないサイトではタスクが失われる可能性があり、トラフィックの多いサイトではパフォーマンスのオーバーヘッドが発生する可能性があります。

WP-Cron によって引き起こされる一般的な問題

  • 予定されていた投稿やタスクを見逃した
  • メール通知の遅延
  • ページ読み込み時の Web サイトのパフォーマンスが遅い
  • バックアップまたはスキャンの実行に失敗する

これらの問題はすべて、WP-Cron がそれをトリガーするために訪問者に依存していることに起因しています。幸いなことに、解決策はシンプルで効果的です。WP-Cron のデフォルトの動作を、サーバー上で直接実行されている実際の cron ジョブに置き換えます。

WP-Cron を修正するためのステップバイステップ ガイド

WordPress サイトのパフォーマンスを安定させて向上させるには、WP-Cron の組み込み実行を無効にし、代わりに実際のシステム cron ジョブをセットアップする必要があります。その方法は次のとおりです。

1. wp-config.php 内で WP-Cron を無効にする

ホスティング アカウントにログインするか、FTP/SFTP を使用して WordPress ルート ディレクトリにアクセスします。次に、 wp-config.phpファイルを見つけて開きます。次のコード行を、「 /* That's all, stop editing! Happy publishing. */という行のすぐ上に挿入します。 /* That's all, stop editing! Happy publishing. */ :

 define('DISABLE_WP_CRON', true);

このコマンドは、ページが読み込まれるたびに WP-Cron が自動的に実行されるのを無効にします。

2. サーバー上に実際の Cron ジョブを設定する

WP-Cron を無効にしたので、 wp-cron.php定期的に実行する実際の cron ジョブを設定します。これを行う方法は、ホスティング環境によって異なります。

cPanel ホスティングの場合

  1. cPanel ダッシュボードにログインします。
  2. 「詳細」セクションまでスクロールし、 「Cron ジョブ」をクリックします。
  3. 「Add New Cron Job」で実行時間を設定します。ほとんどのサイトでは、15 分ごとに実行するように設定するだけで十分です。選ぶ:
    • 分: */15
    • 時間: *
    • 日: *
    • 月: *
    • 平日: *
  4. コマンド入力ボックスに次の行を追加します ( yourdomain.comを置き換えます)。
     wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
  5. 「新しい Cron ジョブの追加」をクリックして変更を保存します。
コントロールパネルのユーザーインターフェースは非常にシンプルで使いやすいです。

VPSまたは専用サーバーの場合(SSH経由)

コマンドラインから作業している場合は、サーバーに SSH で接続し、ユーザーの crontab を編集します。

 crontab -e

次の行を追加します (再度ドメインを調整します)。

 */15 * * * * wget -q -O - https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

これにより、サイト訪問者に関係なく、15 分ごとに WP-Cron を確実に実行するようにサーバーに指示されます。

3. WP-Cron が動作していることを確認するテスト

cron ジョブが正しく動作していることを確認するには:

  • 近い将来(たとえば、5 分前)に投稿をスケジュールします。
  • スケジュールされた時間を過ぎて待って、公開されるかどうかを確認します。
  • 実行エラーがないか、ホスティング ログまたは cron ジョブの電子メール通知 (有効な場合) を確認します。

WP Crontrolなどのプラグインを使用して、WordPress インストールでスケジュールされたイベントを確認および管理することもできます。このプラグインを使用すると、見逃したタスクや期限を過ぎたタスクを確認できます。

WordPress の WP-Admin ダッシュボードを高速化するにはどうすればよいですか?

WP-Cron 管理の高度なヒント

1. サイトのアクティビティに基づいて Cron 頻度を調整する

cron を 15 分ごとに実行するように設定するのが一般的ですが、トラフィックが非常に少ないサイトでは、実行頻度を高くするとメリットが得られる場合があります。逆に、トラフィックの多いサイトでは、タスクがリアルタイムの実行を必要としない場合、cron の実行頻度が低くなる (30 分ごとまたは 1 時間ごと) ことがよくあります。

2. 長時間実行タスクを監視する

一部のプラグインは、バックアップ、レポート、スキャンなどの重いバックグラウンド タスクを追加します。これらのタスクが実行中にハングすると、他の cron タスクの実行が妨げられる可能性があります。 Query MonitorWP Crontrolなどのプラグインを使用して、問題のあるイベントを特定します。

3. 集中的なタスクを分離する

サイトで外部 API との 1 時間ごとの同期や電子メールのキューイングなどの重要なバックグラウンド操作を実行している場合は、WP-Cron をオーバーロードするのではなく、別の cron ジョブを介してそれらのタスクを実行することを検討してください。これらの操作専用のカスタム スクリプトを作成し、個別にスケジュールすることができます。

避けるべきよくある間違い

  • トラフィックの多いサイトで WP-Cron を使用する:頻繁にトリガーされるため、パフォーマンスの問題が発生する可能性があります。
  • 実際の cron ジョブを設定せずに WP-Cron を無効にすると、スケジュールされたタスクがまったく実行されなくなります。
  • cron のコマンド構文が間違っている: cron コマンドに依存する前に、必ずターミナルで cron コマンドを手動でテストし、機能することを検証してください。

代替コマンド (wget が使用できない場合)

サーバーでwgetが利用できない場合は、代わりにcurlまたはphp直接使用できます。

カールの使用

*/15 * * * * curl -s https://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

php CLIの使用

*/15 * * * * php /path/to/your/site/wp-cron.php >/dev/null 2>&1

/path/to/your/site/を WordPress インストールへの実際のパスに置き換えてください。

結論

WP-Cron を修正することは、WordPress サイトの信頼性とパフォーマンスを維持するための最も効果的な方法の 1 つです。組み込みの cron システムは機能しますが、実際の Web サイトの多くでは信頼性が低くなります。デフォルトの WP-Cron 実行を無効にし、サーバーレベルの cron ジョブに置き換えることで、サイト管理を専門化するための重要な一歩を踏み出すことになります。

ブログ、eコマース ストア、企業サイトのいずれを運営している場合でも、信頼性の高いタスク スケジュール設定が重要です。固定 WP-Cron により、アップデート、バックアップ、自動タスクが必要なときに確実に実行されるため、安心感とより安定したシステムが得られます。

上記の手順に従って、サイトのパフォーマンスとミッションクリティカルなタスクをより確実に監視します。信頼性はプロアクティブな構成から始まります。