Kuwata’s Blog くわぶろ

@PC/IT 家族 芸能 音楽 心霊 北九州 動画 写真 by くわ。

WordPressの投稿記事をYahoo!ブログ検索にインデックスさせる方法

Posted on 2009-05-02 12:49 AM under くわぶろ & WordPress, ハード/ソフト&ネット

ふぅ・・・長い道のりでした。
やっとWordPress 2.5.1の投稿記事がYahoo!ブログ検索にインデックスされるようになりました! :grin:
(まだ直前の1記事しかインデックスされていないので、今書いてるこの記事がどうなるかわかりませんが・・・[追記]問題なくインデックスされました!)

決定打は『 index.rdf 』です。
ブログURLに index.rdf (RDF Site Summary) を置いておく必要があったようです。

《 追記 》
その後の調査で、Yahoo!ブログ検索のボットはindex.rdfを決め打ちで見に来ているわけではないことがわかりました。ちゃんと<link rel=”alternate”・・・で指定されたフィードURLを見に来ていました。index.rdfを決め打ちで見に来ていると確認できたのは、現在のところ『31Engine』ともう一つ(詳細不明)だけです。お詫びして訂正します。m(__)m

《 追追記 》
gooブログ検索のボットもindex.rdfを決め打ちで見に来るそうです。残念ながら“くわぶろ”へは別の問題があるので来てもらえませんが・・・。

でも、WordPress で index.rdf を用意するにはどうすればいいの?

簡単です!
index.rdf へのアクセスを RDF(RSS 1.0) のURLにリダイレクトすればいいのです。
僕は .htaccess を直接編集してそれを実現しました。

以下は当ブログ“くわぶろ”用の .htaccess です。
※半角不等号を全角に変えてあるのでコピペして使わないでください。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /kuwata/blog/
RewriteRule ^index\.rdf$ /kuwata/blog/feed/rdf/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /kuwata/blog/index.php [L]
</IfModule>

4行目の『 RewriteRule ^index\.rdf$ /kuwata/blog/feed/rdf/ [L,R=301] 』が今回リダイレクト用に追加した部分です。
『 /kuwata/blog/feed/rdf/ 』の部分はお使いの環境に合わせて変更してください。
パーマリンク設定をデフォルトのまま使っている場合は『 /kuwata/blog/?feed=rdf 』のようにしてください。

以上でリダイレクトの設定は終わりです。
お使いのブラウザから『 http://www.ksa-japan.com/kuwata/blog/index.rdf 』(※URLは適宜読み替えて)にアクセスしてみてください。
ブラウザとその設定によって挙動が違いますが、それらしいものが表示されれば成功です。 :smile:

やっておくべきことはあと3つ。

1.RDF(RSS 1.0)の記事の日時がおかしいのでソースを修正します。
  ※サーバーのローカルタイム(/etc/localtime)が日本のタイムゾーンに設定されていること。
  ※半角不等号を全角に変えてあるのでコピペして使わないでください。

