【検索語チェッカー】キャッシュが起こす副作用

サイトの表示を高速化するのに普通に使われるキャッシュは、Webブラウザーでも問題を起こしますが、検索語チェッカーのリンクマップ作成機能ではもっと深刻な状況を生み出します。

検索語チェッカーはキャッシュが嫌い

サイトのページを修正したけどWebブラウザーで見ると反映されていない、ファイルを入れ替えたのにダウンロードすると古いままだ、というのは普通に見られる光景です。どちらもキャッシュに更新前の情報が保持されたままになっているために起こる問題です。

検索語チェッカーではこれがさらにやっかいな問題になります。検索語チェッカーはリンクマップの生成を更新された分だけ都度(インクリメンタルに)行いますが(時間のかかる再構築を避けるようにしていますが)、そのために頼っているのがサイトマップの更新日時です。サイトマップには各ページの最終更新日時がありますが(それがないタイプのサイトマップには対応していません)、これが既知のものと違う場合にページが更新されたと判断します。ここで、次の問題が起こりえます。

  • キャッシュによって古いサイトマップを見せられている場合、そもそもページの更新に気付きません。
  • 更新されたサイトマップを見て対象のページが更新されたことを認識したものの、そのページを読んだところキャッシュによって古いページを見せられた場合は最悪です。その後サイト側のキャッシュをどうクリアしたところでそのページは読み直されないため、リンクマップは古い状態のままとなります。

サイトによってはキャッシュはCMSのもの(たとえばWordPressのプラグイン)とサーバーのものの2種類存在することがあり、その場合はCMSのキャッシュをクリアしてからリンクマップの表示を更新したのに反映されなかった、ということも起こります。なお検索語チェッカーはWebアクセス時に(Windowsアプリケーションごとの)キャッシュを使いません。

キャッシュをクリアしてから更新

検索語チェッカーに古い情報を見せると困ったことになるので、その可能性がある時はリンクマップを更新させる前にキャッシュをクリアします。プラグインによるキャッシュは簡単な操作でできるでしょう。サーバー側のキャッシュをクリアする手順はもっとめんどうで毎回やる気にならないと想像されます。だからと言ってサーバー側のキャッシュをオフにするのは馬鹿げています。

サーバーにキャッシュさせない

このサイトをホストしているサーバーはwpXSpeedですが、特定のユーザーエージェントにはキャッシュを使用しない設定が可能です。そこで検索語チェッカーのユーザーエージェント名「QueryViewer」を登録しています。

対象のサーバーに同様の機能がある場合、設定されることを強くおすすめします。

ページを再度読み込んでノードを更新

ノード上でマウスの右ボタンをクリックして表示されるコンテキストメニューにある「ページを再度読み込んでノードを更新」を選択すると、そのページが更新されたものとして読み直し、リンクマップを更新します。こうすることで、修正したけど(キャッシュの問題で)リンクマップに反映されていない特定のページを読み直させることができます。読み直すのはそのページだけです。

それでも修正が反映されない場合、まだキャッシュによって古い情報を見せられていると思われます。

再構築

画面右上の再構築ボタンを押すと現在保持しているリンクマップデータを破棄し、リンクマップをゼロから作り直します。そのため相応の時間がかかります。キャッシュの問題を回避できずわけがわからなくなった時とか、検索語チェッカーの動作がおかしいと思われる時とか、時間がかかってもいいから作り直したい場合の最終手段として用意しています。

再構築でもキャッシュをバイパスできるわけではないので、やるならまずキャッシュをクリアして下さい。

© 2021 河童のインデックス投資 Powered by STINGER