SEO 的にも重要と言われているページの表示時間、皆さん意識してますか?
このページでは、ページの表示時間の一部となるワードプレスの処理時間(ワードプレス起動から HTML 生成までの時間)を計測するサンプルプログラムを紹介します。
ページ表示時間にはワードプレスの処理時間だけでなく、HTML や画像等のデータを転送する時間なども含まれるので、今回計測する時間だけでページ表示時間全体が計測できるわけではないです。
ですが、ワードプレスの処理時間のみに限って計測しますので、例えば下記を行うことで、どの程度処理時間が増減するのかを直接的に把握することができます。
- プラグインの有効化
- テーマのカスタマイズ
- テーマ自体の変更
- ウェブサーバーの変更
そうそう!
例えばプラグインの評価に「処理が重い」って書いてあっても、実際どれくらい自分のウェブサイトに影響与えるかは分からないからね
実はこれ簡単です。ここからはこのワードプレスの処理時間計測を行うサンプルプログラムを紹介していきます。
Contents
ワードプレスの処理時間を計測するサンプルプログラム
ワードプレスの処理時間を計測するためには、functions.php に下記を追加します(functions.php は重要なファイルですので、変更する前に念のためバックアップを取っておくことをオススメします)。
<?php
/**
* ワードプレスの処理時間を表示する関数
*/
function display_wp_time() {
$time = timer_stop();
echo 'ワードプレスの処理時間は約 ' . $time . ' 秒です';
}
/**
* 'display_wp_time' をフックする関数
*/
function hook_display_wp_time() {
add_action( 'shutdown', 'display_wp_time' );
}
add_action( 'template_redirect', 'hook_display_wp_time' );
?>
これにより、投稿記事や固定ページを表示した際に、ページの最後にワードプレスの処理時間が表示されるようになります。
プログラムの一番下のフック追加処理をコメントアウトすれば、処理時間の表示を無効にすることができます。
//add_action( 'template_redirect', 'hook_display_wp_time' );
常に処理時間を表示するのではなく、下記のようなことを行う前後に処理時間の表示を有効にして時間を計測するのが良いと思います。
- プラグインの有効化
- テーマのカスタマイズ
- テーマ自体の変更
- ウェブサーバーの変更
前後の計測時間を比較することで、上記を行うことにより、どれだけ処理時間が増減したかを把握することができます。
ワードプレスの処理時間は状況に応じてばらつくことがありますので、複数回処理時間を計測して平均値などで比較するのがオススメです
ここまでの内容でワードプレスの処理時間を計測することは可能になります。ここからはプログラムの解説を行っていきますので、仕組みを詳しく知りたい方は読んでみてください。
ワードプレスの処理時間を計測するプログラムの解説
なぜ上記プログラムでワードプレスの処理時間が計測できるのかについて解説しておきます。
スポンサーリンク
処理時間の計測の考え方
まず、ワードプレスでは、もともと起動直後の時刻を計測するようになっています。
具体的には、起動時に実行される wp-setting.php という PHP ファイルの中で timer_start
という関数を実行することで、起動直後の時刻を計測するようになっています。
ですので、ワードプレスが HTML 生成直後に行われるワードプレスの終了処理時の時刻を計測してやれば、その終了時刻と起動直後の時刻との差からワードプレスの処理時間が計測できる、というわけです。
display_wp_time 関数
で、プログラム中で実行している timer_stop
関数は、関数が実行された瞬間の時刻を計測し、timer_start
関数で計測したワードプレス起動直後の時刻との差の時間を返却する関数です。
ですので、display_wp_time
関数をワードプレスが終了処理しているタイミングで実行されるように ‘shutdown’ アクションフックにフックし(’shutdown’ は、ワードプレス終了時に実行したい関数をフックするアクションフックになります)、display_wp_time
関数の中で timer_stop
関数を実行することでワードプレスの処理時間を取得しています。
ここまでがワードプレスの処理時間を表示するのに必要な処理になります。
hook_display_wp_time 関数
ただし ‘shutdown’ アクションフックにフックした関数は、管理画面表示時にも実行されることになります。
ワードプレスの処理時間の表示を管理画面で行うと、記事投稿時等にエラーになってしまうことがありますので、それを避けるために hook_display_wp_time
関数を用意しています。
hook_display_wp_time
関数で行っているのは ‘shutdown’ アクションフックに display_wp_time
関数をフックする処理だけですが、hook_display_wp_time
関数を管理画面表示時には実行されない ‘template_redirect’ アクションフックにフックさせることにより、管理画面生成時にはワードプレスの処理時間が表示されない(display_wp_time
関数が実行されない)ようにしています。
スポンサーリンク
まとめ
このページでは、ワードプレスの処理時間を計測するサンプルプログラムの紹介を行いました。
ページの表示時間は SEO 的にも重要であり、ページ表示時間にこだわりたい人には役に立つプログラムだと思います。
是非、今回紹介した方法でプラグイン有効化やテーマカスタマイズ時の処理時間を計測し、それらを実際に導入するかどうかの検討に役立ててください!