W3 Total Cache 設定ガイド

General Settings|一般設定

W3 Total Cache(以下 W3TC)の General Settings メニューは、主要機能の有効化と基本設定をおこなうための全16セクションで構成されています(初期状態の場合)。

ページキャッシュやブラウザキャッシュなど、各機能の詳細設定についてはそれぞれ独立したメニューが用意されており、それらは、General Settingsでの有効化が前提となっています。つまり、General Settings で無効化すると詳細設定も合わせて無効化されます。

General

General(一般・全般)セクションでは、Preview mode(プレビューモード) のON/OFF を切り替えます。Enable をクリックして有効にすると、ログインしていないサイト閲覧者に対しては変更前の設定に基づくコンテンツが、ログイン中の管理者に対しては変更後の設定に基づくコンテンツが提供されます。

W3TCを新規に設定する際や、既に運用中のW3TCの設定を変更する場合は、プレビューモードを有効にしておき、設定後の動作を確認してからプレビューモードを無効化(=変更後の設定を展開)することで、設定ミスによって壊れたサイトが閲覧者に表示されるのを防ぎます。

プレビューモードを有効にすると、セクションの表示が以下のように変化します。

プレビューモード有効時の表示
プレビューモード有効時の表示
  • Disable
    プレビューモードでの変更内容を破棄してプレビューモードを終了します。

  • Deploy
    プレビューモードでの変更内容を有効化してプレビューモードを終了します。これにより設定後の変更に基づいたコンテンツが閲覧者に提供されます。

  • Preview
    プレビューモードでの変更内容が正しく機能しているかどうかを、実際のページで確認できます。

ブラウザでページのソースコードを表示すると、最下部にW3TCが挿入したコメントで プレビューモードかどうかを確認することができます。

Cloudflareの無料プランで Cache Everything のルールを適用してページをキャッシュしている場合、性質上、プレビューモードの表示内容がCloudflareにキャッシュされます。プレビューモード使用時は、Cache Everything のルールを一時的に無効化することをお勧めします。

Page Cache

Page Cache(ページキャッシュ)セクションでは、ページキャッシュのON/OFFの切り替えと、キャッシュファイルの保存方式を設定します。

WordPressはページを表示する際、毎回ブラウザが読み取るためのhtmlを動的に生成しています。ページキャッシュはWordPressによって一度生成された html を保存(キャッシュ)し、静的な状態にしておくことで、ページの表示速度(≒ブラウザがページの表示を開始するまでの速度)を高速化します。

  • Page Cache
    Enable にチェックを入れるとページキャッシュが有効になります。ページキャッシュは、Webサイトのパフォーマンスを向上させる最も効果的な方法の1つなので、ONにしておきましょう。

  • Page Cache Method
    共用レンタルサーバーでは、Disk:Basic もしくは Disk:Enhanced の2つから選択します。他の方式が選択可能になっている場合がありますが、共用レンタルサーバーでは過負荷の原因になるので選択しません。

Disk:Enhanced と Disk:Basic の違い

Page Cache Method は、通常 Disk:Enhanced を選択します。Disk:Enhanced では ページキャッシュがhtmlファイルとしてサーバー内のキャッシュフォルダに保存されます。

Disk:Basic は ページキャッシュがphpファイルとして保存されます。Disk:Enhanced よりもパフォーマンスの面で若干劣るとされていますが、より柔軟なキャッシュ制御が可能です。例えばレスポンスヘッダーをキャッシュできるので、http2 server Push 対応のレンタルサーバーや Cloudflare を利用している場合は選択する余地があります。

またDisk:Enhanced は、その性質上URLパラメーター付きのページをキャッシュできないので、WordPressのパーマリンク設定を「基本」にしている場合は、Disk:Basic を選択する必要があります。

Minify

Minify(ミニファイ)セクションでは、コード圧縮機能のON/OFFの切替えと、圧縮方式を設定します。

