最強にWordPressを高速化するために必須なこと


WordPressでのメディア運営を幾つかしていくにあたって、Wordpressの高速化の基本的な部分が把握できたので共有します。Wordpress高速化というと当たり前のことかもしれないけど、勘所が幾つかあるので、チェックリスト形式でまとめたいと思います。

ターゲットとしては10万PVを超えたあたりから200万PVまでくらいのレンジの中間地点。それ以上となると媒体として明確に分散をする必要も出てきますが、基本は同じだと思います。

高速化を確かめるために全てのファイルを読み終わる時間をブラウザの開発者ツールで計測すること、Googleが提供しているPageSpeed Insightsを利用することは忘れずに使いたいところです。

1) APC/OPCACHEなどのPHP高速化

レンタルサーバなどサーバによっては導入できないかもしれないけれども、APC/OPCACHEなどのPHP最適化は何にせよ重要。HTMLファイル自体のレスポンスタイムが半分以下になることも多いです。

必ず導入しているかどうかをチェックすべき内容であり、もし導入していないとするとレスポンスタイムにして0.5秒程度ロスしておりサーバのパフォーマンスを大きく下げていると考えたほうがいいでしょう。レンタルサーバなどの場合は導入できない場合もありますが、その場合は移転を含めて検討してもいい内容です。

2) W3 TOTAL CACHE などのキャッシュプラグイン導入

ここが高速化にとっては肝になります。何度も高速化を試してきた結果、僕としてはキャッシュプラグインはW3 TOTAL CACHE1択です。WP SUPER CACHEが有名ですが、プラグインを入れた後の相性の悪さ、キャッシュレベルのコントロールができないところなどで、大きくW3 TOTAL CACHEに水をあけられている状況です。

W3 TOTAL CACHEはページのキャッシュだけでなく、クエリキャッシュ/HTML・CSS・JSコード最小化/ブラウザキャッシュ設定/CDN設定(後述)もできる有能なキャッシュプラグインです。ページのキャッシュをすることが問題でもブラウザキャッシュとクエリキャッシュ、CDN設定だけならどんな構成でも導入しやすく手っ取り早く高速化ができます。

3) HTML・CSS・コード最小化(minify)

上記 W3 TOTAL CACHEの1機能として実現できますが、HTMLコードを最小化するというのも一つの高速化の選択肢になります。Googleが提供しているPageSpeed Insights を確認するとHTML/CSS/JSの最小化も一つの提案に出てきます。

この手の話に対して、W3 TOTAL CACHEで提供されている最小化などの機能を利用することは非常に悩ましいことです。なぜなら最小化を動的にすることはサーバのレスポンススピードを劇的に下げる可能性があるからです。最小化をかけるために毎回キャッシュがなければ最小化をするプログラムに渡すことは非常に非効率です。

ということでやるのであればCSS/JSファイルをアップロード前に圧縮をかけ、一つのファイルにまとめるgulp/gruntなどのツールを利用して手間がかかっても毎回最適化を行うことをオススメします。私見としてはここによる効率化をするよりは他の事を優先したほうが良いと思います。

4) キャッシュプラグインの保管先をMemcachedに

特に数十万PVを越すサーバ運営においてはmemcachedの活用が肝になります。どのキャッシュプラグインも基本的にはファイルとしてサーバにキャッシュデータを保管します。しかし、ファイルアクセスは1リクエスト毎の負荷を高めサーバ自体の機能低下を引き起こしてしまいます。「CPUやメモリは余っているのに何故か重い」というのはファイルアクセスが起因する場合が多いのです。

その点Memcachedなどは非常に優秀な選択肢です。100万PVを越してきたくらいから、Memcachedを利用することで高速化や負荷を下げることのメリットが出てきます。今の時代ですから、AWSのElastic CacheなどのMemcachedを自動で立ち上げてくれるサービスなどを活用するとよいでしょう。

5) 外部CDNの利用

ページが重い、という印象を生んでいる場合原因の多くは画像やCSS・JSなどのページ以外で読み込まれるコンテンツが引き起こしていることが多いです。HTMLファイルが基本1個しか読み込まれないのに対し、CSS・JS・画像などは50〜100個程度読み込まれることがありスピードの影響が露骨に出る部分です。

ここではCDN(コンテンツ配信ネットワーク)を活用すべきです。CDNとは画像・CSS・JSなどの変わらないコンテンツを高速に配信する仕組みで昨今では世界各地に配信元を配置し世界規模で最適化をするようなCDNが普及し始めてます。

CDNの中でもWordpressを活用するならば「PULL型のCDN活用」をすることが最もオススメです。PULL型とはサーバ自体に実際のコンテンツは保管されており、CDN側から同じURLのファイル名のコンテンツを取得しに行きそれを表示するタイプのCDNです。PULL型のCDNを使うことでサーバの記事を書く側としては単純にWordpressに画像などをアップロードして表示をするだけでCDNによって高速化が出来ます。

特に問題がなければCloudfrontなどの仕組みを使うとよいでしょう。CDNの勘所は改めてまとめます。

6) 画像の最適化

続いてやるべきことは画像のサイズの最適化です。Wordpressにかぎらずブログでは記事一覧、新着記事一覧、記事詳細ページ、TOPページ、スマートフォン向けページなどで様々なサイズの画像を利用します。Wordpressで重要なのがこの多くの画像を最適化する作業です。

具体的な作業内容としてはLIGさんのこちらの記事を参照いただければと思います。

画像サイズを最適化することで適切な圧縮がかかり、それによってスピードも向上することになります。特にスマートフォンなどの機能や通信が制約された環境下では大きなパフォーマンスを発揮します。

まとめ

WordPressを最適化するのは迷う部分ですが、勘所さえ抑えれば高速なサイトが簡単に作ることが出来ます。これ以上のアクセス急増に対してはサーバの分散などの構成を作る必要がありますが、ある程度のサイトを高速化していこうと考えるとこれで十分かと思います。

Comments

comments

shota

1984年秋田生まれ。株式会社グルーヴィーメディア代表取締役。エンジニアと経営者の2つの顔を持ち、日々奮闘しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>