feed-rdf.php の26行目辺り
mysql2date(’Y-m-d\TH:i:s\Z’, get_lastpostmodified(’GMT’)
の部分を
mysql2date(’Y-m-d\TH:i:s+09:00′, get_lastpostmodified()
に変更。

同じく feed-rdf.php の44行目辺り
mysql2date(’Y-m-d\TH:i:s\Z’, $post->post_date_gmt
の部分を
mysql2date(’Y-m-d\TH:i:s+09:00′, $post->post_date
に変更。

2.念のため言語(ja)を記述します。
  ※半角不等号とスペースを全角に変えてあるのでコピペして使わないでください。

feed-rdf.php の13~19行目辺り
<rdf:RDF
    xmlns=”http://purl.org/rss/1.0/”
    xmlns:rdf=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”
    xmlns:dc=”http://purl.org/dc/elements/1.1/”
    xmlns:sy=”http://purl.org/rss/1.0/modules/syndication/”
    xmlns:admin=”http://webns.net/mvcb/”
    xmlns:content=”http://purl.org/rss/1.0/modules/content/”
の最後の行の直後に
    xml:lang=”ja”
を追加。

3.さらに念のため。。。
  ※半角不等号とスペースを全角に変えてあるのでコピペして使わないでください。

feed-rdf.php の27~30行目辺り
    <?php the_generator( ‘rdf’ ); ?>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
の4行を削除。

以上でほぼ完璧だと思います。 :razz:
ソース編集の前にバックアップを忘れずに!

《 追記 》
あっ、もう一つ修正しなければならない箇所(重要!)がありました。
お使いのテーマによってはファイル名が異なるかもしれませんが、header.phpを修正します。
※半角不等号を全角に変えてあるのでコピペして使わないでください。

header.php の12行目辺り
title=”<?php bloginfo(’name’); ?> RSS Feed” href=”<?php bloginfo(’rss2_url’);
の部分を
title=”RSS” href=”<?php bloginfo(’rdf_url’);
のように変更(rss2_urlをrdf_urlに変更するだけでもOK)。

以上です。

※この記事はWordPress 2.5.1用に書かれています。
※間違いがありましたらコメントにて知らせてください。
※「やってみたけどインデックスされない!」という方、『それでもYahoo!ブログ検索にインデックスされない・・・という方へ』を読んでみてください。

【PR】

次世代ブログWordPressで一歩先をいく

このエントリーのトラックバックURL:

Read Comments

  1. Posted by いしまり総統 on 2009-05-02 4:31 PM

    休日出勤中にアタマから湯気が~・・・・ :cry:

    おかげで、サブブログのぐ~ぐるへのサイトマップ登録しようと思ってたの思い出しました・・・・

  2. Posted by くわ。 on 2009-05-02 8:28 PM

    この記事は、いしまり総統さんにサイトマップ登録のことを思い出してもらうために書いたのです。 :mrgreen:

  3. Posted by dicekitty on 2009-05-10 11:01 PM

    同じようなことされてる方いるんだなーと
    GWの頃から幾度と見させていただきました。
    ちょっと僕自身色々仮説をしていたのですが、
    今日、くわさまの手法を実施させていただきました。

    ちょっと合点がいかない点があったのでご質問させていただきます。

    Yahooのクローラは/index.rdfと/index.phpを見に行き
    <link rel=”alternate” type=”application/rss+xml” ・・・ href=”http://blog.dicekitty.com/feed/rdf/”
    両方合致していれば、クロールするってことなんでしょうか?

    というかうちクローラに推薦しても
    クローラが来たログがまったく見当たらないので
    実施することに意味があるのかもわからないのですが・・・(笑)

  4. Posted by くわ。 on 2009-05-11 9:34 AM

    dicekittyさん、コメントありがとうございます!

    気になってApacheのログを眺めてみたところ、重大な見落とし/間違いが見つかりました。

    当ブログの場合のクローラの挙動(更新ping送信後)なんですが、

    1.Y!J-BSC/1.0が個別記事を直接見に来る
      ※当記事の場合 /kuwata/blog/post/334

    2.末尾に“/”が付いたURLに301リダイレクトされる
      ※当記事の場合 /kuwata/blog/post/334/

    3.Y!J-BSC/1.0が<link rel=”alternate”~に書いてあるフィードURLを見に来る
      ※当ブログの場合 /kuwata/blog/feed/rdf/

    4.Yahoo! Slurp/3.0がブログを直接見に来る
      ※当ブログの場合 /kuwata/blog/

    ということがわかりました(まだ見落としがあるかもしれませんが)。

    たまたま31Engine用の対策(index.rdfを決め打ちで見に来る)をした直後にYahoo!ブログ検索にインデックスされたので、「Yahooもこれが原因だったのか!」と思いこんでしまいました。 :yabai:

    見落とし/間違いに気付くきっかけを与えてくださり感謝です!

    ※元記事には《追記》を入れました。

    クローラ自体が来ない件に関しては少し心当たりがあるので現在調査中です。
    もしわかったら書きます。

  5. Posted by 考察 WordPressがYahoo検索にインデックスさせる方法 | All are fictions. on 2009-05-11 6:17 PM

    [...] わぶろさまのブログを拝見してて思ったのですが、 WordPressの投稿記事をYahoo!ブログ検索にインデックスさせる方法 | Kuwata’s Blog くわぶろ .htacessと改変されたRDFをbotに見せているように見 [...]

  6. Posted by dicekitty on 2009-05-11 6:22 PM

    早速のご確認痛み入ります。

    ちょっと僕も色々調べたのですが、Yahooブログに関してだけ言えば
    .htaccessはもしかして不要かな?と思いました。
    トラックバック貼ったので、ご確認いただけると幸いです。

    あと念のためにやっているだろう箇所と、テーマの編集ももしかして
    不要かもしれない・・・と思ったので、自身でテストしてみます。

    アップデートの度に編集しないといけないかもしれないので、
    編集箇所は少ないほうがいいな・・・と思うのです。

  7. Posted by トイレのうず on 2009-05-26 4:12 PM

    【まとめ】WordPress を Yahoo! ブログ検索させる方法 その9

    WordPress を Yahoo! ブログ検索にインデックスさせる方法を、まっさらなデフォルトのテーマにて検証してみました。Yahoo! ブログ検索にインデックスさせることに成功したのでまとめを記載…

  8. Posted by あさこん on 2009-05-26 4:24 PM

    くわ。さん、こんにちは。

    WordPress を新規インストールしデフォルトのテーマにて、
    少しずつ改変を行ってどの改造が有効なのか検証を行ってみました。
    トラックバックをいたしましたので、ご覧いただけるとありがたいです。

    結論からいうと、Yahoo! ブログ検索に関しては、
    くわ。さんのおっしゃっていたPing送信先URLと
    ヘッダ内のRSSの記述がポイントでした。

    いろいろと参考にさせていただきました。
    本当にありがとうございます。

  9. Posted by くわ。 on 2009-05-26 6:46 PM

    あさこんさん、こんにちは。

    トラバ&コメントありがとうございます。
    早速まとめ記事拝見しました。
    とてもわかりやすくまとめられていて「感動! :razz: 」です。
    また新たな発見等ありましたら情報交換いたしましょう。 :nikoniko:

    gooブログに関しては、“くわぶろ”からpingを送れるようになったものの、クローラが来てくれません。
    それに関して、以下の手順でその理由を探ってみたのですが、、、

    gooブログ検索で“くわぶろ”を検索

    WordPress版の“くわぶろ”が1件も出てこない

    検索窓直下にある「ブログを探す」をクリック

    検索結果の2番目にWordPress版の“くわぶろ”が表示される

    右端の「詳細情報」をクリック

    該当ブログの基本情報が表示される

    RSSのアドレスがどうなっているか調べる

    なぜかRSS 2.0時代のアドレスのままになっている

    最新の記事一覧を見る

    「最新記事が見つかりませんでした。」になっている

    gooブログ検索もRSS 1.0形式じゃないと記事を取得できないようですが、RSS 2.0フィードのアドレスがgooのDBに登録されたまま更新されない・・・この辺りに問題が潜んでいそうです。

  10. Posted by あさこん on 2009-05-26 11:59 PM

    くわ。さん、こんばんは。

    gooブログに関しては、当方のブログでもクローラはくるけれど、
    インデックスされない状態が続きました。

    もしかしてと思い、
    ヘッダ内のRSSのURLが「http://xxx.com/feed/rdf/」と出力されるところを
    「http://xxx.com/index.rdf」に変更したところ、
    半日くらい遅れですが、インデックスされるようになりました。

    ダメもとで試してみてはいかがでしょうか?

    ちなみに Pingoo を使って Ping 一括送信すると、クローラすらきてくれません。謎です。

  11. Posted by くわ。 on 2009-05-27 12:28 AM

    あさこんさん、こんばんは。

    なるほど!
    リダイレクトするだけじゃなく、ヘッダのRSSのURLもindex.rdfに変えるんですね!!
    盲点でした!!!
    いや、あさこんさんのブログに書いてあった気もしますが・・・完全に見落としてました。 :yabai:
    早速明日にでも試してみます。

  12. Posted by あさこん on 2009-05-28 1:39 PM

    くわ。さん、こんにちは。度々失礼いたします。

    くわ。さんの書かれていたgooに登録されているRSSを調べたところ、
    当方のサイトもRSS2.0のままでした。

    そして、インデックスされている記事の時刻が9時間過去のものになっていることに気がつきました。
    (GMTのままインデックスされている?)

    そこで、feed-rss2.php を改変いたしたところ、
    正常な時刻にてインデックスされるようになりました。
    なにかの解決になればと思い書き込みをさせていただきました。

    修正方法などは下記にまとめたのでよろしければご覧ください。
    【解決】goo ブログ検索にインデックスされた日時が9時間遅れている件

    追伸 インターネット環境の復旧をお祈りしております。

  13. Posted by Wordpress、検索トラフィックにyahooが少なかったら | カグア!Google Analytics 活用塾:事例や使い方 on 2009-06-01 4:01 PM

    [...]   WordPressの投稿記事をYahoo!ブログ検索にインデックスさせる方法  ゆめぐらま ≫ transport errorを回避?   【模索】WordPress を Yahoo! ブログ検索させる方法 その7  FeedburnerがYahoo!ブログ検 [...]

  14. Posted by くわ。 on 2009-06-11 2:29 PM

    あさこんさん、ありがとうございます。
    やっとインターネット環境が復旧しました。

    gooブログ検索の件、あさこんさんの記事を参考にもう少し頑張ってみようと思います。 :peace:

  15. Posted by トイレのうず on 2009-08-21 4:48 PM

    WordPress から Yahoo! ブログ検索に Ping を送信するプラグインの改造方法

    テスト運用してきて問題ないようなので、WordPressから Yagoo! ブログ検索に Ping を送るためのプラグインの改造方法を公開します。(GNU GENERAL PUBLIC LICENSE だから公開しても問題ないはずです…

  16. Posted by ヒビノソトコト » Blog Archive » とりあえずインデックスされない。 on 2009-09-03 8:24 AM

    [...] 【WordPressの投稿記事をYahoo!ブログ検索にインデックスさせる方法】 http://www.ksa-japan.com/kuwata/blog/post/334/ [...]

コメント投稿





使えるXHTMLタグ: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">

コメントは管理者の承認後、公開されます。

古い記事へのコメントは原則非公開(内容によっては公開)とします。

* は必須項目です。メールアドレスは公開されません。