Minifyは、ページ閲覧者に配信されるHTML、CSS、JavaScriptコードの記述から余分な空白・改行・コメント部分を削除して 縮小したり、1つのファイルにまとめたりすることで、配信されるコードの数と容量を圧縮します。

  • Minify
    Enable にチェックを入れるとコードの圧縮が有効になります。なお、HTML、JavaScript、CSS ごとのON/OFFは、Minify メニューからおこないます。

    なお、初めてMinifyを有効化する際には警告ダイアログが表示されますが、I Understand the Risks をクリックして先に進みます。これは「Minify機能は上級者向けで、適切に設定を調整できない方にはお勧めしません。Minify機能によってサイトの表示が崩れてもそれはW3TCの問題とは別です。リスクを承知したうえで使用してください。」という趣旨です。

  • Minify mode
    Auto(自動)またはManual(手動)を選択します。

    Autoを選択すると、JavaScriptやCSSはHTML内で元の位置(順序)を保持したまま圧縮されるので、レイアウト崩れが起きにくいメリットがあります。反対にAutoptimizeプラグインのように、CSSやJavaScriptファイルをごっそり結合して一か所に集約させることができないので、リクエスト数(≒ページリソースの数)の減少には貢献しにくいというデメリットがあります。

    Manualを選択すると Minifyメニューの JavaScriptおよびCSSセクションで、圧縮するリソースと挿入位置を個別に指定することができます(上級者向け)。

  • Minify Cache Method
    圧縮されたJavaScriptやCSSファイルの保存方式(≒場所)を指定します。共用レンタルサーバーの場合は Disk を選択しましょう。

  • HTML minifier
    HTMLを縮小する際の縮小方式を選択します。通常はMinify (default)を選択します。HTML Tidy は意図しない補正が入るのでお勧めしません(サーバー環境によっては選択できません)。

  • JS minifier
    JavaScriptを縮小する際の縮小方式を選択します。通常はJSMin (default)を選択します。その他の方式は、縮小用のライブラリを別途用意する必要があるなど、利用のためのハードルが高いので割愛します。

  • CSS minifier
    CSSを縮小する際の縮小方式を選択します。通常はMinify (default)を選択します。その他の方式も選択可能で、より高度な縮小オプションが利用できますが、縮小に関する知識が別途必要になります。

W3TCのMinify機能は上級者向けです。初心者の方は、Minify Mode のAuto を使用するか、W3TCのMinifyを使わずに 圧縮系は Autoptimize を使うのも手です。

Opcode Cache

Opcode Cache(オペコードキャッシュ)セクションでは、PHPプログラムの中間コードのキャッシュ方式を選択します。基本的には、お使いのサーバーで有効になっている方式が自動で選択され、その他の方式は選択することができません

WordPressの一部はPHPで記述されています。PHPファイルがWebページに初めてロードされる時、人間が判読できるPHPコードからサーバーが理解できるコードに変換処理(コンパイル)が行われています。Opcode CacheはPHPのパフォーマンス強化拡張機能で、コンパイル済みコードをキャッシュすることでWebサイトのパフォーマンスを向上させます。

Opcode Cache
  • Not Available
    お使いのサーバーでは、Opcode Cacheが有効になっていません。
  • Zend Opcache
    下記方式よりも信頼性とパフォーマンスに優れており、有効ならばこちらを推奨。
  • Alternative PHP cache (APC / APCu)
    Zend Opcache がオープンソース化される前に 利用されてきた代替方式

(参考)PHP Performance I: Everything You Need to Know About OpCode Caches

Validate timestamps

PHPファイルが変更されたかどうかをチェックし、変更がある場合、PHPファイルの新しいバージョンがコンパイルされ、Opcodeキャッシュに入れられます。お使いのサーバーよって、設定がロックされている場合があります。

Database Cache

Database Cache(データベースキャッシュ)セクションでは、データベースキャッシュのON/OFFの切り替えと、キャッシュファイルの保存方式を設定します。

