Yandexの流出したコードから17種類の要素を中心にGoogleの検索アルゴリズムを考察

Yandexの流出したコードからGoogleの検索アルゴリズムを考えてみる

ロシアの大手検索サイトであるYandex(ヤンデックス)に関するソースコードが流出しました。実際に検索エンジンの詳細なソースコードが流出したことで、どのような仕組みで検索エンジンが実装されているのか確認できる状況です。

このソースコードを分析することで、具体的な検索エンジンのアルゴリズムが把握できます。また、YandexはGoogle出身のエンジニアが多いことで知られているため、YandexのアルゴリズムはGoogleのアルゴリズム予想に役立つかもしれません。Yandexの騒動からその内容、Googleのアルゴリズムの考察します。

Yandexと今回の流出騒動

Yandexと今回の流出騒動

Yandexは日本では主要な検索エンジンではないため「どのようなサイトなのか」との疑問を持つ人もいるでしょう。今回の分析に至った背景となる出来事について簡単に解説します。

Yandexはロシア圏の検索エンジン

Yandexはロシア国内を中心に利用されている検索エンジンです。日本ではあまり利用されていない検索エンジンで、全世界の利用数ランキングとしては5位です。1パーセント程度のシェアを誇っていて、極端に利用者数の多い検索エンジンとは言えません。

ただ、ロシア周辺では非常に有名な検索エンジンであり、その地域に限るとシェアは非常に高いものです。そのため、Google出身のエンジニアなどレベルの高いエンジニアが集まっていて、高品質なサービスが提供されています。

元エンジニアによるYandexのソースコード流出

ロシア周辺で重要な検索エンジンであるYandexのソースコードは、元従業員によって流出させられました。サイバー攻撃などが起きたわけではなく、人為的に流出させられたことが確認されています。これには政治的な意図などが含まれていると考えられますが、詳細な理由については不明です。

今回の事件は元従業員がソースコードを流出させたため、細かな部分までソースコードが知れ渡ってしまったという特徴があります。これを分析することによって、Yandexのアルゴリズムや、検索エンジンという点では同じであるGoogleのアルゴリズムが推測できる状況なのです。

Yandexのコードから推測するGoogleの検索アルゴリズム

Yandexのコードから推測するGoogleの検索アルゴリズム

Yandexのソースコードが流失し、これを解析することによっていくつもの事実が判明しました。それらの内容を踏まえて、Googleの検索アルゴリズムはどのようになっているのか考察してみます。

ページランク

ページランクはその名のとおり、それぞれのページに付与されたランクです。ランクが高ければ高いほど検索上位に表示されると考えられており、Yandexでもページランクの考え方が採用されていることが判明しました。

ただ、ページランクはいくつもの要素から評価した最終結果であり、いきなりページランクが付与されるわけではありません。具体的な評価項目は1,000種類以上あるとも言われておりますが、それらの中でも現時点で分析できている主要なものを以下では解説します。

公開されてからの期間

ページが公開されてからの時間が重要視されています。具体的な期間と評価の関係については分析されていませんが、評価項目として利用されていることが確認されている状況です。

一般的に、公開されてから時間が経ちすぎると情報が陳腐化していると推測されます。そのため、とにかく時間が経過すれば評価が高まるということはないでしょう。公開されてから一定期間のページについては評価が高く、それ以外の期間については評価が下がるなどのアルゴリズムが考えられます。

また、Googleの検索状況を確認してみると、公開されて間もないページでも上位に表示されることがあります。一概に時間が経てば良いというわけではなく、他の要素との兼ね合いで最終決定されると考えられます。

ページの最終更新日

ページの最終更新日がアルゴリズムに含まれています。ページが公開されてからの日数だけではなく、最終更新日も考慮されているのです。上記で触れたとおり、公開されてから時間が経ちすぎると情報が陳腐化してしまいます。そのため、情報が更新されているかどうかは非常に重要な要素でしょう。

Yandexで最終更新日が要素に含められているように、Googleでも最終更新日は重要だと考えられます。検索結果に更新時間が表示されることがあり、クロールにおいて何かしらの情報を保持していると推測されるのです。内容によっては情報の新鮮さが非常に重要となるため、コンテンツによって重要度合いが左右されているかもしれません。

