WordPress のキャッシュ系プラグインを整理しました

キャッシュ系対策の整理

年末に近づいてきたので、ここらでプラグインの整理・点検を行うことにしました。2年以上更新のないプラグインを削除し、定期的に更新されている、信頼のの置けるプラグインを最小限にするようにしています。

キャッシュ系プラグインは、不具合の発生する原因になりやすいですから、いくつか変更しました。

いままでのキャシュ系対策

いままでやっていたキャシュ系対策は以下の通り。

  • WP Super Cache」:ページ・キャッシュ
  • Autopotimize」: HTML・CSS・JavaScript の連結・圧縮・キャシュ
  • DB Cache Reloaded Fix」:データベースのキャッシュ
  • 001 Prime Strategy Translate Accelerator」:翻訳ファイルのキャッシュ
  • .htaccess」ファイル:ブラウザのキャッシュ

とくにプラグインの機能を理解していたわけではなく、なんとなく、書籍や有名サイトで紹介されていたので、導入していました。

新しく整理したキャシュ系対策

今回、プラグインを見直して、点検・整理した結果、残ったプラグインは2つです。

  • W3 Total Cache」: ページキャッシュ、ブラウザのキャッシュ、データベース・キャッシュ、オブジェクト・キャッシュ
  • Autopotimize」: HTML・CSS・JavaScript の連結・圧縮・キャシュ

以上です。思ったより、簡素な構成になりました。

今回の変更点

基本方針は「よくわからないプラグインは人気だからといって簡単には使わない」にしました。それぞれのプラグインが何をやってくれて、どれだけの効果と限界があるのかを考えた上で、最低限に絞る、というのが目標です。

以下、ひとつずつ、簡単に書いていきます。

キャッシュ系プラグインには「WP Super Cache」がいちばんのおすすめ

個人的には WordPress を利用する場合には「WP Super Cache」が最もおすすめできるキャシュ系プラグインだと考えています。

WordPress › WP Super Cache « WordPress Plugins

理由は、WordPress.org /WordPress .com を運営している Automatic 社が開発・提供をしているから、というのが大きいです。ちゃんと定期的に更新されています。WordPress 本体を作っているところが開発しているプラグインなので、互換性の問題をとくに気にすることなく利用できて安心です。

以前は、いろいろと不具合もあったらしいですね。

WordPress › フォーラム » タグ — WP Super Cache

ほんとうは怖いWP Super Cacheの話 | 高橋文樹.com (2012 年9月24日公開)

最近でもこんな話題が。

ちょっと待て!素人がWordPressのキャッシュ系プラグインをわけわからずに使うと悲惨な目に遭うぞ! | ENJILOG (最終更新日:2014年5月4日)

ただし、この話には続きがあって

WordPressの「キャッシュプラグイン」に関するプロフェッショナルな方々のTwitter話が為になりすぎる | ENJILOG

で、プロの方々のツイートでは「不具合の原因は WP Super Cache ではなく他にあったようだ」と考えられています。たしかに、キャシュ系プラグインをわからずにあれこれと試していたら、こんなことは起こっちゃうよなー、と思います。

しかも、わたしを含め素人だと、くわしい知識や技術がないですから、キャシュ系プラグインがやっていることを何となくでしか理解できてなくて、不具合が起きたときに正しく原因を特定できなかったりしますしね。

とりあえず、使ったことないのでよくわからないけどキャシュ系プラグインを導入したい、する必要が出てきた、というのであれば、わたしは「WP Super Cache」を推します。おすすめな理由はこちらのサイトがわかりやすいかもしれません。

WordCamp Kobe 2013の「ウェブディレクターのためのWordPressサイト運用事例」の補足説明などなど。 | Firegoby

ここは大事なことなので引用しておきます。

キャッシュ系プラグインとは以下のようにお付き合いしていくことを強くおすすめします。

  • アップデートはこまめに行うこと!
  • あれこれ試さない!(有名なプラグイン以外は使わない!)
  • よくわからない機能を有効化しない!(自爆ボタンが含まれてるぐらいに思っといたほうがいいです。笑)
  • キャッシュファイルがどこに、どんな内容で保存されてるか把握しましょう!

まあ、はじめは使い方がむずかしく感じられますが、基本的に「推奨」の設定にしておいてかまいません。人気プラグインのひとつなので、使い方を解説するサイトや書籍も多くあります。

「W3 Total Cache」に変更した理由

じゃあ、どうしてこのプラグインをやめにして「W3 Total Cache」に乗り換えたかというと、「キャッシュ系プラグインの役割がわかってきたのでもう少し詳細な設定を自分でやりたいと思ったから」という理由です。

