wp performance optimization

13
WordPressのパフォーマンス改善 ~ホスティングの状況に応じた改善手法のアレとかコレとか~ WordPress Performance Optimization for Beginners

Upload: masaaki-komori

Post on 06-May-2015

2.048 views

Category:

Technology


0 download

DESCRIPTION

WordPressのパフォーマンス改善について

TRANSCRIPT

Page 1: WP Performance Optimization

WordPressのパフォーマンス改善~ホスティングの状況に応じた改善手法のアレとかコレとか~

WordPress Performance Optimization for Beginners

Page 2: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

まず、WordPressの配信の仕組みをおさらいしておきましょう

Webサーバで何が起こっているのか

• MovableTypeなどと異なり、静的なHTMLを配信する仕組みではない

• ブラウザからのリクエストによって、それに応じたテンプレート中のPHPが実行される

• データを格納しているデータベースへ接続• HTMLを生成して、Webブラウザに送り返す

Page 3: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

Apache + PHP、MySQLの関係図はこんな感じになっている

その流れを図解してみると…

Page 4: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

ホスティングの環境やサイト構築の仕方次第でパフォーマンスが悪くなることも

状況次第で重くなってしまうことも・・・

• チューニングされていないホスティングだったり• ベストエフォート型で回線自体が貧弱だったり• マシンパワーがそもそも非力だったり• プラグインを大量に使ってサイト構築していたり• テンプレート設計で余計なことをしていたり

とまぁ、いろんなことが絡んで重く感じてしまう

Page 5: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

オンラインサービスやWebブラウザのプラグインで自サイトの現状を把握する

とりあえず、現状を把握してみよう

• Pagetest(www.webpagetest.org)• Load Impact(loadimpact.com/pageanalyzer)※同時接続数50クライアントまで負荷チェックも可能

• Firebug + YSlow!、Firebug + Page Speed• Safari、Google ChromeのWebインスペクタ

Page 6: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

バックエンドのPHPとDBの処理なのか、フロントエンドの構造なのか

ボトルネックがどこなのかを判断する

Page 7: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

まずは、自分のホスティング環境がどういう状態か確認

パフォーマンスの改善に入る前に

1. システム管理まで可能なVPSやDelegated Server?

2. Webサーバのモジュールが比較的自由に利用できる?

3. 上の2つのいずれも不可能…

Page 8: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

環境にあわせて、できる対応策を適用していく

パフォーマンスを改善するには?

1. システム管理まで可能なVPSやDelegated Serverなら→バックエンドのPHPやSQLの処理速度を改善してみる

2. Webサーバのモジュールが比較的自由に利用できるなら→プラグインで静的なHTMLをキャッシュして配信する(可能ならgzip化)

3. 上の2つのいずれにも当てはまらないなら→head要素内のコンテンツを整理(JS/CSSの結合など)→プラグインによる画像の最適化→その他のパフォーマンス最適化の手法の適用

Page 9: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

APCやeAccelerator、xCache、memcacheなどを導入してみる

1. PHPそのものの処理速度をあげる

• 実行されたPHPスクリプトのデータをキャッシュさせる

• 代表的なPHPアクセラレータ→APC(Alternative PHP Cache)→eAccelerator→xCache→memcache などなど※WordPressのキャッシュプラグインとも併用可能

• インストール後、環境にあわせて設定変更

Page 10: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

mod_rewrite、mod_expire、mod_gzip(mod_deflate)が使える環境なら

2. Webサーバのモジュールが利用できる

• 「WP Super Cache」や「W3 Total Cache」の導入→mod_rewrite、mod_expire、mod_gzip(mod_deflate)

※キャッシュしたからといってすべての環境で効果があるわけではない。 HTMLの設計次第ではほとんど効果のないこともある

• 可能ならテキストデータをgzipで符号化しておく→mod_gzip(mod_deflate)※上記プラグインでも設定可能。転送データ量が約1/3~1/2に減少

• ついでに画像やJavaScript、CSSなどに有効期限を設定→mod_expire

Page 11: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

書き出されるHTMLのhead要素内を最適化したり、テンプレートを改善する

3. ここまでの方法が採れない場合

• 使っているプラグインの数を減らしてみる→場合によっては、それがパフォーマンス低下の原因かも

• HTMLのhead要素内を見直してみよう→JavaScriptやCSSの結合、Minify化、挿入場所の変更→head cleanerプラグインなどの導入の検討

• サイト内で使用する画像を最適化してみよう→WP Smush.itプラグインの導入

• その他の表示パフォーマンスの最適化手法の導入→画像の配信ホストを分割するなど

Page 12: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

なんでもかんでもプラグインで解決できるわけではなく…

というわけで、まとめると

• まずは、現状をしっかり把握

• 何でもできるなら、PHPの処理速度を改善してみる

• モジュールが使えるなら、静的なHTMLを配信する

• いずれも無理なら、HTMLの構造変更や画像最適化

できることから始めましょう

Page 13: WP Performance Optimization

Komori, Masaaki: WordPress Performance Optimization for Beginners

作り手の都合だけでなく、見る人に優しいサイト作りを

ありがとうございました