ドメインの平均ランキング

ドメイン全体の平均ランクがチェックされています。ここでの平均ランクについては詳細な分析ができていませんが、同じドメインから提供される複数ページの平均ランクでしょう。つまり、全体的に良い情報が提供されているかどうかが重要になると考えられます。

Googleにおいてもドメインの価値は何かしら評価されていると考えられます。ただ、Yandexのように提供されているページの平均ランクから評価されているかどうかの判断は不可能です。全く違う観点から評価されているかもしれません。とはいえ、Googleでも「そのドメインから平均的に良い情報が提供されているか」は重要だと考えられます。

URLの文字列

URLにどのような文字列が含まれているかが重要です。できるだけタイトルと一致させるなど、内容を踏まえたURLを設定しなければなりません。Googleにおいても内容が理解しやすいURLの方が評価されやすい傾向にあるため、同様の考え方だと認識してよいでしょう。

また、詳細にアルゴリズムを分析してみると、Yandexは3単語程度のシンプルなURLが評価されています。内容に沿ったURLを設定すべきですが、単語数が多く長すぎると評価されないのです。Googleの検索順位も極端にURLが長いものは少ないため、Yandexと同程度の基準があると考えられます。

ページのパフォーマンス

ページの表示速度などレスポンスが評価項目に存在します。ユーザビリティの低いWebサイトは評価が下がってしまうと考えてください。

これはGoogleにおいても同様であり、表示速度の遅いページは評価が下がってしまう傾向が見られます。明確な基準については把握できませんが、何かしら表示が遅くなる要素があると評価が下がってしまうのです。YandexもGoogleもある程度は似た評価だと考えてよいでしょう。

ホスト(サーバー)の安定性

ページの表示速度だけではなく、安定してページが表示されるかも重要です。例えば、40xエラーや50xエラーなど、ホスト側でエラーが発生していないかが評価されています。

Webサイトを閲覧している際に何かしらのエラーが発生するとユーザビリティの低下を招きます。また、エラーが表示されてしまうことで、ユーザーに不安を与えかねません。このような状況は決して望ましいとは言えず、Yandexでは評価が下がっています。

Googleではどのような評価が下されるか判断できませんが、同様にエラーが出るページは評価が低いと考えてよいでしょう。ページが表示されないと、そのページの価値がなくなってしまうため、評価が下がるのは当たり前です。

ユーザーの行動

ページにアクセスしたユーザーがどのような行動をとったかも重要視されています。具体的な指標については分析されていませんが「滞在時間」「直帰率」などが重要視されているでしょう。これらはGoogleのアルゴリズムにおいても重要だと考えられています。

一概には言えませんが、滞在時間が長ければそれだけ内容に意味のあるWebサイトだと考えるはずです。また、直帰率が低ければ他の情報も得ようとしたと考えられます。どちらもWebサイトの価値を評価する指標となり得るため、Yandexでは採用されています。

なお、「ユーザーの行動」という大きなくくりではYandexもGoogleも同じですがその詳細がどの程度一致しているかは判断できません。Googleには独自の評価項目が存在する可能性があります。

ユーザーのリピート率

同じユーザーが同じページを訪れているかが重要視されます。繰り返し同じページを訪れるということは、それだけ価値のあるWebサイトだと考えられるからです。

ただ、ここで「同じユーザー」が何を指しているのかは現時点では分析されていません。Yandexがすべてのインターネットトラフィックを監視することは不可能であるため、恐らくYandexのユーザーに限った話でしょう。検索エンジンとしてYandexを利用したユーザーが、同じページを訪問しているかどうかを評価していると考えられます。

Googleも同様に大量の情報を保有しているため、繰り返しアクセスしているかどうかの評価は可能なはずです。ただ、実際にそのような情報をアルゴリズムに組み込んでいるかの判断はできません。

クロールの深さ

トップページからどの程度の距離感にあるか「クロールの深さ」が重要です。Yandexの場合はトップページに近いほど評価が高く、トップページから3階層までが評価されています。それ以上深い階層にあるページは、この観点では評価されていません。

