「ページキャッシュは検出されませんでした」と指摘され
WordPressのサイトヘルスに「ページキャッシュは検出されませんでしたが、サーバーのレスポンスは良好です」と表示されていました。
今使っているレンタルサーバー(エックスサーバー)だとサーバ側でキャッシュ機能が用意されているので、WordPress側ではキャッシュ系のプラグインは使っていませでした。
でもこのアドバイスがあったので、ページキャッシュを試してみることにします。
WP-Optimize
キャッシュ系のプラグインはたくさんあります。
W3 Total CacheやWP Super Cacheといったあたりが有名所だと思います。以前、私も色々と試してみました(別のサーバを使っていた時代)。
その時の成果に従えばW3 Total Cacheを入れるのが良いということになりますが、上に書いたようにサーバ側でキャッシュしてくれているので、機能がダブるものが多く、無駄です。
シンプルにページキャッシュだけをやってくれるものがないかと探したら、前回試さなかったものの中にありました。WP-Optimizeです。このプラグインはデータベースの最適化機能について書かれたブログなどでよく紹介されています。ですが、ページキャッシュの機能なども持っています。しかし、これについて書かれた記事はあまり見かけません。
ということで、かえって試してみたくなりました(天邪鬼的に)。
設定
インストールし、有効化するとWP-Optimizeのメニューが現れます。
「キャッシュ」を選びます。
「ページキャッシュ」タブの中の「ページキャッシュ」を有効化スイッチを入れます。
あとは「変更を保存」をクリック。基本はこれだけでOKみたいです。直ちにページキャッシュが効くようになります。
その他の項目は「?」にマウスカーソルを持っていくと説明が出ますので必要に応じて。
先読み
ページキャッシュはそのページが最初にアクセスされたときに生成されます。ですので、二番目以降にアクセスすると高速に表示されます。ですが、逆に見れば最初のアクセスのときは表示は速くはありません。
これをなんとかしようというのが先読み(プリロード)です。どうやら、サイトマップを使って予めキャッシュを作ってくれるもののようです。
早速、「今すぐ実行」してみます。
実行にはしばらくかかります。サイト規模にもよるのでしょうが、このブログで一時間以上かかかったように思います。
「ページキャッシュ」のタブに戻るとどれくらいキャッシュされているかがわかります。
この数字がそうです。先読みをしたので全ページがキャッシュされたのだろうと思ったのですが、そうでもないみたいです。この数字、その後もじわじわ増えていきましした。なお、「キャッシュをパージ」をクリックすると、キャッシュが全部パージ(抹消)されます。
キャッシュの効果ですが、確かに速いです。先読み済みですので、どのページもスパスパ表示されるようになりました。これはやったほうがいいなという感想です。ただし、ログイン中はページキャッシュは効かない(そのように設定している)ので、表示の確認はログアウトして行います(それは面倒なので、私はシークレットウィンドウを使って確認することが多いです)。
それから、プリロードは定期的に行うように設定できるみたいです。上の「プリローダーを予約」のところにチェックを入れればOKです。スケジュールはデフォルトの「キャッシュ期間と同じ」で良いと思います。これなら、古くなったキャッシュが削除されたと同じタイミングで再度プリロードが実行されてキャッシュに入ります。
コンテンツを更新したらどうなる?
キャッシュを使う場合に気になるのは、記事を更新したときの挙動です。キャッシュの有効期間が切れて再生成されるまでは古い記事が表示されるというのでは困ります。
これについては簡単な実験を行ってみました。公開済みの記事を表示してみて、記事にちょっと書き足してシークレットウィンドウで表示してみるというものです。
結果は、ちゃんと書き足した記事がすぐに表示されました。また、その書き足したものを削除し、再度表示したらちゃんと消えました。このあたりはしっかり対処されているようです。
ウィジェットは注意
講師がすぐに反映されるのは記事本文の変更に限るようです。ウィジェット(サイドバー)などの変更は反映されません。
このブログのように、サイドバーに新着記事情報を置いている場合、ページキャッシュが更新されるまでは新着記事情報は古いままです。
新着記事情報に限らず、コメント一覧なども同様です。記事本文以外はページキャッシュが更新されるまでは古いままです。
キャッシュの期限はこの点を踏まえて決めると良いと思います。
サイトヘルスで確認
サイトヘルスでも「ページキャッシュが検出され~」と表示されました。
WP-Optimizeのページキャッシュ、簡単で効果があるのでおすすめです。