できるだけ早く、コンテンツを表示させるためにキャッシュ系プラグインをいろいろ試しています。
WP Super Cacheは、WordPressの標準機能とまでは行きませんが公式のWordPress補スティングサイト「WordPress.com」を運営しているAutomatticが開発しているプラグインです。
よく紹介されているW3 Total Cacheも試したのですが、設定が多すぎて挙動不審なのでイマイチ好きになれず、WP Super Cacheを使うことにしました。
WP Super CacheとW3 Total Cacheの守備範囲
ごちゃごちゃに扱われることがよくあるWP Super CacheとW3 Total Cacheですが、立ち位置はかなり違います。
W3 Total Cacheは「Total」(=総合)と名づけられている通り、一つでいろいろこなそうとしているプラグインで、その分他のプラグインとの競合や不具合も出やすく設定項目も複雑です。
WP Super Cacheはその点、ページキャッシュに特化しています。
少し古い(2010年)ですが分かりやすい図を載せてくださっているブログがありました。
そこでいろいろ比較をされていますが、自宅サーバーで試しておられて、キャッシュを使っても使わなくても、違いは0.1秒とかそのくらいしかありません。
W3 Total Cache….失敗した
W3 Total Cacheではブラウザにキャッシュさせたりする設定まで全部やってくれたり、JS/CSSの最小化もまとめてくれるようです。上手く動作すれば良いですが、レスポンシブデザインを使っている場合などに不具合が結構出るようです。
ここのサイトでも、入れてみたら何かおかしかったので、やめました。
調べていたら、どうもここでも使わせて頂いているテンプレートのSimplicityと相性が悪いようです。テンプレートで動かなくなるようだとちょっと辛いです。
重たかったサイトがW3 Total Cacheでページ読み込み速度を改善できた((旧)URAKOTABlog)
共存させるために設定をされている記事がありました。が、結論は「ブラウザキャッシュ機能だけ使う」だったようです。
個人的に、ブラウザキャッシュはGoogle先生(Google PageSpeed)に文句を言われない程度に最低限にしようと思っているので、これだと使うのは無意味です。ブラウザキャッシュだけなら、.htaccess(かサーバー管理画面)で設定するほうが好みです。
多くの人が使っている拡張のjQueryとかBootstrap、Font AwesomeをGoogleライブラリなどのCDNから読むのでなければ、ブラウザキャッシュなんてほとんどの人にはタダのゴミだと思っています。
サイトの更新をする本人にはサイトが速く感じますが、一見さんにはメリットが大きくありません。
WP Super Cache
WP Super Cacheは、少し前に記事にしたZenCacheと近いです。大きな違いは、ZenCacheではキャッシュの管理が発達していて高機能・・・なのでサーバー負荷が大きい点です。
ZenCacheは本当に高機能なので、アクセスがとても多いサイトだったら、有料版にして使うとすごく良さそうです。(WP Super Cacheでも、キャッシュプリロードを使えば近いかもしれません)
ここのサイトのようなブログでは、WP Super Cacheでもほとんど無駄なレベルです。
キャッシュの仕組み
標準の設定で使う場合、ページが読まれるとWP Super Cacheがキャッシュを生成します。キャッシュの有効期限内に再度アクセスがあると、そのキャッシュファイルから読まれます。
ただし、キャッシュファイル自体がPHPファイルで、依然実行される必要があります。
GTmetrixでサイトトップを測定してみると、
SuperCacheあり(PHPモード)
SuperCacheなし
解釈が正しいのかちょっと分からないのですが、CloudFlareのサーバーを介しているのに受信を待っている時間は0.3秒しかありません。キャッシュを有効にした場合、これが0.12秒になっているので、0.18秒短縮されているかもしれません。(ページのロード時間全体は延びている)
GTMetrixは、測定自体にキャッシュが効いているのか、結構時間がぶれるので、誤差範囲です。
零細ブログでは効果は小さい
他のところでも見かけたことがありますが、「零細ブログにはほとんど意味がない」これに尽きると思います。
PHP/MySQLの動作がすごく遅いサーバーだともう少し効果が大きく出ると思いますが、特にMySQLは同時接続数に制限があって、レンタルサーバーの場合、10-25(普通20?)くらいです。
これを超えてしまうと、待たされます。
ここのサイトの場合、0.3秒の間ずっとMySQLに接続していたとしても、同時接続制限20に引っかかるためには、1秒間に最高60回の新規アクセスを受ける必要があります。1分で3600ページビュー、大きくバズらないと達成できません。(もっと必要だと思います)
それよりは、画像やCSS/JSへのアクセスが増えて帯域を使い切ったり、サーバーのPHPが止まってしまうほうが起こりそうです・・。
まだ見ぬBUZZに向けて・・・
ということで、このブログではWP Super Cacheは有効にしてありますが、気分の問題程度です。どちらかというと、CloudFlareのほうが高速化効果は高いと思います。
バズったら(そういう記事はたぶん書かない&書けないと思いますが)、その瞬間のアクセスを少しでも捌くために、WP Super Cacheが活躍する日が、来る、かも知れません。
WP Super CacheはZenCacheと違って、CPUロードも少ない(ような気がします)ですし、入れておくと少し効果があります。プラグインを大量に入れている人や、MySQLサーバーが遅い人、には効果が大きくなると思います。入れておいて損はないプラグインだと思います。
コメント