近年は検索エンジンから個別のページへ直接アクセスすることが多いですが、利便性という観点ではトップページからの階層が重要です。GoogleにおいてもYandexと同様にトップページからの距離に応じて、そのページの評価を変動させている可能性は十分にあります。

メインページからの被リンク

メインページからリンクされているかどうかという評価項目があります。重要なページからリンクされているページほど、価値の高いページだと考えているのでしょう。Googleでも重要なページからリンクされていると評価が高まる傾向があるため、似た仕組みだと考えられます。

ただ、ここで重要となるのは「メインページ」の定義が確認できないことです。どのようなページが該当するのか判断できず、どのようなリンクが評価されているのかも判断できません。同じドメイン内でのリンクなのか外部からのリンクなのかで意味合いが大きく異なります。

サイト名やURLの検索回数

Webサイトのサイト名やURLがどの程度検索されているのかがアルゴリズムに組み込まれています。これはYandexが検索の情報を解析し、その結果を活用していると考えてよいでしょう。検索回数が多ければ多いほど評価が高いと考えられます。

Googleにおいてはサイト名やURLの検索回数が検索結果に影響しているのか判断できません。アルゴリズムには含まれているかもしれませんが、実際に相関関係を評価することは非常に難しいのです。ただ、有名なWebサイトほど上位に表示されやすいため、サイト名やURLで検索される機会の多いWebサイトはGoogleでも優遇されている可能性があります。

ブックマークの数

Yandexのアルゴリズムにはブックマークの数を評価しています。ブックマークの数が多ければ多いほど、プラスに働く要素です。多くの人に注目されているという意味合いで、評価されるようになっているのでしょう。

ただ、このような項目はありますが、「ブックマーク」が何を指しているのかは判断できません。一般的にブックマークといえばブラウザーの機能ですが、その内容をYandexがすべて把握することは不可能です。そのため、Yandexに登録しているユーザーなどのブックマーク数だと推測されます。

GoogleにおいてもGoogleアカウントやブラウザーにおいてブックマークの機能が存在します。これらの情報を収集して、検索結果に反映しているかもしれません。

Google Mapsの掲載などユーザビリティ向上の要素

ページの内容を元にGoogle Mapなどユーザビリティを高めるものが含まれているかどうかが評価されています。Yandexの評価項目では「Maps」などとしか記載されていませんが、ページ内に埋め込む地図などの情報と考えてよいでしょう。

ユーザビリティを高めるために重要な要素だとは考えられますが、どのような条件下で評価されるのかは判断できません。全てのページにこのようなコンテンツが必要となるわけではなく、特定のページでしか必要ないからです。例えば、お店へのアクセスを案内するようなページでは必要となりますが、お店の料金ページでは必要となりません。

Googleはこのようなコンテンツを数多く提供しているため、ページに組み込まれているかを評価している可能性はあります。ただ、適切な組み方であるのかの判断は難しく、極端に大きな影響は与えないと考えてよいでしょう。

タイトルの大文字率

Yandexはページタイトルにどの程度大文字が含れているかを評価しています。大文字が多いほどページタイトルとしての評価が高まる仕組みです。

日本語圏ではあまり馴染みがないかもしれませんが、英語圏などではページタイトルを大文字にする傾向があります。また、Webサイトではなく新聞などの印刷物においても、見出しには大文字が使われるケースが多いのです。他にも、単語の区切りを分かりやすくするという観点でも大文字が多用されます。

Googleにおいてもタイトルの読みやすさから、同様の評価項目は存在するでしょう。ただ、これは英語圏における常識であり、日本語圏ではあまり馴染みのないものです。そのため、日本で利用するGoogleの検索アルゴリズムにどの程度の影響があるのかは不透明だと考えられます。

ページ中に含めたビデオなどのリンク切れ

ページ内に挿入されたビデオなどのコンテンツにリンク切れが無いかがチェックされています。これは加点要素ではなく、リンク切れが含まれている場合に減点される要素です。そのため、ビデオなどのコンテンツが含まれていないページにおいては影響がありません。