WordPressはデータベースに投稿内容やカスタムフィールドなど様々な情報を保存していて、動的にページを出力する際などにデータベースを照会しています。データベースのキャッシュにより、データベースの照会結果をキャッシュできます。

  • Database Cache
    Enable にチェックを入れるとデータベースキャッシュが有効になります。共用レンタルサーバーではキャッシュの保存先がDiskとなり、データベースキャッシュを無効にするよりも、パフォーマンスが低下するとされています。したがってOFFにしておきます。

    また、レンタルサーバー側で類似の高速化機能を提供している場合は、そちらを利用しましょう。

  • Database Cache Method
    共用レンタルサーバーで敢えて有効にする場合は、Diskを選択します。他の方式が選択可能になっている場合がありますが、共用レンタルサーバーでは過負荷の原因になるので選択しません。

Object Cache

Object Cache(オブジェクトキャッシュ)セクションでは、オブジェクトキャッシュのON/OFFの切り替えと、キャッシュファイルの保存方式を設定します。

オブジェクトキャッシュはWordPress標準のキャッシュシステムで、複雑なデータベースクエリを細かくキャッシュして効率よく再利用できるようにすることで、ページロード時におけるデータベースへのアクセス回数を最小限に抑えます。キャッシュは一回のページロード終了後に破棄されます。

W3TCは、寿命の短いWordPress標準のオブジェクトキャッシュを拡張して、複数回または複数人のページロードに対して再利用可能にします。前述のデータベースキャッシュよりも効率が良いので、動的な要素が非常に多く含まれるサイトでのパフォーマンス向上に効果を発揮します。

Object Cache

Enable にチェックを入れるとオブジェクトキャッシュが有効になります。共用レンタルサーバーではデータベースキャッシュと同様の理由で、パフォーマンスが低下するとされています。したがってOFFにしておきます。

こちらについても、レンタルサーバー側で類似の高速化機能を提供している場合は、そちらを利用しましょう。

ただし、AMPプラグインの通知画面によれば、「AMPプラグインは、永続オブジェクトキャッシュが有効になっている場合に最高のパフォーマンスを発揮します。」とのことで、WebサイトをAMP対応にしている場合はオブジェクトキャッシュを有効にしても良いかもしれません。

Object Cache Method

共用レンタルサーバーで敢えて有効にする場合は、Diskを選択します。他の方式が選択可能になっている場合がありますが、共用レンタルサーバーでは過負荷の原因になるので選択しません。

データベースキャッシュとオブジェクトキャッシュの違い

データベースキャッシュとオブジェクトキャッシュの目的は似ていますが、すでに説明したとおり、オブジェクトキャッシュが複雑なデータベースクエリをきめ細かくキャッシュするのに対して、データベースキャッシュは投稿ページの表示などの単純なデータベースクエリ結果を大雑把にキャッシュするので、キャッシュ効率の面で劣ります。

どちらを採用すべきかは、サーバーのスペックやサイトの性質により異なりますが、一般にオブジェクトキャッシュが利用できる場合はデータベースキャッシュを併用するメリットはないので、データベースキャッシュをOFFにします。

いずれにしても、データベースキャッシュとオブジェクトキャッシュの両方をONにすることは、サーバーへの負荷が過大になるため推奨されていません。

(参考)Should I enable Database Cache and Object Cache?

Browser Cache

Browser Cache(ブラウザキャッシュ)セクションでは、ブラウザキャッシュのON/OFFの切り替えをおこないます。

ブラウザキャッシュは、訪問者が初めてWebサイトを閲覧した時に、CSS、JavaScript、画像、HTMLページなどの静的なリソース(≒ファイル)を閲覧者のブラウザ内に一時的に保存させます。閲覧者がWebサイト内の他のページを回遊したり、後日再訪問した際に、キャッシュされた静的リソースが、サーバーではなく閲覧者の端末から読み込まれるので、体感速度を大幅に向上させることができます。

Browser Cache

Enable にチェックを入れるとブラウザキャッシュが有効になります。ブラウザキャッシュは、ページキャッシュ同様Webサイトのパフォーマンスを向上させる最も効果的な方法の1つなので、ONにしておきましょう。

