Autoptimizeのキャッシュサイズを増やす

WordPressのリソースを最適化するプラグイン Autoptimize のキャッシュサイズは、デフォルトで512MBで、インラインのCSSやJavaScriptを連結して最適化するオプションが有効な場合、短期間でキャッシュサイズの上限に達してしまい、ツールバーに赤ランプが点灯したりメールで警告が来たりします。

キャッシュを自動でクリアするプラグイン(Autoptimizeの作者は推奨していない)もありますが、わざわざプラグインをインストールしなくても、コードスニペットを使ってキャッシュサイズの上限を変更することができます。

実は、Autoptimizeはキャッシュサイズを制限しているわけではない

実は、Autoptimizeはキャッシュサイズを制限おらず、デフォルトの512MBを超過しても、キャッシュされなかったり、キャッシュ済みのファイルが破損するわけではありません。

Autoptimizeの赤ランプや警告メールは、知らないうちにキャッシュ済みのファイルサイズが肥大化してサーバー容量を食いつぶさないように、512MBという基準(しきい値)を設けてユーザーに注意喚起を促す機能なわけです。

プラグインの作者は、彼のブログで、この機能を「炭鉱のカナリア」に例えています。

したがって、「Autoptimizeのキャッシュサイズを増やす」=「Autoptimizeのキャッシュサイズ警告のしきい値を上げる」作業ということになります。

キャッシュサイズ警告のしきい値を上げる

キャッシュサイズの警告は、ツールバー用と、メール用の2種類で定義されていて、それぞれのしきい値を変更します。以下の例ではしきい値をおよそ2GBに設定します。

ツールバー用

add_filter('autoptimize_filter_cachecheck_maxsize','increase_ao_cachesize');
function increase_ao_cachesize() {
    return 2*1024*1024*1024;
}

3行目でしきい値を計算式で設定しています。

1024*1024*1024byte≒1GBなので、2GBにする場合はさらに2をかけます。多分、バイト数をそのまま入力してもOKなはずですが、計算式の方が見やすいかもしれません。しきい値をもっと増やしたい場合は適宜カスタマイズしてください。

なお、ツールバーの色は、しきい値の80%でオレンジに、100%で赤になるようです。

WordPressのユーザー設定で「サイトを見るときにツールバーを表示する」にチェクを入れている場合、ツールバー用のコードスニペットは、管理画面とフロントエンドの両方で動作させる必要があります。Code Snippets プラグインなどを使ってコードを追加する方はご注意ください。

メール通知用

$maxSize = (int) apply_filters( "autoptimize_filter_cachecheck_maxsize", 2147483648);

こちらはカッコ内末尾の数値をバイト換算で入力します。2147483648byte≒2GB です。もっと増やしたい場合は、単位変換サイトなどで調べて数値部分をお好みのサイズに変更してください。

コード有効化後、ブラウザで管理画面をリロードすると、しきい値の変更が反映されます。


いかがでしたか?意外と簡単な作業ですが、本来、Autoptimizeでデフォルトの512MBよりもキャッシュサイズが必要となること自体、設定に問題がある可能性があります。

インラインCSSやJavaScriptを連結することによって、Autoptimizeのキャッシュサイズが膨大な量になるということは、ページごとに異なるキャッシュファイルが生成されているわけで、Webサイトを訪問するユーザーがサイト内を回遊する際に、ブラウザキャッシュがほとんど効かない状態になっている可能性が高いです。

Autoptimizeを上手に使うコツは、CSSやJSをなんでもかんでも1つにまとめるよりも、どのページにも共通する要素を最小限にまとめることです。そうすると、リソースのリクエスト数を減らしつつ、ブラウザキャッシュも最大限に活用できるので、ページの表示速度もあがります。

Autoptimizeのキャッシュサイズを変更する前に、一度、Autoptimizeの最適化設定を見直してみるのも良いかもしれませんよ?