このようなリンク切れは純粋にユーザーの利便性を下げてしまうものです。そのため、Googleもリンク切れはマイナスの評価を下しているでしょう。ビデオなどのコンテンツに限らず、ページ間のリンクについてもリンク切れは望ましくないと考えられます。どの程度の影響があるかは判断できませんが、ユーザビリティを下げてしまうため、ある程度の影響があっても不思議ではありません。

特定サイトの優遇

検索結果において特定のWebページが優遇されるアルゴリズムが確認されています。例えば、検索結果にWikipediaなど利用者の多いサイトが表示されやすいようになっているのです。また、TikTokやYouTubeのShortなど、動画に対する制御が確認される部分もあります。

Googleも同様の傾向が見られ、何かしらのキーワードを検索するとWikipediaからの説明が表示されることがあります。これはWikipediaを優遇しているアルゴリズムだと考えてよいでしょう。通常のアルゴリズムでも検索上位に来る可能性は高いですが、Wikipediaは別枠で表示されることがあります。

具体的にどのWebサイトがどの程度優遇されているのかは判断できません。ただ、何かしら優遇されるサイトとそうではないサイトがあると考えられます。

Yandexのコードから検索アルゴリズムを考える際の注意点

Yandexのコードから検索アルゴリズムを考える際の注意点

Yandexのソースコードから Google のアルゴリズムを考察しました。ただ、これらの考察にはいくつか注意点があるため、それらについて以下で解説します。 

まったく同じアルゴリズムではない

YandexはGoogle出身のエンジニアが多く在籍してるということもあり、アルゴリズムに似ている部分が多いと考えられています。事実、流出したソースコードを分析したエンジニアの中には「半分以上はアルゴリズムが似ているのではないか」との見解を持つ人がいるぐらいです。

ただ、あくまでも似ている部分があるというだけで、まったく同じアルゴリズムというわけではありません。今回、Yandexを参考にGoogleの検索アルゴリズムについて考察していますが、これがすべて当てはまるとは限らないのです。Yandexの場合は紹介した内容であり、Googleにおいては大きく違う部分があるかもしれません。むしろ、Googleのエンジニアから知見を得て、新しいアルゴリズムが開発されている可能性すらあります。

それぞれの要素で重み付けが把握できていない

ソースコードを解析することによって「どのような要素が検索結果に影響しているか」ということが明らかになってきました。今までに想定されているものもあれば、想定されていないものもある状態です。目からウロコの要素が含まれているのも事実でしょう。

ただ、ここで注意してもらいたいのは「それぞれの要素の重み付けについては分析が完了していない」ということです。すべての要素が均等に評価されているとは考えられず、特に影響するものとほぼ影響しないものがあると考えられます。この点が解析されていない点には注意しなければなりません。

GoogleにおいてもYandexと同様にいくつもの観点からWebサイトを評価していると考えられます。ただ、ほぼ同じ観点だとしても、重み付けは異なるでしょう。最終的には重み付けが分からないと、それぞれの観点がどの程度重要であるのか判断しきれないのです。

アルゴリズムは日々変化している

YandexやGoogleはもちろん、どのような検索エンジンでもアルゴリズムは日々変化していると考えるべきです。公表されることも公表されないこともありますが、定期的に何かしらの変更が加わっていると考えましょう。つまり、今回、Yandexのアルゴリズムが流出して分析されましたが、いつまでもこのままとは限らないのです。

事実、Googleなどの検索エンジンは、唐突に検索結果が変化し、順位が大きく変動することがあります。これは検索のアルゴリズムに何かしら大きな変更が加えられたと考えるのが無難でしょう。特に告知されることもなくアルゴリズムが変更され、順位に影響することは多々あります。Yandexのアルゴリズムはあくまでも参考であり、Yandexもそれ以外も日々変化するものだと考えておくべきです。

まとめ

Yandexのソースコードが流出し、検索アルゴリズムが分析された件について解説しました。また、YandexはGoogleに似た検索エンジンということもあり、Googleのアルゴリズムについても考察しました。完全に同じアルゴリズムではありませんが、似た部分があり検索アルゴリズムの理解に役立つと考えられます。

ただ、検索アルゴリズムは日々変化するものであり、今回解説した内容が永久的というわけではありません。このような点を踏まえながら、Yandexのソースコード流出によるアルゴリズム分析の結果を適宜ご参考ください。