キャシュする項目ごとにプラグインを入れていくこともできますが、できるだけプラグインは少なくしておきたいところです。「それならひとつで全体を設定できるW3 Total Cache でいいじゃないか」ということで、こちらに落ち着きました。

ただし、設定項目は多少の知識が要りますし、英語です。ひとつひとつの項目を設定するのに、いろいろ調べる必要がありました。こういうことを調べてやってみるのが好きなので、することにした次第です。

でも、やっぱり難易度でいうと「WP Super Cache」の方が遥かに低いですね。先ほどのリンク先もそう書いておられます。

W3 Total Cacheは機能が豊富で、多様な機能を環境にうまく組み合わせて設定すればWP Super Cacheよりも高速化が可能なんですが、それを実現するには本をかけちゃうぐらいの専門知識が必要なんですよね。

そんなわけで、簡単に効果が得られるという意味では、WP Super Cacheは実際に簡単でしたし、効果も劇的です。

HTML・CSS・JavaScript などのキャッシュ

さて、つぎはサイトを構成するテーマに含まれる HTML・CSS・JavaScript といったファイルのキャシュについてです。

当ブログでは「Head Cleaner」は使えなかった

これは多くのサイトで「Head Cleaner」の名前がよく挙がります。

WordPress › Head Cleaner « WordPress Plugins

はじめは当ブログでも利用しようとおもったのですが、テーマや JavaScript などとの関係で、うまく行きませんでした。デザイン表示が崩れたり、ファイルの連結・圧縮をしてくれません。

設定方法などはバズ部(@BAZUBU)さんのこちらの記事が参考になります。

Head Cleaner の最も理想的な設定方法 – バズ部

「Autoptimize」がおすすめ

それで代替プラグインとして「Autoptimize」を利用しています。

WordPress › Autoptimize « WordPress Plugins

こちらは、連結・圧縮がうまくいかないときのオプション項目が付いていたり、キャッシュがうまくいかないときに「◯◯.css」でにするか「◯◯.php」で出力するかを変更できたりします。

これでうまくいきました。

「Autoptimize」:HTML・JavaScript・CSSを簡単に最適化してくれるプラグイン | かっぱのWordPress入門ブログ

ヘッダーを綺麗にするコード

「Head Clear」のメリットのひとつに、ヘッダー内を綺麗にしてセキュリティ上問題のある出力をさせない機能が付いています。これが目的で利用されている場合もあるでしょうが、以下のコードを functions.php に追加すれば可能です。

いろいろ書いていますので、サイトに合わせて削除・変更してください(とはいえ、この出力をなくしたからといって大きな効果があるわけではないようですが)。

データベースのキャッシュ

これは有名なプラグイン「DB Cache Reloaded Fix」を使っていましたが、すでに2年以上の更新がありません。ほかのプラグインや WordPress 本体との互換性の問題、そしてセキュリティ上の理由から利用することを止めにしました。

それに、アクセス数の少ないサイトであれば、このプラグインを入れたことで、逆にロードタイムが遅くなることがあります(ありました)。

こちらも現在は「W3 Total Cache」で設定しています。

翻訳ファイルのキャッシュ

これは「.mo」ファイルに関するキャシュです。WordPress の日本語化については以下のリンクなどで情報が公開されています。

日本語で WordPress – WordPress Codex 日本語版

とはいえプラグインの有り無しで効果を実感できないレベルでした。現在は、「よくわからないプラグインは人気だからといって簡単には使わない」という方針にしたので「001 Prime Strategy Translate Accelerator」の使用はやめています。1年以上更新がなく、WordPress 4.0 以上との互換性チェックも行われていないようですね。

また、「MO Cache」という有名プラグインもありますが、こちらも2年以上更新がないので利用していません。

ということで、こちらは何もしないことにしました。

ブラウザのキャッシュ

Apache のモジュール「mod_expires」についてですね。静的なファイルに有効期限を設定し、アクセスするブラウザのキャシュを利用する方法です。

mod_expires – Apache HTTP サーバ バージョン 2.4

ここは Google Developer Tools の「PageSpeed Insights」でもよく指摘される項目です。独自に設定するには「.htaccess」ファイルを作成し、FTPクライアントソフトでアップロードする作業が必要でした。

たとえば、wpX レンタルサーバーであれば公式ページから簡単に変更することもできますが、それでもいちいちログインして設定するのは多少めんどうでしょう。

「.htaccess」ファイルの書き方については、こちらのサイトがわかりやすく解説してくれています。

WordPressサイト用の.htaccess例 | dogmap.jp

キャシュ関連にかぎっていえば、以下を書いていました。

 

