第16回 YST (Yahoo Search Technology) のキャッシュが古いのは思い込み等の検証結果
今回は Su-Jine なりの YST 検証結果を書きたいと思います。まず、これを読む前に「YST は使えない検索エンジン」「Yahoo! JAPAN は金儲け主義」等という批判的な考えを持っている方は、そのような意見をとりあえず捨てて読んで下さい。先入観があると、どうしても偏った情報しか得られないと思いますので。
まず、Yahoo! JAPAN が Google から YST に変更するまでの流れをまとめたいと思います。
| 年月日 | 出来事 |
|---|---|
| 2002/12/23 | 米Yahoo! が Inktomi を買収 |
| 2003/02/18 | 米Overture が Altavista を買収 |
| 2004/02/25 | 米Overture が FAST の検索部門 (AlltheWeb) を買収 |
| 2003/07/14 | 米Yahoo! が 米Overture を買収 |
| 2004/02/17 | 米Yahoo! が独自のロボット型検索エンジン YST (Yahoo Search Technology) に切り替え |
| 2004/05/31 | Yahoo! JAPAN が YST に切り替え |
上記のことから、米Yahoo! は 3 つのロボット型検索エンジンを取得 (Inktomi, Altavista, AlltheWeb) していることがわかります。この 3 つの検索エンジンを組み合わせた検索エンジンが YST (Yahoo Serch Technology) です。その中でもベースとなっているのが Inktomi です。
このコラムでは YST 対策と言うよりも、YST について気になったところがいくつかあったので、その検証結果を紹介したいと思います。「そんなことどうでも良いから YST でどうやれば上位表示できるんだよ」と言う意見もありそうですが、上記でも書いたとおり、YST 対策はほぼ Inktomi 対策と同じですので、Su-Jine の「自分でやろう SEO」をしっかり読んでいる方なら上位表示はできると思います。
では、YST について調べたことを 3 つ紹介します。
1. YST の検索結果はどれが本物?
YST の検索結果はいくつか存在します。米Yahoo!, Overture, Yahoo! JAPAN の 3 つが YST を採用していると思われますが、「seo対策」で検索したときには下記の 3 つのパターンが存在します。
どの YST で上位表示を目指せばよいのでしょうか?当然のことながら、日本人に見てもらいたい Web サイトの場合は、いくら米Yahoo! で上位表示されていても意味がありません。
では、なぜ米Yahoo! で「seo対策」と検索した結果が Overture, Yahoo! JAPAN とまるっきり異なるのでしょうか?理由は、形態素解析用辞書が違うためです。「形態素解析」とは日本語の文章を単語に分解することを言います。英語の文章の場合は、" "(Space), ","(Comma), "."(Period), "?"(Question), "!"(Exclamation) で単語を分解できますが、日本語の場合は、その区切りが無いために単語に分解するのが難しいわけです。
下記の文章を含む 2 つのページ (X, Y) があったとします。
| X | : | seo は Google と Yahoo! を対にして策を講じる必要がある。 |
| Y | : | seo 対策を考えてサイトを構築する。 |
この文章は YST では次のように単語が分解されます。
| X' | : | seo | は | google | と | yahoo | を | 対 | に | して | 策 | を | 講じる | 必要 | が | ある |
| Y' | : | seo | 対策 | を | 考えて | サイト | を | 構築 | する |
従って、YST のインデックスは下記のようになります。
| キーワード | ページ | |
|---|---|---|
| X | Y | |
| seo | ○ | ○ |
| は | ○ | --- |
| ○ | --- | |
| と | ○ | --- |
| yahoo | ○ | --- |
| を | ○ | ○ |
| 対 | ○ | --- |
| に | ○ | --- |
| して | ○ | --- |
| 策 | ○ | --- |
| 講じる | ○ | --- |
| 必要 | ○ | --- |
| が | ○ | --- |
| ある | ○ | --- |
| 対策 | --- | ○ |
| 考えて | --- | ○ |
| サイト | --- | ○ |
| 構築 | --- | ○ |
| する | --- | ○ |
米Yahoo! では「seo対策」と検索すると「seo」+「対」+「策」と検索されます。そのため、『「seo」かつ「対」かつ「策」が含まれるページ』となり X が検索されます。Yahoo! JAPAN で検索すると「seo」+「対策」と検索されるため、『「seo」かつ「対策」が含まれるページ』となり、Y が検索されます。
このように米Yahoo! の場合は単語が正常に分解出来ないため、思った通りの検索結果にはなりません。そのため、Yahoo! JAPAN と 米Yahoo! では検索結果が異なる場合があります。
次に、Overture での日本語検索と Yahoo! JAPAN の検索結果の違いはどうでしょうか?Overture の画面の下に「powered by YAHOO! search」とありますが、実際は Inktomi の検索結果です。この Inktomi の検索結果にくわえて、広告を含めているのが Overture です。「seo対策」と検索した場合には、1 位のサイトの URL の右に「スポンサードサーチTMによる掲載」と言うリンクがあります。URL の右に「その他の表示」とあるのが通常の Inktomi の検索結果です。この「その他の表示」をクリックすると下記のメッセージが表示されます。
『その他の表示 その他の表示は、Inktomi によって提供されています。これらのリンクの中には、サイトの所有者が審査のために料金を支払っているものや、クリック料金を支払っているものが含まれてる場合もあります。これらのサイトはセクションごとに、アルゴリズムによってランク付けが決定されており、広告などの料金による順位の変動はありません。』
「Inktomi によって」とありますので、Overture での日本語検索は YST ではありません。このため、Yahoo! JAPAN と Overture で検索結果が異なります。
Yahoo! JAPAN で上位表示したいのであれば、米Yahoo! や Overture は無視して、Yahoo! JAPAN だけ研究しましょう。
2. YST のキャッシュの不思議
次に紹介するのが、キャッシュの不思議です。Yahoo! JAPAN にはページ検索に日付が表示されます。この日付はクローラがページのソースコードを取得した日付です。この日付が同じサイトでも違う日付が出るという何とも不思議な現象があります。普通、DB を構築する場合は、同じデータを複数持つ等と言うことはしませんのでどうして同じデータを持っているのかがどうしても引っかかりました。そこで、「SEO」「seo」「SEO」「seo」という、全角・半角、大文字・小文字それぞれ検索してみました。下記は 6 月 13 日に検索した結果です。下記のキャッシュ日とは Su-Jine のサイトのキャッシュ日です。
◆「SEO」「seo」「SEO」「seo」で検索
| 検索文字 | キャッシュ日 | 実際のソース取得時間 |
|---|---|---|
| 半角の大文字「SEO」 | 2004年5月22日 | 2004/05/22 23:48:44 |
| 半角の小文字「seo」 | 2004年5月13日 | 2004/05/13 10:44:33 |
| 全角の大文字「SEO」 | 2004年5月13日 | 2004/05/13 10:44:33 |
| 全角の小文字「seo」 | 2004年5月22日 | 2004/05/22 23:48:44 |
◆「SEO対策」「seo対策」「SEO対策」「seo対策」で検索
| 検索文字 | キャッシュ日 | 実際のソース取得時間 |
|---|---|---|
| 半角の大文字「SEO対策」 | 2004年6月12日 | 2004/06/12 15:34:34 |
| 半角の小文字「seo対策」 | 2004年6月12日 | 2004/06/12 21:55:18 |
| 全角の大文字「SEO対策」 | 2004年6月12日 | 2004/06/12 15:34:34 |
| 全角の小文字「seo対策」 | 2004年5月22日 | 2004/05/22 23:48:44 |
この結果で非常に興味深いなと思ったのは、全角・半角だけでなく、大文字・小文字も違うキャッシュが表示されることです。負荷分散処理の影響かなとも思いますが、これは違うようです。
通常検索するときは検索キーワードを次のような処理をしたあとで検索を始めます。同様にインデックス作成時にも同じ処理を施します。そうすることで検索速度を速めることができ、上記 4 つのパターンで同じ結果を表示することが出来るようになります。
- 英数字は半角に変換 (全角・半角を区別しなくするため)
- 半角カタカナは全角カタカナに変換 (文字化け対策)
- 英字は小文字に変換 (大文字・小文字を区別しなくするため)
上記の検証結果から YST ではこれらの処理をしていないように思われます。しかし、「SEO」「seo」「SEO」「seo」という全て違うインデックスを持っている場合、検索結果がそれぞれで大幅に変わるはずです。それにもかかわらず、YST では検索結果が大幅に変わることが無く微妙に違う結果が出るだけです。この現象は Yahoo! JAPAN が YST に変更した時からずっと調べているのですが、どうしても検証し切れませんでした。どなたかこの現象を説明できる方はご連絡いただければと思います。
3. YST のキャッシュは古い?
YST は「インデックス情報が古い」「2002 年のデータなんて使えない」等の情報を良く目にします。では Google はどうなのでしょうか?まず、Google の検索結果は YST と違い、フレッシュクロールサイト以外はキャッシュの日付が表示されません。そこで daterange と言う特殊構文を用いて検索してみました。日付の範囲を 2002/01/01 〜2002/04/01 までの間で「日本語」と言うキーワードを検索するには Google の検索窓で下記のように入力します。
検索してみましたか?5 万件以上の検索結果が返って来ました。Google は全てのページを常に最新にしているわけではないと言うことですね。これらのページがヒットするのは If-Modified-Since ヘッダが対応しているサーバと言うことでしょう。もし、YST のクローラも Google と同様に If-Modified-Since ヘッダを付けてアクセスをしているとしたらどうでしょうか?YST で表示されている古いキャッシュは、クローラのアクセス時に 304 Not Modified が返っているためだと思います。304 Not Modified が返った場合クローラはソースコードを取得せず、DB の更新も発生しません。キャッシュは古い日付のままになるでしょう。
Google の検索結果には日付が表示されていないから「古い」データと思わないだけではないでしょうか?YST のキャッシュは古いわけではなく、更新作業をしていないファイルにクローラがアクセスし、サーバが 304 Not Modified を返しているために起きている現象だと思います。要するに、クローラによるアクセスが無いわけではなく、ページの更新が無いために古い情報しか表示されないわけです。自分のキャッシュが古いと言っている方は該当ファイルを更新しましょう。もし、更新しなければ 5 年待ってもキャッシュの日付は新しくならないと思います。
Su-Jine のコラムを全て読んでいない方には少し難しいキーワードが出てきましたが、If-Modified-Since ヘッダに関しては、Su-Jine の第 10 回 Googleのフレッシュクロール対象サイトにするには?に書かれていますので参考にして下さい。
今回の内容はちょっと検証しきれなかった部分があり、このまま公開するのは避けたいなぁと思っていたのですが、どうしてもキーワードによってキャッシュが変わる現象を説明することが出来ませんでした。もし、このキーワードによるキャッシュの日付が変わる現象を説明できる方がいましたらご連絡いただければ幸いです。
【補足】
このページをアップしてから約 3 分後に、このページへ YST のクローラがアクセスしてきました。米Yahoo! で「seo対策」で検索するとこのページがヒットしましたので、「1. YST の検索結果はどれが本物?」の検証結果は正しいことがわかりました。
「思い込み」の検証用ツール「YST (Yahoo Search Technology) 検索結果を Google のフォーマットへ 〜 YST to Google 〜」を作成しました。このツールは Yahoo! JAPAN (YST) のページ検索結果を Google のフォーマットで表示するものです。Google と同様に古いキャッシュは表示せず、新しい日付のみを表示するようにしています。
投稿者 Su-Jine : 2004年06月18日 10:09
↑第15回 PageRank (ページランク) の通説と事実
Su-Jine の独り言
↓第17回 JavaScript と SEO
このエントリーのトラックバックURL: