Phil Craven 氏による Google PageRank の解説です。
PageRankとは何か? What is PageRank?
PageRankとはウェブ上のページの“重要度”を表す数値のことです。あるページが他のページにリンクを張っている時、そのページはリンク先のページに一票を投じているとGoogleは考えます。得票数のより多いページは、重要度がより高いといえます。また、票を投じているページの重要度に応じて、その一票自身の重要度が決められ、Googleはそのページに投じられている票によって、ページの重要度を計算します。つまりPageRankの計算をする時にそれぞれの票の重要度を考慮に入れるのです。
PageRankはGoogleがページの重要性を決める方法であり、検索結果におけるページのランキングを決めるものです。GoogleにとってPageRankだけがページをランク付けする要素ではありませんが、それが重要であることは確かです。
注意:すべてのリンクが計算されるわけではありません。たとえば、ブラックリストに載っているリンクファームからのリンクは除去されます。それらのリンクによってページやサイトに0(ゼロ)のPageRankが与えられる危険性さえもあります。
ここからはPageRankのことを“PR”と表記します。
PageRankの計算 How is PageRank calculated?
ページのPRを計算するためには、内向リンク(サイト内のリンクとサイト外からのリンク)を考慮に入れます。ページのPRを計算する時の方程式は以下の通りです。
PR( A ) = ( 1-d ) +d ( PR ( t1 ) / C ( t1 ) + … + PR ( tn ) / C ( tn ) )
この方程式は、PRが開発された時にGoogleが公表したオリジナルです。Googleはこれに似た方程式を使用していると思われますが、それがどういう式であるかは教えてくれません。しかしこの方程式によって私たちの知りたいことはわかるので問題はないでしょう。
この方程式の ’t1 - tn’ はページAにリンクを張っているページで、’C’ はそのページが持っている外向リンクの数で、’d’ は負の要素であり普通0.85に設定されます。
もう少し簡単に考えてみましょう。
PR = 0.15 + 0.85×(そのページにリンクを張っている全てのページのPRの‘シェア’)
‘シェア’= ページのPRをそのページが持っている外向リンクの数で割ったもの。
ページは、リンクを張っているページに対し、PageRank値を‘投票’(リンクを張る)します。投票する時に渡すPR値は、自分自身の持つPR値よりも少し低くなります(自身のPR値×0.85)。このPR値はリンクを張るすべてのページに均等に分割されます。
このことから、5個の外部リンクを持つPR3のページは、100個の外部リンクを持つPR8のページよりも価値が高いことがわかります。あなたのページにリンクを張るページのPRは重要ですが、そのページ上の外向リンク数もまた重要です。
あるページが他のページに投票する時、それ自身のPRが投票している値によって減ることはありません。投票を行っているページは、自身のPRを分配し、最終的にゼロになるわけではありません。PRの譲渡ではなく、ページのPR値による投票にすぎないのです。これはたとえてみれば、株主総会のようなものです。それぞれの株主が所持している株数によって投票をしますが、株そのものを分配するわけではありません。ただ、そうだとしても間接的にPRを失うことはあります。これはまた後で説明します。
ここまではよろしいですか?さて次に、実際に計算がどう行われるか見てみましょう。
あるページのPR値を計算するには、今持っているPR(もしあればの話ですが)を完全に捨て、現在の内部リンクのリンク元ページのPRに基づいて新しい計算を行いますが、その内部リンクの今のPR値はかつてPRが計算された時から変わったかもしれません。
この方程式によってページのPRがどのように到達したのかよくわかります。しかし、計算を一回行っただけでは正しい結果を出すことはできません。ページAとページBという2つのページがあると仮定します。ページAもページBも他のどのページともリンクしていません。計算の仕方は次の通りです。
ページAのPRの計算
ページAは今新しいPR値を持っています。その計算にはページBからの内部リンクの値を使用しました。しかしページBは(ページAからの)内部リンクを持っていて、その新しいPR値はまだ計算されていません。よってページAの新しいPR値は不確かなデータに基づいているので正確であるとはいえません。
ページBの計算
ページBは新しいPR値を持っていますが、ページAからの内部リンクの新しいPR値を計算に使用しているので正確とはいえません。
これは不条理な状況です。私たちはBのPRを知るまでAのPRを算出することはできず、またAのPRを知るまでBのPRを算出することはできません。
両方のページが新しく計算されたPR値を持っているので、正確な値を出すためにもう一度計算をすべきでしょうか?いいえ。新しい値を使ってもう一度計算をすれば結果はより正確になりますが、上の例の場合、不確かな値で計算をすることになるので結果は不正確になってしまうでしょう。
この問題は、同じ計算を何回も繰り返すことで解決します。計算を重ねるごとに少しずつ正確な値がでます。実際、この計算はもともと不確かな値に基づいているので、完全に正確な値を出すことはできません。計算を繰り返しても値にほとんど変化が見られなくなったところで計算をやめます。80回から100回の反復計算をすれば十分でしょう。
注意:もしかしたら同じ方程式を使っているけれどページの現在のPRに計算結果が加算された論文をあなたは見たことがあるかもしれません。その新しい値(結果+現在のPR)は他のページとPRを分割した時に使用されます。しかしこれらの説明は間違っています。理由は以下の通りです。
1. もしページの現在のPRを含むと、同じ内部リンクのセットを何度もカウントしていることになります。一ヶ月前に内部リンクを使って計算され、そして今もう一度計算すると考えてみてください。内部リンクの同じセットが存在しているとしましょう。計算は内部リンクによって行われ、そして一ヶ月前の同じ内部リンクによって生じた値に足されます。そのリンクは2回カウントされたことになります。それはあり得ません。また、当時あったリンクが削除された時のことを考えてみてください。もし現在のPRが足されたら、結果に削除されたリンクもまだ含まれていることになります。それもあり得ません。
2. これらの説明にはGoogleが公表した同じ方程式が引用されています。それを変えたものもありますが、オリジナルの方程式が正しいので変える必要はありません。
正: PR ( A ) = ( 1-d ) + d (……) 誤: PR ( A ) = PR ( A ) + ( 1-d ) + d (……)
3. 現在のPRに毎回加算することによって、結果として生じる値は反復計算のために急上昇します。そしてその結果として得られるPR値は、実際のPR値とあまりにも異なり、正確な値を出すことができません。公表された、変更が行われていない方程式を使えば、Googleのツールバーに出る緑色のバーとかなり近い実際のPRを出すことができます。最後にしなければならないのは、0.nn〜1の値は1とし、1.nn〜2の値は2とし、2.nn〜3の値は3とすることです。Googleの計算はPR値を多くの少数桁まで出します。そしてツールバーに載せる時に整数に変えられます。
4. 最終的にあるページが他のページより大きいPRの割合を持つためにどうやってリンクを組織するかを見ていきます。計算の中で現在のページのPRを加算してしまうと、公開された方程式が使用された時と異なった割合をもたらします。なぜなら加算することは公開された方程式通りのやり方ではないので、その結果とその割合は間違っているからです。
ページの現在のPRに加算したくなる理由は理解できます。あるページにリンクを張っているページはそのページにPRを加算しなくてはなりません。つまりリンクをしているページは、PRをいくらかリンク先に渡さなければならないと考えてください。しかし本当の計算がなされたのなら、それぞれのページはゼロから始まります。足すための現在のPRを何も持っていないからです。最初の反復計算では違いは生じません。“ゼロ”を足しても結果を変化させることはありません。しかし、一回目の計算の後、そのページは次の計算の時に足す現在のPRを持っています。よって結果は間違った方に進みます。
「現在のPRに加算する」という計算方法では、それぞれのページに最初のPR値が割り当てられます。普通はPR1です。これはそれぞれのページが他のページと分けるためのPRをいくらか持っているということを意味します。この間違いは、計算されたページに最初のPR値が当てはめられた時に起こります。この場合、内部リンクが最初のPRに加算され、そして最終結果が間違ったものになります。最初のPRを使用することは、すでに計算されたページに当てはめない限りは、その計算方法を実証する時に有効です。
それぞれの反復計算において、すでに計算されたページは、仕切り直されなければなりません。それは単にその内部リンクに依存しているのです。「現在のPRに足す」という考えはこの仕切り直しをしないので、その結果は必ず間違っています。
内部リンク Internal linking
事実:Webサイトは内部リンクによってリンクされたページ間に分配されたPRの最大値を持っている。
今はこのことを信じなくてもいいですが、紙と鉛筆と方程式を使って計算することによって同じ結論にたどり着きます。サイトの最大PRは内部リンクによってリンクされたサイトによってもたらされたPR値によって決定されます。私たちは、そのサイトの全体のPRについて話しているのであって、個々のページのPRについてではありません。
事実:サイト内のPRの最大値は、サイト内のページ数が増えるにつれて大きくなる。
サイトがより多くのページを持てば、PRもより大きくなります。もう一度、紙と鉛筆と方程式を使えば、同じ結論を得ることができます。数に入れられるページはGoogleが認知しているページだけであることを心に留めておいてください。
事実:リンクを不十分にすることによって、サイトの最大PRを出せない可能性はありますが、最大PRを凌ぐことはできません。
リンクを不十分にすることによって、サイトがその最大値に達しなくすることはできますが、どんな内部リンク構造をもってしても、その最大値を越すことはできません。最大値を増やす唯一の方法は、サイト内の内部リンクを増やすか、およびページ数を増やすことです。
全体の’PRに対してできること What we can do with this ‘overall’ PR.
外部リンクが全くない3つのページサイト(ページA、B、C)について考えてみましょう。実証してみるためにそれぞれのページに最初のPR値1を割り当てます。ペンと紙を用意した方がいいかもしれません。
そのサイトの最大PRはそのサイトのPR値と同じです。この場合、それぞれPR値1の3つのページがあります。よってサイトの最大値はPR3になります。
この時点ではどのページも他のページにリンクしていません。もし一度それぞれのページで計算をしたら、それぞれのPR値は0.15になるとわかるでしょう。いくら何回も反復計算をしたとしても、それぞれのページのPRは0.15になります。そのサイトの総PR値は3であったのに対して0.45です。そのサイトはその潜在的なPRのほとんどを非常に無駄にしています。しかしこれは極めて道理にかなったことです。なぜ孤立したページが高いPRを持っているのでしょう?
Googleは少なくとも一つの内部リンクを持っていないページにはインデックスしないので、それらのページはカウントされません。しかしこれはただのデモンストレーションです。
さてPR1を割り当てられたそれぞれのページについて考えてみましょう。ページAとページBをリンクさせ、それぞれのページに対する計算をします。結果は以下の通りです。
ページA = 0.15
ページB = 1
ページC = 0.15
ページAはページBに投票し、その結果ページBのPRは増えました。これはページBにとっては都合のいいことに見えますが、まだたった一回の計算にすぎません。私たちは前に見た不条理な状況をまだ考慮に入れていません。さらに反復計算を進めた後の数値を見てみましょう。
反復計算を100回行った後の数値は以下の通りです。
ページA = 0.15
ページB = 0.2775
ページC = 0.15
ここまでではまだページBが優勢に見えますが、はるかに以前ほどは差が開いていません。これらの数値はもっと現実的です。このサイトの総PR値は今0.5775です。これはわずかに高くなりましたが、最大値にはまだまだ届きません。
このリンクを試してみてください。全てのページから全てのページへリンクをしてください。それぞれのページはまたPR1から始めます。
ページA = 1
ページB = 1
ページC = 1
さてこれで私たちは最大PR値3を達成しました。どんなに多くの反復計算を行ったとしても、それぞれのページは最終的にPR1になります。
リンクが弱いためにPRをすぐに無駄にしてしまうことはすでに示されています。しかし私たちはすべてのサイトページに等しいシェアを与えたいとは思っていません。他のページを犠牲にして、一つか複数のページにより大きいシェアを与えるべきなのです。そうすべきページというのはインデックスページや主要ページ、そしてあるキーワードのために最適化されたページです。私たちは今3つのページしか持っていないので、インデックスページ(ここではページAにします)にPRを渡しましょう。これはPRの渡し方を学ぶのに役立つでしょう。
次に右図のことを行ってください。ページAをページB、ページCの両方にリンクさせてください。また、ページB、ページCをページAにリンクさせてください。全体的にPR1から始めます。一回目の計算の後では結果は以下の通りになります。
ページA = 1.85
ページB = 0.575
ページC = 0.575
そして100回の反復計算の後、結果は以下の通りです。
ページA = 1.459459
ページB = 0.7702703
ページC = 0.7702703
両方の場合、このサイトの総PR値は3(最大値)になるのでPRは無駄になっていません。またページAのPRの割合が、他の2つのページのPRよりも大きくなっていることも確認できます。これはページBとページCがPRをページAだけに渡し、他のどのページにも渡してないからです。これで私たちはサイトのPRを自分の好きなページに渡すことができました。
最後に、前回のリンクを保ちつつ、ページCからページBへリンクを加えましょう。また全体的にPR1で始めましょう。一回目の計算の後では以下の通りになります。
ページA = 1.425
ページB = 1
ページC = 0.575
前回の一回目の計算と比べると、ページAはPRを失い、ページBは増やし、ページCは同じに保っています。ページCはその支持票をページAとページBに分配しています。前回、ページAはすべてのPRを受け取ったので、そのため今回ページAがPRを失い、ページBが増やすことになったのです。100回目の反復計算の後では以下の結果になります。
ページA = 1.298245
ページB = 0.9999999
ページC = 0.7017543
この細かい計算が終わった後、ページCは少しPRを失いました。なぜならCは、PRをすべてAに渡す代わりにその投票をページAとページBに分配しましたが、ページA→ページCのリンクの中で、ページAがページCに渡すべき値が低かったからです。よってページから余分なリンクを足すことは、もしそのページのどれかがリンクを返還するリンクとリンクしていたとしたら、間接的にPRを失うことになります。もしそのページがリンクを返還しないリンクとリンクを張っていたらPRは失われないでしょう。もっと複雑な話をすると、もしリンクが間接的にでも返還されていたら(ページにリンクするページにリンクするページetc.)そのページはPRを少し失います。これは内部リンクではそんなに重要なことではありませんが、サイト外のページにリンクしている時には重要です。
内部リンクを組織することによって、サイトのPRを特定したページに流すことが可能であるとわかりました。内部リンクはサイトPRの必要性に応じて調整することができますが、それはGoogleがそのページについて知っている時のみなので、Googleが巡回していることをしっかり確かめてください。
内部リンク inbound links
内部リンク(外からのサイトへのリンク)はサイトの総PR値を増やす一つの方法です。他の方法としてはページ数を増やすことです。最初の方で述べたように、リンクファームからの内部リンクはPRとサイトに損害を与える可能性があるので避けた方がいいでしょう。
リンクのページのPRは重要ですが、そのページから発されるリンク数もまた重要です。たとえば、もしあなたが低いPR2を持ったページからの唯一のリンクならば、0.15 + 0.85 (2/1) = 1.85があなたのサイトに入るでしょう。ところが、PR8を持っているページとリンクしていても、他に99のリンクがあるのなら、あなたのサイトにもらえるPRは0.15 + 0.85 (7/100) = 0.2095 になります。明らかに、PR2のリンクの方がより良い値をもらえます。いったんPRがあなたのサイトに入ったなら、計算がまた行われ、それぞれのページのPRは変わります。内部リンク構造に応じて、重要なページのPRは増加しますが、直接リンクしたときほどの増加は望めません。
あなたがPRを渡すページへの内部リンクを持つことは有益です。他のページへのPRを受け渡しは内部リンクを通してサイト中に広がります。主要ページのPRは増えますが、直接リンクする時ほどは増えません。内部リンクを受け取るページが一番大きなPRを得られます。
外部リンク Outbound links
外部リンクはサイトの総PR値を外に流出するものです。その流出に対抗するためには、可能ならいつでも相互にリンクされることを確実にしてください。外部リンクの終わりのページのPR、そしてそれらのページからの外部リンク数のせいで、相互リンクはPRを得るか、もしくは失います。相互リンクを選ぶときは気をつけてください。
他のサイトへのリンクを通じてPRが流出する時は、内部リンク構造内の全てのページが影響を受けます。(たった一回の計算では影響は受けません。)あなたがどのページからリンクを出しているかによってもっとも損害を受けるページがどれかが決まります。特定のリンク構造上で計算を行うプログラムなしでは、どのページがリンクを出すのにふさわしいページなのかを決めるのは困難です。しかし、一般的に言って、PRの低いページからリンクさせるのがいいでしょう。
多くのウェブサイトは、PRと関係ない外部リンクを含む必要があります。残念なことに、あらゆる‘普通’の外部リンクではPRが流出してしまいます。しかし、他のサイトにリンクしてPRが流出しない‘普通でない’方法があります。PRはGoogleが他のサイトへのリンクだと識別した時に流出します。つまり解決法は、Googleが識別しなく、カウントしないリンクを使用することです。それにはフォームアクションとJavascriptコードを含むリンクがあります。
フォームアクション Form actions
フォームのアクション属性は、構文解析スクリプトのURLである必要はありません。どのhtmlページでもどのサイトでも提示することができますので、試してみてください。
例: <form name="myform" action="http://www.domain.com/"><formname="anotherform"action="http://www.domain.com/somepage.html"> <a href="javascript:document.myform.submit()">Click to go to wherever
裏技を使うなら、アクション属性を使用することです。アクション属性はフォームタグよりもJavascriptに組み込みやすく、Javascriptコードは ‘js’ ファイルに読み込まれるので、robots.txt fileによって禁止されたgooglebotに読み込まれずにすみます。
Javascript 例:<a href="javascript:goto('wherever')">
フォームアクションのように、URLを含んだjavascriptコードを別々の ’js’ ファイルに取り込むのも手ですが、robots.txt fileによってGooglebotが読み込むことを禁止されたディレクトリの中にファイルを保存する方がより狡猾な方法です。
(執筆 Phil Craven 氏)
(日本語版 翻訳:寺内 梓/監修:渡辺 隆広)