WordPress
カスタマイズ事例

WORDPRESS CUSTOMIZATION

WordPress サイトを安定させる秘訣:wp-cron を止めてシステム cron に任せよう

wp-cron を止めてシステムの cron に任せよう

WordPress を運営していると、「CPU 使用率が急に跳ね上がる」「サーバーが一瞬重くなる」といった現象に出会うことがあります。その原因のひとつが wp-cron.php。

■ wp-cron ってなに?

WordPress には「予約投稿」や「定期的なタスク実行」といった仕組みがあります。
その裏側を担っているのが wp-cron.php です。

ところが、この処理には弱点が。

誰かがサイトにアクセスしたときに発動する

アクセスごとに走るため、アクセスが集中すると CPU 負荷が一気に高騰。
逆にアクセスが少ないと、予約タスクが遅れることも。

つまり「アクセス依存の仕組み」なのです。

■ 解決策:システムの cron に任せる

Linux サーバーにはもともと「cron」というタスクスケジューラが搭載されていて、これを使えば「5分ごとに確実に実行」というように安定稼働させることができます。
AWSやVPSなどSSH接続できるサーバーであればこのcronを設定します。レンサバでもさくらインターネットなんかはSSH接続できますね。

■ 手順

  1. wp-cron を止める
    WordPress の設定ファイル wp-config.php に以下を追記します。

    define('DISABLE_WP_CRON', true);
    

    これでアクセス時に自動実行されなくなります。

  2. システムの cron に登録
    root の crontab を編集します。

    sudo crontab -e
    

    そして以下を追記。

    */5 * * * * curl -s https://your-domain.com/wp-cron.php >/dev/null 2>&1
    

    これで 5分おきにサーバー自身が wp-cron.php を呼び出してくれます。

  3. 動作確認
    保存後しばらく待って、ログを確認します。

    sudo grep CRON /var/log/cron
    

    次のような行が出ていれば成功です。

    (root) CMD (curl -s https://your-domain.com/wp-cron.php >/dev/null 2>&1)</li>
    

■ メリット

  • サイトアクセス数に関係なく、安定してタスクが実行される
  • CPU スパイクが抑えられ、サーバー負荷が安定
  • 定期タスクが確実に走るので、予約投稿やプラグイン処理も安心

■ まとめ

WordPress のデフォルト機能 wp-cron は便利ですが、大規模サイトや業務利用のサイトには向きません。
システムの cron に任せるだけで、サーバーは見違えるほど安定します。

WordPress を少し“本格運用”するなら、ぜひ一度取り入れてみてください。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!