このブログは自宅DebianサーバーでWordPressで運用していますが、とにかく遅いってのが悩みの種。
画像の多いページなど、表示完了まで6~7秒もかかっています。
いろいろ試行錯誤中です。今回はキャッシュ系のプラグイン「WP Super Cache」を利用してみました。
測定に利用したのは、コチラのブックマークレットを利用させていただきました。
このページの目次
自宅サーバーのapache2側の準備
どうやらapache2のモジュール「Mod_Rewrite」「mod_headers」「mod_mine」「mod_deflate」「mod_expires」
が有効である必要がある模様。
apache2でロードされているモジュールを確認する
apache2ctl -M
モジュール一覧から判断して、mod_headers以外は有効になっていました。
mod_headersを有効にします。
a2enmod headers
/etc/init.d/apache2 restart
プラグインWP Super Cacheの導入
インストールと有効化
管理画面からプラグインを「WP Super Cache」で検索してインストール。
そして「有効化」、いつもの手順なので説明不要ですね。
設定
管理画面の「設定」-「WP Super Cache」を開きます。
大部分が日本語化されているのでわかりやすいです。
簡易タブ
今回は簡易タブでは、何も設定しません。
ここで「キャッシング利用」をクリックして更新するだけでも設定完了ですが、最速キャッシング設定は、詳細タブで設定するようなので、ここはスキップします。
詳細タブ
次に「詳細」タブを開きます。
項目数が多いので上の画像はチェックした項目だけ抜き出しています。
わかりずらいですが、
- (推奨)と書かれた部分を全部選択
- 最初からチェックが入ってる項目はそのまま
私は、これで設定しました。
チェックを入れたら「ステータスを更新」をクリックします。
更新されると、上のようなメッセージが出てきます。
画面の下の方に出ている↓
(略)
長い記述の最後の
(略)
「Mod_Rewriteルールを更新」をクリックすると、自動で.htaccessファイルを書き換えてくれます。便利ですね。
一応ちゃんと書き換えられたか確認するには、WordPressをインストールしたフォルダのルート(直下)にある.htaccessと、「wp-content」-「cache」フォルダ直下にある.htaccessをチェックします。
Cache Timeoutは「3600」秒にしました。
上のキャプチャは、このあとPRELOAD MODEを有効にしたので、ここの項目は無視されるといってるらしいWarningが出ています。
その下にある「有効時間を変更」をクリックします。
プリロード_タブ
こんなところに、このプラグインの肝となる項目があります。
プリロードモード(推奨)にチェックを入れて「設定を更新」します。
このページキャッシュが効いてくれることを願います。
デバッグ_タブ
「デバッグ」タブを開き
Cache Status Messagesの「使用中」のチェックを外します。
これは、各ページにどんだけこのプラグインが仕事してるか主張してくれるという機能みたいですが、、、遠慮させていただきました。
以上で初期設定は完了です。
キャッシュプリロードをすぐに実行
プリロード_タブに戻り、
「キャッシュプリロードをすぐに実行」をクリックします。
投稿数により、時間がかかるかもしれません、当サイトはこのとき30ページくらいしかなかったので、5分くらいで完了しました。
「設定を更新」をクリックすると進行状況が確認できました。
動作確認
- コンテンツ_タブを開き
- 「キャッシュ状況データを再生成」をクリック
- キャッシュページ数が増えていればOK
- WordPressフォルダの「wp-content」-「cache」-「supercache」内にサイト名のフォルダ下に各ページのキャッシュファイルが作成されているはずです。
私の場合、キャッシュページ数がいつまでも「0」のまま、cacheフォルダに「supercache」フォルダが作成されずに途方に暮れましたが、切り分け切り分けしていくとなぜかWordPressの子テーマのfooter.phpの追記内容が悪さをしていたようで、footer.phpを親テーマのまま利用したらキャッシュページ数が増えていきました。原因はわかりましたが、理由はわかりません。
動作テスト
画像多めのページを開き、3回リロード後の表示時間を図りました。
WordPressにログイン中はキャッシュが効かないプラグインの性質を利用します。
1.ページキャッシュなしの場合(管理画面にログイン中)
7.08秒、あいかわらず遅いです。
2.ページキャッシュありの場合(管理画面からログオフ後)
2.52秒、すごい効果です。
感想
これを入れると入れないでは大違いなので必須の定番プラグインですね。
投稿を更新したときや、バージョンアップ時にキャッシュの事を気にしなくてはいけませんが、手間以上の効果があるので手放せないですね。
キャッシュ系のプラグインは難しいですが、このWP Super Cachehaは設定していて、なんとなく仕組みを理解できながら進められたのでよかったです。
競合の「W3 Total Cache」を設定したときは、ワケモワカラズという感じでストレスを感じましたが、キャッシュ系プラグインはひとつづつ個別に設定したほうが私には向いてると思いました。