【WordPress】W3 Total Cacheでページキャッシュの有効期限を設定する方法

W3 Total Cacheでページキャッシュの有効期限を設定する方法

W3 Total Cacheのページキャッシュの有効期限を設定する方法を紹介します。

ページキャッシュの設定ページに、有効期限を設定する項目が無いので調べてみたところ、ブラウザキャッシュの設定ページにある「Expires header lifetime:」がページキャッシュの有効期限として使用されていました。

W3 Total Cacheで作成されたページキャッシュは、サーバーの「/wp-content/cache/page_enhanced/」に保存されます。

このディレクトリをクーロンに設定されたページキャッシュ削除ジョブが定期的にチェックして、有効期限が切れているファイルがある場合、ファイル名に_oldをつけて、ファイルを無効化する、という仕組みです。

クーロンに設定されたページキャッシュ削除ジョブが動作する間隔は、「Page Cache」の「Advanced」にある「Garbage collection interval:」で設定できます。

↓クーロンの動作間隔を「300」秒に設定したサンプルです。

クーロンに設定されたページキャッシュ削除ジョブ

ファイルの有効期限は、「Browser Cache」の「HTML & XML」にある「Expires header lifetime:」で設定します。「Browser Cache」を有効化する必要はありません。

↓ページの有効期限を「600」秒に設定したサンプルです。

ページの有効期限

クーロンの間隔を「300」秒、ページの有効期限を「600」秒に設定してあるので、300秒(5分)ごとにクーロンがページがキャッシュされたフォルダをチェックし、有効期限が切れているファイル(キャッシュファイル生成から600秒が経過したファイル)を無効化(ファイル名に_oldをつける)します。新しいキャッシュファイルは、次に誰かがそのページにアクセスしたときに生成されます。

これで、10~15分でキャッシュファイルを再生成することができます。

更新頻度が多いページなので、15分程度で更新を反映したく、クロールやページの有効期限を短めに設定しました。通常のサイトであればデフォルトのままで良いと思います。

WordPressに設定されているクーロンは「Advanced Cron Manager – debug & control」というプラグインで確認できます。

「w3_pgcache_cleanup」というのがページキャッシュをクリアするためのジョブです。右端に表示されているのが、次回の実行時間です。「Excute now」で実行時間を待たずに、ジョブを即時実行することができるので、デバッグ作業に便利です。

Advanced Cron Manager – debug & control