robots.txtのNoindex(Disallowではない!)を使ったPageRankスカルプティング

今日の記事は、Search Engine Journalで知った、いつにもまして“玄人(クロウト)”好みなテクニックです。

robots.txtで利用できる”Noindex:”という知られていない記述です。

まず、簡単にrobots.txtのおさらいをしておきましょう。

robots.txtは、サーチエンジンのロボットのアクセスをブロックしてクローリングを拒否するために使います。

アクセスを禁じますから、インデックスされることはなく、当然SERPにも現れません。

メンバー専用エリアのように外部に公開したくないページに用いられます。

たとえば、次のように記述したrobots.txtを設置していたとします。

User-Agent: *
Disallow: /members/

「www.suzukikenichi.com/memnbers/」と、これより下のディレクトリ(フォルダ)とファイルにはどの検索エンジンのロボットもアクセスできません。

また、重複コンテンツを防ぐためにも用いられます。
インデックスさせる必要のないダブりのページを除外できます。

robots.txtの詳しい解説は過去のエントリをご覧ください。

  • robots.txtの書き方
  • それでは本題に入ります。

    通常、robots.txtでロボットをブロックするには、「Disallow:」というディレクティブを記述します。

    しかし、「Noindex:」というディレクティブが、利用できるのです。

    Disallowはロボットのアクセスそのものを拒否します。
    したがって、指定したページを見ることすらできません。
    もちろんインデックスしません。

    一方、Noindexはアクセスは可能です。
    ロボットは指定したページを見ることができます。
    しかし、インデックスしません。
    つまり、SERPに現れないのです。
    (おそらく、meta noindexタグと同じで、インデックス自体はしているはずで、ただSERPに出さないだけだと推測します。)

    Noindexがどんな場面で使えるかというと、PageRankスカルプティングです。
    Noindexで、PageRankの流れをコントロールするのです。

    SERPに出したくないページでも、外部からリンクが張られることがあり得ます。
    外部からリンクが張られるということは、PageRankが付くわけです。

    このページから、自分のサイトの別ページに内部リンクを張れば、PageRankを渡すことができます(もちろん、外部サイトでもOK)。

    しかし、このページをrobots.txtでブロックしておくと、ロボットはそのページにアクセスできませんから、リンク先をたどる(=PageRankを渡す)ことができません。
    そもそもページを見れないので、リンクの存在すら分かりませんね。

    せっかく集まったPageRankが、このページで止まってしまうのです。
    SERPに出す必要がないとはいえ、集めたPageRankは他のページを強くするために利用したいものです。

    ここで、Noindexを使います。

    robots.txtに次のように記述します。

    User-Agent: *
    Noindex: /passpr/

    サーチエンジンは、「www.suzukikenichi.com/passpr/」とこれより下のディレクトリとファイルにアクセスをしますが、インデックスしません。

    robot.txtのNoindexは、クローラをアクセスを妨げるものではありません。
    アクセスは拒否せず、インデックスだけを拒否します。
    「中身を見るけれども、内緒にしておく」ということです。

    アクセスして、リンクがあればリンクをたどりリンク先へPageRankを渡します。
    ※ただし、リンクにnofollow属性が付いていたり、meta noifollowタグが記述してあれば、リンク先をたどらないので、PageRankは渡されません。

    すなわち、meta noindexタグと同じ振る舞いをします。

    「わざわざrobots.txtのNoindexを使わなくても、meta indexタグで間に合うんじゃないの?」と、上級者なら思うはずです。

    確かにそのとおりかもしれませんが、robots.txtの場合はディレクトリ単位で指定できます。

    一方、Metaタグの場合はページ単位になります。

    設定したいページの数が多い場合には、全ページにmeta noindexタグを記述しなければならないので作業が大変です。

    同じディレクトリにあれば、robots.txtなら1箇所で設定できます。
    拒否を解除する時も、記述を消せばすべてのページに反映されます。

    少数のファイルであれば、meta noindexで用が足りますが、数が多い場合はrobots.txtのNoindexディレクティブが便利でしょう。

    インデックスさせたくないけれども、リンクが集まっているページから大切なページへPageRankを与えたい、こんな状況で利用してみてください。

    なお、robots.txtのNoindexは、Googleでのみサポートされているようです(非公式?)。

    User-Agent: googlebot

    でも、よさそうですね。