共用レンタルサーバー側で類似のオプションがある場合は、そちらを利用しても構いません(その場合はW3TC側はOFFにします)。ただし、W3TCの方がより細かくブラウザキャッシュを制御できるはずです。

CDN

CDN(シーディーエヌ)セクションでは、CDNサービスを契約している場合に、W3TCとCDNを連携させるための基本的な設定をおこないます。CDNセクションの設定は、このガイドの解説範囲外なので解説を割愛します。

CDN(Content Delivery Network)は、世界中に分散しているさまざまなサーバーに静的ファイル(CSS、JavaScript、画像など)を保存し、それらのリソースをWebサイト訪問者から地理的に近いサーバーから配信することで、Webサイトのパフォーマンスを向上させるサービスです(基本的に有料)。

Cloudflareを利用している場合、このセクションでの設定は必要ありません。Cloudflareについては、CloudflareのWebサイトで自分のアカウントのダッシュボードにログインしてすべての設定をおこないます。

なお、W3TCのCloudflare用エクステンション(拡張機能)を有効にすることで、Cloudflareのダッシュボード上のメニューを WordPressの管理画面内に統合させたり、Cloudflare側のキャッシュをWordPressの管理画面からクリアすることができるようになりますが、W3TCとCloudflareの併用においてエクステンションの利用は必須ではありません。

User Experience

User Experience(ユーザーエクスペリエンス)セクションでは、Lazy Loading 機能のON/OFFを設定します。設定は任意ですが、お使いのテーマやプラグインで類似の機能がある場合は、競合しないようにどちらか一つを有効にします。

Lazy Loading(遅延読み込み)は、Webページでスクロールしないと見えない位置に画像が配置されている場合、その場所に画面をスクロールするまで、ブラウザが画像ファイルを読み込むのを遅らせる機能です。

画像の遅延読み込みは GoogleのPage Speed Insights の評価項目のひとつで、Webサイトの訪問者が低速な回線を使っている場合に体感速度を向上させることができますが、ページの途中にあるアンカーリンクに移動した際に、画像の遅延読み込みによって移動先の着地点がずれてしまうデメリットがあります。

Statistics

Statistics(スタティスティックス)セクションでは、W3TCによるキャッシュパフォーマンス(≒効果)を分析する機能のON/OFFを切替え、統計情報の収集に関する動作設定(ログを取る間隔・保存場所・ファイル形式など)をおこないます。この機能を有効にしている間は余計な負荷かがかるので、常時利用は推奨されていません。

W3TC Pro(有料版)で利用できる機能で、詳細についてはこのガイドの範囲外です。

Fragment Cache

Fragment Cache(フラグメントキャッシュ)セクションでは、フラグメントキャッシュの保存方式を設定します。W3TC Pro(有料版)で利用できる上級者向けの機能で、このガイドの範囲外です。

フラグメントキャッシュとは

フラグメントキャッシュは、ログインしているユーザーに固有のデータを表示するような会員サイトやECサイトなど、ページ全体をキャッシュすることが適さないサイトや、動的な要素(ナビゲーションメニュー、ウィジェット、ギャラリーなど)に絞ってキャッシュを効かせたい場合などに、部分的なキャッシュを可能にします。

フラグメントキャッシュを実現する方法はいくつかあり、W3TCでは、処理に時間のかかるPHPコードの結果をキャッシュして一時的に(有効期限付きで)データベースに格納するTransients APIというWordPressが備える仕組みを拡張し、対象をグループ化して、より効率的なキャッシュ制御をおこなうようです。

(参考)Fragment Caching – W3 Total Cache Pro

ページフラグメントキャッシュとは

上記のフラグメントキャッシュとは別に、W3TCにはページフラグメントキャッシュというものがあり、こちらは ページキャッシュから一部の要素を除外するアプローチです。テンプレート内に埋め込んだ特定のタグについてコンテンツを解析し、該当箇所だけは、コンテンツを動的に(リアルタイムで)読み込みます。

なお、ページフラグメントキャッシュは、W3TCの無料版でも実装できるようです。

(参考)

License

