キャッシュ処理が何故必要かをあらためて勉強してみるとWordPressの標準の仕様では、Webページにアクセスがあると、毎回動的にページを生成するがアクセス数が増えると、それがページ表示が遅くなる原因になるようです。
今回はキャッシュを取り上げました。キャッシュには
- トータルキャッシュ(2-7まで)W3 Total Cache
- オブジェクト・キャッシュ Wp File Cache + MO Cache , Tribe Object Cache
- データベース・キャッシュ DB Cache Reloaded Fix
- ページ・キャッシュ Wp Super Cache または Quick Cache
- リソース・キャッシュ Wp Minify
- プロキシ・キャッシュ
- ブラウザ・キャッシュ
がありました。それぞれのプラグインはあまたありましたが、このブログに適応できるものを探してみてテストしたところ大変苦戦してしまいました。特にW3 TCとQuick CacheとWp Super Cacheとの相性が問題でした。その組み合わせを考えてみました。また、
W3 Total Cacheをプラグインすると起動時が重く,表示されるのが極端に遅いのにGTmetrixでテストすると良いという問題がわかりません。
結局、Wp Super CacheとTribe Object Cacheのみをプラグインしましたところ前より抜群の成績でした.なお、Wp Super cacheとW3 Total Cacheの脆弱性は免れません。
Wp super Cacheのプラグインが優れている点
- キャッシュ処理を利用してWebサイトのページ表示を高速化できる。
- キャッシュ処理は、管理画面で変更可能です。Mod_Rewrite、PHP、レガシーなページキャッシングに対応している。
- プラグインの管理画面は、日本語化されているので分かりやすい。
WP Super Cacheを利用すると、毎回負荷のかかる処理は行わずに、以前生成したキャッシュを利用してページを表示します。そうすることで、ページ表示が高速化できます。
Quick Cache
今回のバージョンアップで「有料版(15ドル)」と「無料版(LITE)」に分かれることになった。
・MD5 Version Salt ・URI/リファラ/UA等のパターンを使用したキャッシュ除外設定 ・管理バーのキャッシュクリアボタン
が有料版専用の機能とされてしまったため、無料版では使えなくなってしまった。
テストツールは以下のWebを参考にしました。
- GTmetrix http://gtmetrix.com/
- Pingdom http://tools.pingdom.com/fpt/
- Webpagetest http://www.webpagetest.org/
- Webwait http://webwait.com/
ほかにChromeを起動して[CTRL+SHIFT+I]を押すとデベロッパー・ツール画面が開き、ツール画面に[NETWORK]というタブがあるのでクリックし、ブラウザから計算したいサイトを表示するとページを構成する項目ごとのロード時間と最後にページロードに要した時間をグラフ化して表示してくれます。
また、WordPressでは[Debug Bar]と[Debug -Bar-Extender]をプラグインしてWordPressの動作をチェックする方法があります。計測したいページをロードしてこのdebug Barボタンを押すとさまざまなベンチマークを行った結果を表示してくれます。http://knowledge.sakura.ad.jp/tech/283/ 参考になります。
GoogleのDevelopersでもMake the Web Faster http://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fjh3qil.com%2Fwordpress%2F にアクセスすると診断してくれることがわかった。
結局下記で決着した。
WordPressの高速化(W3 Total Cache)
QuickCache |
ページ表示毎にDBにアクセスしに行くのをやめて、自動的に作成されたキャッシュを参照しに行くようにしてくれる。 |
W3 Total Cacheとの関係で無理
|
× |
W3 Total Cache |
総合的なキャッシュ機能(ブラウザの機能を使ったキャッシュ、ページ単位の静的キャッシュ、オブジェクトキャッシュ、データベースキャッシュ)、CSSやJS,HTMLなどの圧縮、CDNとの連携をトータルで提供する超高機能なプラグインです。 |
|
○ |
MO Cache |
7割も読み込みのリソースを奪う翻訳ファイル「moファイル」。このファイルをキャッシュし、次にアクセスされたときはそれを使いまわすので早い。 |
Wp File Cacheとの組み合わせとなると |
○ |
Lazy Load |
文章中に画像を入れると読み込み速度は低下するけど、入れないわけにもいけない。このプラグインは画像が閲覧者の画面内に表示された後に、画像を読み込む。 |
|
○ |
WP Super Cache |
劇的に早くなったのがこれ。このプラグインはエラーが出やすいということでしたが、現在は改良されているので問題なく動作。 WordPressがページ表示のために吐き出す処理をすべてキャッシュ(http/php/MySQL/php/レスポンス)するので随分早く表示されるように。 |
W3 Total Cacheとの関係で無理 |
× |
DB Cache Reloaded Fix |
データベースをキャッシュし管理画面すら軽くしてくれる。プラグインや記事が増えてくると、WordPressの管理画面がドンドン重くなります。効率化のために必須のプラグイン。 |
W3 Total Cacheとの関係で無理 |
× |
Wp File Cache |
データベースへのクエリを減らすプラグイン。上で紹介したMOCacheと一緒にインストールすることで効果を発揮。 |
W3 Total Cacheとの関係で無理 |
× |
Head Cleaner |
複数のCSSとJSを整理し順番を最適化したり、JavaScriptをフッターに移動させるプラグイン。チェックするだけで使えるので簡単。 |
エラー発生、圧縮が上手くいかずにレイアウト崩れを起こす |
× |
WP Minify |
複数のCSSやJavascriptファイルを1つにまとめて圧縮、軽量化する。以下のサイトはトラブルが生じたときの対処方法なども書かれている。 |
W3 Total Cacheとの組み合わせではMinify の機能を無効 |
○ |
WP Widget Cache |
ウィジェットまでもキャッシュしてしまおうというプラグイン。有効化した後に、時間を3000くらいに設定してみよう。 |
あまり変化せず |
|
WP Hyper Response |
WordPressサイト及び管理画面のヘッダ(CSSファイルを読み込んだ直後)にPHPの flush() 関数を実行するらしいです。 |
|
○ |
Cloud Flare |
CloudFlareを使って高速化する方法 |
今回はAWSを使う |
○ |
AmazonWeb Service(AWS) |
ブログの高速化に役立つAWS(アマゾンウェブサービス)のCDNである |
|
○ |
Mod_pagespeed |
面倒な高速化処理を自動化させるモジュール。サーバーにインストールするだけで、あとは設定ファイルをちょちょっといじれば、どんなサイトでも高速化出来る。 |
難しい |
|
.htacess |
コンテンツの圧縮転送、画像のキャッシュ設定など |
|
○ |
Akamai |
Geekなぺーじ:みんなが知らずに使ってるAkamaiによると、「Web閲覧の高速化とWebサーバの負荷軽減を実現するソリューションを世界的に提供している」会社とのこと。回線強化というか導入している会社は多いみたいです。 |
難しい |
|
Asynchronous Javascript |
テーマによって要注意だが、非同期読み込みでレンダリングブロックJavascriptを排除 |
テーマによってエラー |
○ |
EWWW Image Optimizer |
設定の「Remove JPG metadata」にチェック |
「DB Cache Reloaded Fix」はエラーが出た |
○ |
Remove Query String from static resources |
クエリーのバージョンが削除されます。これでGTMetrixの「Remove query strings from static resources」は100点になります。 |
エラーあり注意! |
× |
Resize At Upload Plus |
簡単に画像をリサイズしてくれる。 アップロードする前に「最大横幅」と「最大縦幅(高さ)」を指定するだけ。 |
|
○ |
001 prime strategy translatebaccelerator |
日本語翻訳ファイルをキャッシュして高速化するプラグインです。 |
Mo cacheのいずれかと比較 |
○ |
Trib Object Cache |
データベースとのやりとりをキャッシュしてクエリ数を軽減する効果が期待できます。 記事数が増えれば増えるほど管理画面も重くなってくる。高速化には役立つんですが、その分サーバー負荷も掛かるので、使用しているサーバーのスペックに注意が必要です。 |
W3 Total Cacheとの関係で無理 |
× |
WP-HTML -Compression |
Minifyと付くプラグインの一種です このプラグインはHTMLのみを圧縮してくれて、HTMLの容量を下げることが出来ます。有名どころの WP minifyと比べるとこちらの方がHTMLの圧縮率が高いです 他のプラグインが出力する内容は圧縮できなところがありますが、HTMLの全て改行とコメントアウトとスペースを取り除いてくれます。WP minifyでは改行の部分が上手く圧縮できてなかった部分をこのプラグインはやってくれます。 |
|
○ |
WP Deferred Javascript |
Javascriptを遅延ロードする |
採用しても変化なし |
○ |
APC |
APCとは スクリプトを実行する前に中間形式にコンパイルし、それを実行します。このコンパイルは、スクリプトにアクセスがあるたびに毎回実行されます。同じファイルをコンパイルしてできる中間形式は常に同じであるため、毎回行うことは無駄です。 APCを利用することで、この無駄をなくし、Webサーバのパフォーマンスを向上させることができます。 |
難しい |
|
APC Object Cache Backend |
object-cache.phpをwp-content直下に配置するだけだ。 ここまで終わった所で、WordPress管理画面の「プラグイン」から、Trible Object Cacheを有効化させる。 |
難しい |
|
Auto Post Thumbnail |
記事のアイキャッチ画像を一括登録することができ、記事内の一番最初の画像を自動的に取得してアイキャッチ画像を生成してくれるプラグイン |