★★★ たった "1日" でできるWordPressブログの作り方講座 ★★★ はじめてみる

wp-cron.phpの無効化でWordPress高速化してみた

WP高速化のためのwp-cron.php無効化手順。CRONから定期実行する方法も紹介!

WordPressで気になるのは表示速度。

当ブログも遅さで悩むことが時々あります。

そこでプラグインの整理をしたんです。
やっぱり無駄なのを外すと大分改善しましたね。

そのついでに、せっかくならと、

wp-cron.php の無効化

これもWP高速化のために試してみました。

せっかくなので手順をまとめておきます。
特殊な手順もあるけど、基本は難しくありません。

wp-cron.php が表示速度に与える実害

※ 知ってる人は飛ばしてもOK。

まず wp-cron.php  のことについて。

これは自動実行プログラムのことで、
次の目的のために使われることが多いです。

  • 記事の予約投稿
  • プラグインの自動実行
  • WordPressの自動更新

予約投稿とかが便利ですよね。

ただこの WP-Cron には1つ問題があって・・・

それがアクセス毎に実行されること

こういう感じ とイメージしてください。

ペンギン君をブログ読者とすると、ペンギン君がWordPressブログにアクセスする度にwp-cron.phpが実行される

上図のペンギン君をブログ読者とします。

その場合、WP-Cron が実行される流れがこうです。

  1. ペンギン君がWPブログにアクセス
  2. WPがアクセスされた記事を表示する
  3. そのついでにWP-Cronも実行する

これが サーバーへの負荷 になり、
積もり積もって表示速度低下になります。困る

それなら無効化した方がいいと決断しました。

wp-cron.php を停止させる手順

ここからの作業では設定ファイルを編集します。

必ずバックアップを取ってから作業してください。

手順を簡潔にまとめると次の通り。

1.まず wp-config.php に無効化設定を追加

まずサーバーのWebFTPを使うか、
FTPソフトなどでサーバーに接続します。

そこでWPインストールした一番上のフォルダ

その場所にアクセスしてみてください。

必ず wp-config.php というファイルがあるはずです。

それを開いて次の内容を追加&保存。

/** wp-cron.phpを無効化 */
define('DISABLE_WP_CRON', 'true');

ただし1つだけ注意点!

ファイルの一番最後に追加すると、
wp-cron.php が無効にならないこともあります。

だから <?php のあとに改行して追加してください。

これで大抵は上手くいきます。

2.Cron から wp-cron.php を定期実行

この時点では wp-cron.php は完全停止してます。

だから予約投稿とかも一切働いてくれません。

そこで Cron(クーロン) を代わりに使いました。

Cronとは何か。ちょっと専門的

CRON(クーロン)とは、UNIX系システム(Unix OS、Linux OS)で使用されるジョブを自動実行するスケジューラーです。ユーザーが設定したスケジュールに基づいて一定時間毎に指定したコマンド、シェルスクリプトやプログラムを自動実行させることが出来ます。

引用元https://wepicks.net/itglossary-cron/

つまり wp-cron.php を登録すれば、
自動更新や予約投稿などを動かし続けられるってこと。

ただし さくらサーバー の場合で説明します。

といっても基本手順は同じなので、
そこは各自のサーバー環境で置き換えてください。

Cronが使える環境・サーバーなら問題ありません。

1.まずCron設定を開く

サーバーパネルのメニューから、
「スクリプト設定」ー>「Cron設定」をオープン

サーバーパネルの「スクリプト設定」ー>「Cron設定」をオープン

こういう画面が開いたはずです。

さくらサーバーのCRON設定画面

そしたら「スケジュール追加」をクリック

「スケジュール追加」をクリック

次のようなCron追加画面が出てくるはず。

さくらのCRON追加画面。ここでのCRONジョブ追加の手順は次の通り

ここから次手順のように、
wp-cron.phpを定期実行するCronを追加します。

2.実行コマンドとコメントを追加

まずは次画像みたいに、
実行コマンドとコメント(説明)を入力。

コマンドとコメントの入力例

実行コマンドとコメントの入力例

各項目の入力内容は次の通り

  • 実行コマンド
    ここには php wp-cron.php に該当するコマンドを入力。ただし各サーバーにおける php と wp-cron.php のそれぞれの絶対パスを調べる必要あり。
  • コメント(説明)
    このCronが何をするかの一言コメント。ここでは「wp-cron.phpの定期実行」みたいに分かりやすい説明にしている。ここは好きなように入力してOK。

気を付けるべきは実行コマンドですね。
これは各環境・サーバーで全く異なります。

自分のサーバーでは以下のコマンドを設定しました。

/usr/local/bin/php /home/fukuro-press/www/fukuropress/wp-cron.php

分からないなら運営に問い合わせてください。
ただし、答えが返ってくるかは運営次第です。

あとそれから・・・私自身もトラブル相談を行ってます。

WordPressのトラブル解決相談始めました!
WordPressが真っ白になった、デザインが崩れた・・・そんなWordPressのトラブル解決相談ができるサービスをココナラで始めました!もしWPのブログ運営で困った時は是非ご利用ください。お得な割引情報もお知らせ・・・

作業代行も可能なので、お困りならご相談ください。

3.実行時間の追加

下にスクロールして「実行時間」に移動。

そこでCronの実行間隔を入力すればOK。

15分毎に wp-cron.php を実行する入力例

wp-cron.php を15分ごとに定期実行する場合のCRONの実行時間の設定例

これはこの画像通りに入力してOKです。

そもそも WP Cron は使用頻度が低いです。
だから15分おき実行でもほとんど問題ないですね。

もし30分おきに実行したいなら、
「分」のところに「*/30」と入力してください。

まあCRON設定は難しいかもしれません。

でもググれば詳しい情報はいくらでも出てきます。

さくらのCRON設定を可能な限り簡単に解説したい

こういうページを参考にしてください。
自分でググって解決するクセは大事なので。ほんとうに

WP-Cron無効化の効果はそこそこだった

それで WP-Cron無効化 の効果について。

やはり無効化後の方がサーバー応答時間が改善してます。

  • 改善前 : 平均1秒以上
  • 改善後 : 平均0.8秒ほど

SpeedInsights の計測だとこういう結果。
体感的にも少しだけ速くなった気がします。

あとサーバーのCPU使用時間も少し減りました。

WP-Cron無効化前のCPU使用時間グラフ

wp-cron.php無効化前のサーバーCPU使用時間グラフ

WP-Cron無効化後のCPU使用時間グラフ

wp-cron.phpを無効化した後のサーバーCPU使用時間グラフ

グラフの赤丸が無効化を開始した日。

この日から若干使用時間が下がってるのが分かりますね。

最後にWordPress高速化のTipsをまとめて紹介

ここまでが wp-cron.php の無効化方法。

でも正直に言ってしまうと、
これは高速化にはそれほど効果ありません。

※ ただしサーバー負荷はかなり減らせる

もし本当にWordPress高速化を目指したいなら・・・

次記事で高速化のためのTipsを紹介してます。

これだけ対策しておけば、かなり速くなりますね。

読者にとって快適なブログ作りは大事です。

以上、wp-cron.php を無効化する方法でした。

The following two tabs change content below.

フク郎

昔はプログラミングに熱中していたが、ブログとWordPressに興味を持ち始め今はサイト・ブログ作りが生きがい。自分の「好き」をブログに変えたい、情報発信したい人に役立つWordPress術・サイト構築術を発信中。一日一歩楽しんでブログ構築できるように読みやすい&楽しい記事作りを心がけています。