FeedBurnerを利用したままYahoo!ブログ検索にインデックスさせる方法

GoogleのサービスFeedBurnerはYahoo!ブログ検索と相性が悪いことが一部で有名です。Yahoo!ブログ検索は「BlogとRSSフィードのドメインが違うと検索エンジンクローラの巡回対象にならない(ことがある)」という制限(仕様)が存在するからです。FeedBurnerは「feedburner.jp」や「feedburner.com」のドメインを使用することになるので、多くの場合この条件に引っかかってしまいます。

この問題をそのまま回避する方法としては、FeedBurnerのサービス(設定)の一つである「マイ・ブランド」でフィードドメインそのものを変更するという手があります。

Travellers Tales : FeedBurner を自ドメインで使う MyBrand を設定してみた はてブ数

しかし、これは自分のドメインを所有したうえでBlogを運営していないと無理です。残念ながらFC2ブログのような自分のドメインが使えないレンタルBlogサービスでは使うことができません。

その後、先日のエントリブロガーがFeedBurnerを導入するメリット・デメリット はてブ数で「色々テストしている」と書いたように、少し気合いを入れて思いつく対策をいくつか試してみました。その結果、少なくとも自分が使用しているFC2ブログアカウントでは、FeedBurnerを使いつつYahoo!ブログ検索に引っかかる(インデックスされる)ようになりました。

これが他のBlogサービスでも同じように使える方法かはわかりませんし、あるいは同じFC2ブログでもアカウントが違えば別の結果になるという可能性もあります。これはあくまで自分が成功した方法に過ぎませんが、手順を紹介するので困っている場合は参考にしてみてください。

方法その1 RSS Auto-Discoveryを併記する

サイト(Blog)のRSSフィードの場所(URI)がどこであるかをアプリケーションに示すためには、通常「RSS Auto-Discovery」という仕組みが使われます。ブラウザやWebサービスがRSSフィードを探し出せるようにするためには、このRSS Auto-Discoveryに対応したHTMLタグをheadタグ内に書き込む必要があります。具体的には以下のようなものです。

<link rel="alternate" type="application/rss+xml" title="RSS" href="[Feed URI]" />

まともなBlogサービスやテンプレートではこのタグは標準で存在しているはずなので、普通は気にする必要はありません。

通常はフィードのURIが変更された場合はこのタグのURIも変更するべきなのですが、前述の通りYahoo!ブログ検索はこのフィードURIのドメインがBlogのドメインと違うとインデックスしないことがあります。つまり、FeedBurnerのフィードURIに書き換えてしまうとトラブルが発生するということです。

その1はFeedBurnerに読み込ませる前の元フィードと、FeedBurnerのフィードを両方併記してしまう方法です。このBlogはかなり早い段階でFeedBurnerを利用していたのですが、このYahoo!のトラブルを認識していたのでずっとこの手段をとっていました。具体的には以下のような形です。

<link rel="alternate" type="application/rss+xml" title="RSS" href="[元Feed URI]" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="[FeedBurner URI]" />

元のフィードは当然Blogと同じドメインなので、問題は起きません。インデックスも普通におこなわれます。

ただこの方法には弱点があって、以下のような別な問題が発生します。

  • 元フィードとFeedBurnerで意味無くほぼ同一のフィードが配信される
  • 読者の登録先はほぼ確実にばらけるため、フィード解析が中途半端になる

方法しては非常に簡単なのですが、FeedBurnerを使うメリットが落ちてしまうでしょう。

方法その2 FeedBurnerとPING送信の設定変更

先日から試して上手くいった方法はこっちです。RSS Auto-DiscoveryはFeedBurnerのみに統一していますが、それでもYahoo!ブログ検索に表示されています。

Yahoo!ブログ検索での表示結果 (FeedBurner使用中)

手順1 「記事のクリックスルー集計」をOFFにする

「FeedBurnerスタッツ」にアクセスして「記事のクリックスルー集計」がONになっている場合はチェックを外してください。これは記事のクリック数を調べるためのものですが、ONにするとフィードの記事URIが書き換わってしまいます。普通にブラウザ等からアクセスするならリダイレクトされるので問題ないのですが、フィードの情報をWebサービスなどで使う場合は挙動がおかしくなるようです。

具体的な例としてはlivedoor Readerにはフィードから直接記事をSBMへクリップする機能があるのですが、これを使うとクリップ先がリダイレクト元のFeedBurnerページになってしまうことがありました。検索ロボット(クローラ)もRSSフィードをチェックしに来るので、サービス提供元のGoogleはともかくYahoo!は悪影響があるのかもしれません。

FeedBurner公式Blogにも以下のように書かれています。

■クリックスルー設定について

(中略)

この機能を使用するとブログ検索にインデックスされない事象が確認できておりますため 場合によってはこの機能を無効(チェックを外す)にしてください。

Yahoo!ブログ検索対策【最終報告】 - FeedBurner Information

機能の一つが使えなくなるのは残念ですが、FeedBurner自体の設定はこれで終わりです。

手順2 Yahoo!ブログ検索へのPING送信先を変更する

Yahoo!ブログ検索ロボットへのPING送信先は「http://api.my.yahoo.co.jp/RPC2」なのですが、ヘルプにはこれとは別にもう一つ記載されています。

http://api.my.yahoo.co.jp/rss/ping?u=[Feed URI]

この[Feed URI]部分をFeedBurnerに読み込ませている元フィードのURIに変更してPINGを送信してください。任意の場所にPING送信ができないBlogサービスでも、ヘルプによればブラウザに直接URIを入れてアクセスすればいいようです。

最後に

このBlogの場合は、方法2の手順1と2をやっただけで問題なくFeedBurnerを使いつつYahoo!ブログ検索に表示されています。ただ場合によっては手順1と2のどちらかのみでもインデックスされるかもしれませんし、あるいは両方やってもダメかもしれません。ただ手間としては大して面倒ではないはずなので、とりあえず試してみるのをお勧めします。