License(ライセンス)セクションでは、W3TC Pro(有料版)のサブスクリプションを購読している場合に、発行されたライセンスキーを入力して、サイトを認証します。無料版で使用する場合は何も入力する必要はありません。

(参考)W3 Total Cache Pro

Miscellaneous

Miscellaneous(ミセレイニアス)セクションでは、管理者向けの情報に関する設定をおこないます。変更する特別の理由がない限り、初期設定のままで問題ありません。

Enable Google Page Speed dashboard widget

W3TCのダッシュボードにGoogleのPage Speed Insightsのスコアを表示します。初期設定でチェックが入っていますが、すぐ下の「Page Speed API Key」の欄が空の場合は、何もしないのでチェックを入れたままでもOKです。

なお、以下の3つはこの機能の関連項目です。

  • Page Speed API Key
  • Key Restriction (Referrer)
  • Show page rating in admin bar

W3 Total Cache で Google Page Speed APIを利用するための手順

Verify rewrite rules

サーバー構成(キャッシュを有効にするための書き換えルール)に問題がある場合などに管理画面上部に通知を表示します。このオプションを無効にしている場合でも、管理画面左の Performance > install メニューから現在のサーバー構成を確認できます。

Enable file locking

ごく稀に、他のプラグインによって作成された一時ファイルの名前とキャッシュ生成時の一時ファイルの名前が一致する可能性があり、低スペックのサーバーでは競合を避けるためにファイルをロックします。ただし同時にサーバーにも負荷がかかるので、ロックアップ(≒フリーズ)などの問題が発生する可能性があります。

したがって特殊なケースを除いてこのオプションは無効のままにしておきます。なお、NFSを採用しているサーバーでこのオプションを有効にすることは非推奨となっています。

(参考)

Optimize disk enhanced page and minify disk caching for NFS

一部のキャッシュ方式を NFSを採用しているサーバー環境向けに最適化します。該当する場合は、チェックをONにすることでパフォーマンスをわずかに向上させる可能性があります。

Anonymously track usage to improve product quality

チェックを入れるとW3TCの品質向上のために使用状況を匿名で提供します。

W3TCを初めて有効化した時に表示される利用規約とプライバシーポリシーの同意に関するダイアログで Accept(同意)を選択した場合に、自動でチェックが入っているので、必要に応じてOFFにします。

Debug

Debug(デバッグ)セクションでは、キャッシュ生成に関する詳細情報をページのソースコード最下部にHTMLコメントとして挿入するための設定をおこないます。トラブルシューティング用の機能なので、通常時は全てOFFにしておきます

  • Debug mode
    有効にした主要機能(キャッシュやMinifyなど)の中から詳細情報が必要なものにチェックを入れます。

  • Purge Logs
    キャッシュの削除(パージ)がいつ・どのタイミングで行われたかを知るためのログをデバッグ情報に含めます。意図しないキャッシュの削除でキャッシュ効率が落ちていると思われる時のトラブルシューティングに使用します。このオプションはW3TC Pro 版のみ利用できます。

Import / Export Settings

Import / Export Settings(インポート・エクスポートセッティング)セクションでは、W3TCの設定情報のバックアップと復元、および設定の初期化に関する機能を提供します。

  • Import configuration
    下のExportで生成された設定ファイル(.json形式)を選択してアップロードすると、バックアップした設定情報が復元されます。

    復元前の設定は全て上書きされること、復元された設定情報は直ちに有効になることに注意してください。安全性を期すなら復元前にプレビューモードを有効にしておきましょう。

  • Export configuration
    Download ボタンをクリックすると、現在の設定を .json形式のファイルでエクスポートします。

  • Reset configuration
    Restore Default Settings ボタンをクリックすると、全ての設定をW3TCを初めてインストールした時の初期状態に復元します。設定ミスでサイトの表示が崩れてしまい、原因がわからない時などに非常に便利です。ただし、ボタンクリックで、直ちに初期状態に戻るので注意してください。

    なお、設定ミスによりWordPressの管理画面にログインすらできない場合は、W3TCを強制的にアンインストールしてやり直すこともできます。