WP-Cronを無効化してWordPressサイトのパフォーマンスを改善する方法を解説
WordPressのWP-Cron(wp-cron.php)は、定期的なタスクのスケジュールと実行を管理する便利な機能ですが、トラフィックの多いサイトではパフォーマンスに悪影響を及ぼすことがあります。この記事では、WP-Cronの役割とその影響について説明し、サイトパフォーマンスを向上させるための無効化方法と代替のシステムCronの設定方法について解説します。
WP-Cronのパフォーマンスの問題点
WP-Cronは、WordPressのタスクスケジューラで、バックアップ、投稿の公開予約、テーマやプラグインの更新などを自動化します。しかし、WP-Cronは訪問者のサイトアクセスをトリガーとするため、高トラフィックサイトではサーバーリソースを消費し、サイトのパフォーマンスに悪影響を与えることがあります。具体的には、以下のような問題が発生することがあります。
- サーバー負荷の増加
- ページロード時間の遅延
- タスクの遅延または失敗
WP-Cronを無効にする方法
WP-Cronを無効にすることで、パフォーマンスを改善できます。無効化するには、WordPressの設定ファイル(wp-config.php)に以下のコードを追加します。
define('DISABLE_WP_CRON', true);
このコードを追加することで、WP-Cronは自動的に実行されなくなります。ただし、WP-Cronを無効にしただけではタスクが実行されなくなるため、次にシステムCronを設定する必要があります。
システムCronのスケジュール設定方法
システムCronを設定することで、サーバーが指定した時間にタスクを実行するようにできます。以下に、Pleskとコマンドラインでの設定方法を説明します。
Pleskでの設定
Pleskを使用している場合、以下の手順でシステムCronを設定します。
- Pleskダッシュボードにログインします。
- 対象ドメインを選択し、「スケジュールされたタスク」セクションに移動します。
- 「新しいタスクを追加」ボタンをクリックし、以下の情報を入力します。
タスクのタイプ | PHPスクリプトを実行をチェック |
スクリプトパス | スクリプトのフルパスを指定 |
実行(スケジュール) | 適切なスケジュールに設定 |
この画像の設定では2,32 * * * *となっており、毎時2分と32分に実行されます。1時間に2回の実行が行われるように設定されています。
コマンドラインでの設定
Linuxサーバーを使用している場合、以下の手順でシステムCronを設定します。
ターミナルを開き、Cronタブを編集します。
crontab -e
以下の行を追加し、wp-cron.phpを定期的に実行するように設定します。
# 例:毎時30分に実行する設定
30 * * * * /usr/bin/php /path/to/your/wordpress/wp-cron.php
保存して終了します。
スケジュール設定方法を詳しく解説
30 * * * *
という設定は、Cronジョブのスケジュールを表しています。それぞれのフィールドが何を意味するかを以下に詳しく説明します
:分を指定します。30と指定しているので、このジョブは毎時間の30分に実行されます。30(1つ目)
*(2つ目)
:時間を指定します。この場合、毎時間を意味します。*(3つ目)
:日を指定します。この場合、毎日を意味します。*(4つ目)
:月を指定します。この場合、毎月を意味します。*(5つ目)
:曜日を指定します。この場合、毎週を意味します。0~6の数字により、日から土を指定します。
例えば、平日の3時間に1度、0分に実行されるように設定する場合は、以下のように設定します。*/3
と指定することで3時間に1度の実行を指定し、1-5
と指定することで月曜日から金曜日の平日を指定します。
# 平日の3時間に1度、0分に実行されるように設定
0 */3 * * 1-5 /usr/bin/php /path/to/your/wordpress/wp-cron.php
プラグインでcronイベントを確認する
現在動作しているWP-Cronジョブを確認するために、WP Controlプラグインを使用することができます。このプラグインを使用すると、すべてのCronイベントを一覧で確認し、手動で実行したり、スケジュールを変更したりすることができます。
現在スケジュールされているすべてのCronイベントの一覧を表示します。各イベントの詳細を確認し、必要に応じて管理することができます。
各イベントを無効化するか、スケジュールを1日1回や2回に変更するかなど、現在動いているイベントを確認してから決定するのが良いでしょう。
まとめ
WordPressのWP-Cronを無効にし、システムCronを使用することで、サイトのパフォーマンスを大幅に改善することができます。特にアクセスが集中する高トラフィックサイトでは、サーバーリソースの節約やページロード時間の短縮に効果的です。
WP-Cronはユーザーのアクセス時に動作するため、アクセスが増えるとサーバーに負担がかかります。一方で、システムCronはサーバー上で一定の間隔で実行されるため、効率的なタスク管理が可能です。システムCronの設定は一度行えば継続的に機能するため、日常の運用負担を軽減し、より戦略的な運用に集中することができます。