記事本文
キャッシュ自身の話とはまた違うけど
意図的に削除したページではないサイトでも偶にキャッシュは便利です。 (検索に引っかかりやすくと言うと語弊があるでしょうが、そういうテンプレートを使用している)ブログでは、トップページから漏れたエントリーを閲覧しようとするとコツの要る場合があります。 検索で引っかかったはずなのに目的のアーカイブが容易に見られない。 そういうときにキャッシュで見ると便利です。
Google キャッシュと Yahoo キャッシュの相違点では Google と Yahoo の違いについてを中心に述べていましたが、涼さん ( 徒波 | 波間の浮遊物 ) の仰ることも私の言いたいことに通じているので、今回はそれを取り上げてみようと思います。
これはキャッシュがどうとかという話よりも weblog の構成についての話ですが、以前に index に最新記事を配置することのデメリットにて
検索エンジンのキャッシュ機能を使えばその記事を目にすることはできますが、逆にその機能を使わなければ、既に index から消え去った記事を求めてサイト内を探し廻らなければなりません。 もちろん個別記事ないし時系列アーカイブ・カテゴリ別アーカイブは存在していますし、それが検索にひっかかることもあるでしょうが、 ( 記事追加ごとに内容が変化する ) index もひっかかってしまうというのが現状です。
と述べたように、ある意味検索エンジンのキャッシュに頼らざるを得ない状況を皆で作り上げてしまっているという見方もできます。 本来なら 「目的のサイトのサーバがダウンしている等の理由で見られない時でも、ページの閲覧を可能にする」 という目的のはずのキャッシュが、 「検索語句を含む、もしかしたら別のアーカイブに移動してしまっているかもしれないエントリを確実に表示する」ためのものにシフトしてしまっているのです。
もちろん、これは weblog が流行する以前から存在していた問題なのですが、構成が画一化されている weblog サービスが流行したためにより顕著に感じられるようになったことは否定できません。
キャッシュを拒否できないケース
私自身は、検索エンジンのキャッシュの意義やそれの運営、また一般利用者の利用形態に対してはあまり賛成できませんが、 hxxk.jp 自体のキャッシュを作成されること自体は特に拒否などはしていません。 共用のレンタルサーバを使わせていただいているため、稀にダウンすることもあり、キャッシュを取られていることがメリットになるからです。 ミラーリングになろうとどんと来い。 ですが、ただ 1 点だけ拒否したいケースがあります。
hxxk.jp は前項で述べた理由などから、 index となる部分には記事の内容そのものを書くことは行っていません。 よって、常に最新の記事の内容を表示する URI もありません。 ただし、 http://hxxk.jp/latest のような、最新の記事へリダイレクトする URI は準備しています。
あくまでその URI にリクエストがあった場合に、 .htaccess でリダイレクトするためだけに準備したものですので、実際には latest.html や latest.php はファイルとしては存在しません。 存在させていなければ、常にその ( リダイレクト先の ) 内容が更新されようと、リダイレクト後の実態のある URI で検索結果にインデックスしてくれるだろうと考えていたためです。
しかし、実際はリダイレクト前の URI でインデックスされることもあります。 Google 検索: latest site:hxxk.jp を見ると、 .../latest という URI が検索結果に現れています。 そして、その結果に当たってしまい、 .../latest に実際にアクセスした人は、検索で得ようとした情報が .../latest からは参照できないことを知り、改めてキャッシュの方にアクセスするという行動を起こすということをアクセスログから読み取りました。 閲覧者が目的の記事に辿り着きやすくなるように考えていたつもりですが、リダイレクト前の URI を拾われてはその考えも効果は表れません。
Redirect ディレクティブの status 引数を指定しなければ、
リダイレクトは "temporary" (HTTP ステータス 302) になります。
これはクライアントに リソースが一時的に移動したということを示します
ので、 status 引数に permanent を指定しないと、私の望む結果は得られません。
べるさん、コメントでのご指摘ありがとうございました。
そして、前述の通り実際のファイルとしては存在していないため、 meta 要素を使ってクロールやインデックス作成を拒否することはできません。 そのページ以外はキャッシュを拒否したくないと考えているので、 robots.txt による拒否という手段は取れません。 どなたか良い方法を知りませんでしょうか…… ?
Google のイメージ検索からの画像を削除するを見ると分かりますが、
Disallow:
の後ろにクロールを拒否したいリソースのパスを示せば良いようです。
私は
Disallow: /
として、全体を拒否することしかできないと思い込んでいました。
DeepGreen さん ( 深緑色 -DeepGreen Color- ) 、コメントでのご指摘ありがとうございました。

