- サイトデザイン工事中です。ご意見をお寄せください。
- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
WordPress の最適化/キャッシング
この記事は WordPress の最適化シリーズの一部です。
キャッシングとは、使用頻度の高い出力データを保持しておくことによって高速なデータの参照を可能にする仕組みを指します。この保持されたデータはキャッシュ(Cache)と呼ばれます。
WordPress において、キャッシングはパフォーマンス改善への一番の早道といえます。
目次 |
キャッシングプラグイン
W3 Total Cache や WP Super Cache のようなプラグインは比較的簡単にインストールでき、WordPress の投稿や固定ページを静的ファイルとしてキャッシュしてくれます。これらのプラグインを使うと、サイトの読者に静的ファイルが送信され、サーバーへの負荷を減らすことができます。かなり静的なページな場合、何百倍ものパフォーマンスの改善が望めます。
ただし、投稿や固定ページに多くの動的コンテンツがある場合、キャッシングの設定はもう少し複雑になります。
ブラウザーキャッシング
ブラウザーキャッシングは、ページごとのリクエスト数を少なくすることでサーバーの負荷を軽減します。例えば、画像・CSS・JavaScript ファイルのようにあまり変更されないファイルに対し正しいファイルヘッダーを設定することで、ブラウザーがこれらのファイルを読者のパソコンにキャッシュできるようになります。このテクニックを使うと、ブラウザーは単にファイルをリクエストするだけではなく、そのファイルが変更されたかどうかチェックできようになります。結果として、サーバーはファイルを送信しなくてはならない200レスポンスの代わりに304レスポンスをより多く返すことになります。
Cache-Control HTTP ヘッダー(特に max-age)と Expires ヘッダー、Entity Tag(HTTP ETag)などについて調べてみてください。このページ下の関連リンクにもいくつか情報を掲載しています。
サーバーキャッシング
Web サーバーキャッシングはより高度ですが、非常に高トラフィックのサイトで使われており、ここでは書ききれないほどの幅広いオプションがあります。もっともシンプルなものはローカルサーバーキャッシングですが、より複雑なシステムでは実際に WordPress アプリケーションを動かしている Web サーバーの「前方」に複数のキャッシングサーバー(リバース・プロキシサーバー)を置くというような方法もあります。また、Alternative PHP Cache(APC)などのオペコードキャッシュを追加することで、PHP のパフォーマンスを何倍にも改善することができます。
こういったタイプのサーバー設定については、High Scalability サイトなどをご覧ください。
関連リンク
- HTTP Header Fields - Studying HTTP。Cache-Control・Expires などについての日本語の説明。
- HTTP Caching - Studying HTTP。Entity Tag の説明あり。
- Apache 2.2でWebサイトをパフォーマンスアップ! - @IT 記事。ドキュメントキャッシュについてなど。
- WIkipedia: HTTP ETag - Wikipedia 英語版。Entity Tag について。
最新英語版: WordPress Codex » WordPress_Optimization/Caching (最新版との差分)