WordPress を運営していると、「CPU 使用率が急に跳ね上がる」「サーバーが一瞬重くなる」といった現象に出会うことがあります。その原因のひとつが wp-cron.php。
WordPress には「予約投稿」や「定期的なタスク実行」といった仕組みがあります。
その裏側を担っているのが wp-cron.php です。
ところが、この処理には弱点が。
誰かがサイトにアクセスしたときに発動する
アクセスごとに走るため、アクセスが集中すると CPU 負荷が一気に高騰。
逆にアクセスが少ないと、予約タスクが遅れることも。
つまり「アクセス依存の仕組み」なのです。
Linux サーバーにはもともと「cron」というタスクスケジューラが搭載されていて、これを使えば「5分ごとに確実に実行」というように安定稼働させることができます。
AWSやVPSなどSSH接続できるサーバーであればこのcronを設定します。レンサバでもさくらインターネットなんかはSSH接続できますね。
define('DISABLE_WP_CRON', true);
これでアクセス時に自動実行されなくなります。
sudo crontab -e
そして以下を追記。
*/5 * * * * curl -s https://your-domain.com/wp-cron.php >/dev/null 2>&1
これで 5分おきにサーバー自身が wp-cron.php を呼び出してくれます。
sudo grep CRON /var/log/cron
次のような行が出ていれば成功です。
(root) CMD (curl -s https://your-domain.com/wp-cron.php >/dev/null 2>&1)</li>
WordPress のデフォルト機能 wp-cron は便利ですが、大規模サイトや業務利用のサイトには向きません。
システムの cron に任せるだけで、サーバーは見違えるほど安定します。
WordPress を少し“本格運用”するなら、ぜひ一度取り入れてみてください。
WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!