W3TCなどWPキャッシュ系プラグインの設定で気をつけた方がいいこと
長らく問題として発生した事案が解決したので、メモ程度に残しておきます。ざっくり言いますと、WordPressのプラグインであるW3TC(W3 Total Cache)でずっと問題が出ていたのですが、設定の妙により管理者だけが気がつかなかったという事例です。
W3TCはわりと危うい
そもそもこのW3TCはかなり強力なキャッシュ系プラグインなわけですが、強力である反面その設定がわりとセンシティブであり、一歩間違えると大きなマイナス要因を発生させてしまう、というのは前から知っていました。そのため、わりとこまめに設定の見直しやパフォーマンスについてのチェックは行っていた「はず」だったのですが、今回の事例については気がつくことさえもできていませんでした。
半年ぐらいまえのページを表示していた
ここ最近ですが、時折CSSが読み込まれないことがあるという現象が起きていました。これ、たまーに読者から報告があったのですが、もう1度リロードすると解決してしまうため、読者側のキャッシュの問題だとばかり思っていたんですね。
ところが先日、ねんざブログのねんざさんが「リロードするたびに別のページが交互に読まれているみたい」という状況を再現してくれました。何度も何度も再現するので、これはあきらかにこちら側の問題です。で、おかしい方のHTMLを見せてもらったところ、どうやらこれは半年以上前のページを読み込んでいるということに気がつきました。半年前といえばこのブログは別のテンプレートで運用されており、その頃のHTMLをロードしてしまうと、様々なスタイル設定が異なるため、CSSの適用されないページになってしまいます。このことによって、実はCSSが読み込まれていなかったのでは無く、古いCSSを適用しようとしておかしいことが発生していたことに気がつきました。
さて、このように「古いものが表示されている」となると、あきらかにキャッシュ系の挙動です。そこで思いつくプラグインをひとつずつ落としていったところ…あったあった、ありましたよ、その原因は冒頭で紹介した「W3TC」にありました。ひとまず設定を吟味するのは後回しにして、プラグインを停止することにより、状況は再現されなくなりました。
「ログインユーザーには適用しない」のオプションが気づきを遅らせた
さて、今回の記事はこの「W3TC」の設定を細かく紹介するようなものではありません。本題は「なぜこの状況に気がつくのが遅れたのか」です。簡単にいえば、設定として「ログインユーザーにはキャッシュを適用しない」というものがONになっていたからです。つまり、僕はログインしている限りW3TCの機能が適用されないことになっていたので、W3TCによる悪さに気がつけなかったんです。時折発生はしていたんですが、それはたまたまログインしていない端末で読み込んだ時に限られていたので、気がつけていなかったんですね。
ということで、長々と書きましたが、「W3TC」を設定するときは、「Don’t cache pages for logged in users」といったチェックボックスは外すようにして、常に読者と同じ状態でサイトのロードを行わせるようにするのが良さそうです。
のりおのまとめ
この設定って「W3TC」に限らず、様々なキャッシュ系のプラグインで同じものがあると思うんですよね。ついついログインユーザーには適用しないようにしてしまいがちですが、その際には読者とは異なる状態でロードが行われているということを意識しておく必要がありそうです。
今回は「ねんざ」さんと、いっしょに状況を再現してくれた「のっち」さんのおかげで解決することができました。ありがとうございました。
ディスカッション
コメント一覧
まだ、コメントがありません