wp-cron.phpを軽くする方法|外部Cron化で高速&安定運用
- 1 wp-cron.php とは?
- 2 wp-cron.php の仕組み(ここが問題)
- 3 wp-cron.php のデメリット
- 4 リアルCronとは?(本物のCron)
- 4.1 リアルCronのメリット
- 4.2 リアルCronのデメリット
- 5 wp-cron.php の正しい最適化手順(結論)
- 6 ① wp-cron.php を無効化する(最重要)
- 7 ② サーバー側のCronを設定する(本物のCron)
- 7.1 実行するURL(WordPress公式推奨)
- 7.2 推奨実行間隔
- 8 wp-cron と リアルCron の比較まとめ
- 9 wp-cron.php の暴走を見つける方法
- 10 wp-cron 最適化のベストプラクティス
- 11 まとめ:wp-cron 最適化は “高速化で最も効果的”
- 11.1 関連記事
WordPress の自動実行処理は wp-cron.php によって管理されています。
しかし、標準の wp-cron.php は仕組み上「遅い・重い・実行タイミングが不正確」という問題を抱えています。
この記事では、wp-cron.php の特徴と欠点、正しい最適化方法、さらに サーバー側のリアルCron(本物のcron)との比較まで徹底解説します。
1 wp-cron.php とは?
WordPress の内部タスク(スケジュール実行)を担当する疑似 Cron システムです。例えば次のような処理を実行します。
- 予約投稿の実行
- プラグインの定期処理(キャッシュ削除など)
- バックグラウンドでのデータ処理
- cron系プラグインのスケジュール処理
つまり、WordPressの「自動化機能」はすべて wp-cron.php が支えています。
2 wp-cron.php の仕組み(ここが問題)
WordPress は「ユーザーがページを訪れたタイミングで」cronを実行します。
つまり…
- アクセスが多い → 頻繁に実行されすぎて重い
- アクセスが少ない → cronが実行されず、予約投稿が遅れる
これが WordPress の速度低下や不具合の原因になります。
3 wp-cron.php のデメリット
- アクセスの数だけ起動される(負荷が高い)
- CPU が spike しやすい
- アクセスがゼロだと実行されない(予約投稿が遅延)
- 大規模サイトでは
admin-ajax.phpを呼び出して遅くなる - cronの実行間隔が不正確
これを解消する最も効果的な方法が、リアルCronへの置き換えです。
4 リアルCronとは?(本物のCron)
サーバーが備えている「システム側の Cron(crontab)」のことです。
Linuxサーバーで非常に正確にスケジュール処理を実行できます。
4.1 リアルCronのメリット
- アクセスとは無関係に正確に動作
- 負荷がほぼゼロ(WordPressよりはるかに軽い)
- 予約投稿が遅れない
- 大規模サイトでも安定
4.2 リアルCronのデメリット
- サーバー設定が必要(初心者は少し大変)
- cron間隔を自分で決める必要がある
5 wp-cron.php の正しい最適化手順(結論)
WordPress高速化の専門家の多くが推奨しているのは、
① wp-cron を無効化 → ② サーバー側でリアルCronを設定する
この2ステップです。
6 ① wp-cron.php を無効化する(最重要)
まずは wp-config.php に以下を追加します。
// WordPress 標準の wp-cron を無効化
define('DISABLE_WP_CRON', true);
これでアクセス毎の wp-cron 実行が完全に止まり、サイトの負荷が大幅に減ります。
7 ② サーバー側のCronを設定する(本物のCron)
次に、サーバーのスケジュールタスクから以下を設定します。
7.1 実行するURL(WordPress公式推奨)
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
※ example.com をあなたのサイトURLに変更
7.2 推奨実行間隔
| サイト規模 | 推奨間隔 |
|---|---|
| 小規模ブログ | 10〜15 分 |
| 中規模サイト | 5 分 |
| 大規模サイト | 1〜3 分 |
予約投稿やキャッシュ削除などが正常に動くレベルで十分です。
8 wp-cron と リアルCron の比較まとめ
| 項目 | wp-cron | リアルCron |
|---|---|---|
| 実行タイミング | アクセスに依存 | 正確なスケジュール |
| 負荷 | 高い(アクセスの度に実行) | 非常に低い |
| 予約投稿の正確性 | 遅延しやすい | 遅延ゼロ |
| 大規模サイト向け | 不向き | 最適 |
| 設定の簡易性 | 超簡単(自動) | サーバー設定が必要 |
9 wp-cron.php の暴走を見つける方法
以下の症状がある場合、wp-cron が暴走している可能性が高いです。
- admin-ajax.php のアクセスが異常に多い
- CPU 使用率が急上昇
- WordPress が急に重くなる
- ログに大量の cron イベントが残る
この場合は、迷わず wp-cron無効化+リアルCron導入 を推奨します。
10 wp-cron 最適化のベストプラクティス
- wp-config.php で wp-cron を無効化
- サーバー側で 5〜15分間隔のリアルCron設定
- 不要な cron イベントを削除
- cronを多用するプラグインを整理
11 まとめ:wp-cron 最適化は “高速化で最も効果的”
wp-cron をリアルCronに置き換えるだけで、
管理画面の速度・フロントの速度・サーバー負荷が大幅に改善します。
特に、以下のようなサイトはほぼ必須です。
- アクセスが多い
- 予約投稿が遅れることがある
- CPU使用率が多いとよく言われる
- 高速化を本気でやりたい
wp-cron.php の最適化は、WordPressの高速化で最も効果が大きいチューニングのひとつです。