「W3 Total Cache」は、プラグインのメニューで設定した内容を「.htaccess」ファイルに書き込んでくれます。こちらも「.htaccess」ファイルを自分で書いてアップロードする作業がなくなりました。

サイト速度検証ツールの結果

と、いうように以上の理由からキャシュ系プラグインを

  • 「W3 Total Cache」
  • 「Autoptimize」

の2つだけにしちゃいました。いちおう、検証ツールでの結果を出しておきます。

【GTmetrix】

Latest Performance Report - 2014-12-02

GTmetrix | Website Speed and Performance Optimization

ギリギリ2秒台の2.99秒。まあまあですね。

【Website speed test – Pingdom】

Website speed test - 2014-12-02

Pingdom Website speed test

こちらはギリギリ1秒台に。

【PageSpeed Insights】

PageSpeed Insights - 2014-12-02

PageSpeed Insights – Google Developers

パソコンが 91 点です。「修正を考慮」と指摘されているのは、すべて Google AdSense 関連になります。キャシュ系プラグインの効果でいえば、うまく機能していました。

モバイルはかなり低い点数でしたが、原因は画像の最適化がうまく行ってないことでした。キャシュとは別のことになります。これから年末までには対策をしていきたいところです。

おすすめの組み合わせ

キャッシュ系プラグインについては、いろんな組み合わせがあると思いますが、個人的には「信頼が置けて人気のプラグインをできるだけ少ない数で済ませるのがいい」と考えています。

たとえば、あまりよく分からないのであれば、つぎの組み合わせがおすすめです。

「WP Super Cache」でページキャッシュを行い、ブラウザのキャッシュは「.htaccess」ファイルに記述します。データベースや翻訳ファイルのキャシュについては特にやらなくてもいい、というところです。

あくまで素人の考えにすぎませんが、それでも十分に高速化につながりますし、何よりプラグインをむやみに増やさないことで、不具合発生の可能性を低くできます。Automatic 社製のプラグインを使うので互換性の問題もありません。

キャシュ系プラグインは、サイトに最適な組み合わせをさがすのが難しいですから、プラグイン同士が影響しあって、管理画面に入れなくなったり、デザインが崩れたり、逆にロードタイムが遅くなることもあります。

わたしとしては「これくらいでいいんじゃないのかなあ…」と最近は思っています。

サイト高速化のためにはキャシュ以外にやることがたくさんある

むしろ、これ以上キャシュ関係で何かをするくらいなら、まず他にやるべきことがたくさんあるように感じます。

たとえば、画像ファイルをサイトに合わせてリサイズ・圧縮したり、JavaScript ファイルの連結・圧縮をすることは基本です。CSS はスプライト画像の利用や連結・圧縮をすることもできますね。

Apache の設定でいえば、「mod_deflate」による圧縮転送ができるならやればいいし、最近エックスサーバー社でワンクリックでできるようになった「mod_pegespeed設定」を利用するのもおすすめです。

エックスサーバー社で Apache の拡張モジュール「mod_pagespeed設定」がワンクリックで出来るようになった | WordPress & Lifelog

くわしいことはGoogle Developers の以下の項目を基準にしながらやっていくのがいいと思います。

速度に関するルール

  • リンク先ページでリダイレクトを使用しない
  • 圧縮を有効にする
  • サーバーの応答時間を改善する
  • ブラウザのキャッシュを活用する
  • リソースを圧縮する
  • 画像を最適化する
  • CSS の配信を最適化する
  • 見える範囲のコンテンツを優先する
  • レンダリングを妨げる JavaScript を削除する
  • 非同期スクリプトを使用する

操作性に関するルール

  • プラグインを使用しなビューポートを設定する
  • コンテンツのサイズをビューポートに合わせる
  • タップ ターゲットのサイズを適切に調整する
  • 読みやすいフォント サイズを使用する

PageSpeed Insights のルール – PageSpeed Insights — Google Developers より)

こうやって一覧にすると、できることって、けっこうありますよね。

さいごに

とりあえず、今回改めて思ったのは、「キャシュ系プラグインを利用したくなったなら、まずは WP Super Cache だ」ということです。初めて使うならなおさらです。そして次に、キャシュ系対策以外のことを優先してやるほうがいい、ということです。

上記のことを全部やって、キャッシュについての多少の知識と技術が得られたなら「W3 Total Cache」に乗り換えてもいいかなと思いました。

関連記事

「PuSHPress」:インストールして有効化するだけで投稿記事を検索エンジンに素早くインデックスさせるプラグイン

「PuSHPress」はインストールして有効化するだけで、素早くGoogleの検索エンジンにインデックスさせるWordPressプラグインです。新しい記事を投稿したときなどに、こちらから更新情報を通知するので、検索エンジンへの反映が数分から…