キャッシュ周りのトラブル、特にフォームに前の人の書き込んだものが表示されてしまう、などの話があるため、サーバー側のキャッシュについては可能な限り避けてきましたが、そうも言ってられない案件があったので導入。
導入前に画像の軽量化、CSS化、リクエスト数の削減を実施済み。これでも表示まで3秒前後、リクエストからファーストパケットまで1秒を超えるレベルでした。
キャッシュ導入後は表示まで1.5秒以内に短縮。とりあえずやったことをメモします。
インストール
まずはローカル環境にインストールして動作に影響がないことを確認。
その後リモートでプラグインを公式ディレクトリからインストールして有効化。
この時点で、wp-configの変更ができるようにしてくれとのアラートが出ました。
FTPソフトでwp-config.phpのパーミッションを600にしてプラグインの管理ページをリロードするとエラー消滅。ファイルを見ると必要な記述が書き込まれていました。
wp-config.phpは、ファイルの最初に以下の行が挿入されていることを確認。
/** Enable W3 Total Cache */ define('WP_CACHE', true); // Added by W3 Total Cache
また、.htaccessに以下の記述が追記されていることも確認。
# END W3TC Browser Cache # BEGIN WordPressRewriteEngine On RewriteBase (インストールしたサイトのURL) RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . (インストールしたサイトのURL)/index.php # END WordPress
設定
GeneralのPreview modeは特に触れる必要なし。
Page Cacheは、EnableにチェックしてSave all settingsをクリック。
主な設定はほかのブログなどにたくさん掲載されているのでそこを見ていただくとして、フォームのあるページを除外する設定を。
管理画面のPerformanceからPage Cacheをクリック。下のほうに"Never cache the following pages:"に、該当するページのURLを記述。
例えば、URL/form/ というページであれば、/form/ を、URL/form の場合は/form というように。
確認画面などのURLもここに記入してSave all settings。
General SettingsのDebug Modeで、Page Cacheにチェックを入れSave all settingsし、除外したページにアクセス。ソースを表示し、ソースの最後に挿入されているコメントでキャッシュが行われていない設定になっていることを確認。
全て問題ないことを確認したら、デバッグモードを解除して終了。あとは念のためフォーム周りの動作、表示確認など。