WordPress を Yahoo! ブログ検索にインデックスさせる戦線、定期報告です。
昨日は残念ながら、Yahoo! ブログ検索のクローラ Y!J-BSC/1.0 は1度も来てくれませんでした。なので、昨日手を加えた点についての検証はできず。

しかし、そんなあさこんに朗報が! なんと goo ブログ検索にインデックスされたのです! やった! 今朝(2009年5月19日午前8時58分)現在、12記事がインデックスされました!
Apache ログを調べてみると、gooブログ検索のクローラ gooblog/2.0 が午後12時前と午前12時前の2回アクセスしにきてくれてました。その時点までの記事がインデックスされてます。うれしい。

ここで goo ブログ検索インデックスへ試行錯誤をまとめてみようと思います。

1) Ping のユーザーエージェント(User-Agent)の変更
まず、一番大事なのが、PING の飛ばし方。goo ブログ検索は WordPress を目の敵のようにしているようで、WordPress の標準で PING を飛ばすと受け取ってはくれるけれど、無視されるみたい。それは PING 情報に含まれている ユーザーエージェント(User-Agent)を見て判断しているようです。
→Kuwata’s Blog くわぶろ:WordPressからの更新pingがgooブログ検索に拒否される問題を回避する方法

なので、上記サイトを参考にユーザーエージェント(User-Agent)を書き換えます。わたしは、Smart update pinger というプラグインを使っているので、smart-update-pinger.php の136行目を下記のように書き換えます。
前:$client->useragent .= ' -- WordPress/'.$wp_version;
後:$client->useragent = '1010uzublog/1.0.0';

○○blog のような名前の方がいいようです。
この改変を加えることにより、初めて gooblog/2.0 の誘致に成功。しかし、この改変だけでは gooblog/2.0 ボットはトップページだけ見て帰ってしまいます。
初めての訪問のときは robots.txt を見に来るのですぐにわかります。

2) HTML タグ内にて日本語を宣言
WordPress は海外で発達した Blog システムですので、海外でつくられた テーマを流用していると、HTML タグにて日本語宣言が抜けていることが多いです。これを補っていやります。日本語サービスだ、ということをボットに教えてあげましょう。
前:<html xmlns="http://www.w3.org/1999/xhtml">
後:<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">

3) meta タグ内から、「WordPress」の文字列を削除する(念のため)
WordPress では、meta タグ内で WordPress のバージョンが下記のように宣言されています。
<meta name="generator" content="WordPress 2.7.1" />

これは「<?php wp_head(); ?>」から出力されるようです。でも「<?php wp_head(); ?>」をまるっと削除してしまうと、他の必要な meta タグ情報も削除されてしまいます。なので下記の方法をとります。

テーマフォルダ内 functions.php (なければ作成し)に下記コードを書き加えます。
remove_action('wp_head', 'wp_generator');

→近頃の、とあるR。:wp_head() タグからイロイロ出る
上記サイトを参考にいたしました。これは、セキュリティ的にもよいようです。
もちろんテーマの head.php に記載がある場合はそれも削除します。

4) index.rdf をリダイレクト
goo ブログ検索のクローラ gooblog/2.0 は、トップにアクセス後、決め打ちで /index.rdf にアクセスしてきます。なので、/index.rdf を /feed/rdf にリダイレクトします。

→WordPress.日本語:WordPress Feeds アドレスの変更
上記サイトを参考に、.htaccess ファイルに RewriteRule で記述をしたのですが、うまくリダイレクトしてくれなかったので、乱暴だけれど下記のような記述としました。.htaccess ファイルの書き方勉強せねば。

Redirect temp /index.rdf http://www.1010uzu.com/feed/rdf

書き換えた後、ブラウザでリダイレクトされているか確認しましょう。

5) meta タグ内の <link rel="alternate" のURL を index.rdf に変更
<link rel="alternate" type="application/rss+xml" title="RSS" href="<?php bloginfo('url'); ?>/index.rdf" />

6) feed-rdf.php の時間、日本語記述の追加
WordPress の feed ファイルは、すべて UTC(協定世界時)で書かれています。これを日本のローカル時刻に書き換えます。以下、feed-rdf.php の変更箇所。
・ 26行目
前:<?php echo mysql2date('Y-m-d¥TH:i:s¥Z', get_lastpostmodified('GMT'), false); ?>
後:<?php echo mysql2date('Y-m-d¥TH:i:s+09:00', get_lastpostmodified(), false); ?>

・44行目
前:<?php echo mysql2date('Y-m-d¥TH:i:s¥Z', $post->post_date_gmt, false); ?>
後:<?php echo mysql2date('Y-m-d¥TH:i:s+09:00', $post->post_date, false); ?>

・13行目〜21行目あたり(念のため)
前:
<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/"
  <?php do_action('rdf_ns'); ?>
>

後:
<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"
  <?php do_action('rdf_ns'); ?>
>

・27〜31行目削除(念のため)
<?php the_generator( 'rdf' ); ?>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>

下記サイトを参考に以上変更をさせていただきました。ありがとうございます。
→Kuwata’s Blog くわぶろ:WordPressの投稿記事をYahoo!ブログ検索にインデックスさせる方法

その他、MT形式の Blog の RSS と見比べて、同じになるように適宜修正を加えました。
・26行目後に追加
前:<description><?php bloginfo_rss('description') ?></description>
後:<description><?php bloginfo_rss('description') ?></description>
<dc:language>ja</dc:language>

さて、本命の Yahoo! ブログ検索ですが、クローラが来てくれないことにはどうしようもない。投稿記事数が多すぎたのかなぁ。Yahoo! Slurp/3.0 は来てくれているから、Yahoo! 検索にはクロールされていると思うのですが。

*追記*
上記方法にてインデックスされた記事が goo ブログ検索結果画面にて9時間ずれた時刻になってしまった不具合を発見いたしました。下記にて修正方法を公開しておりますので、合わせてご覧ください。
【考察】goo ブログ検索にインデックスされた日時が9時間遅れている件
【解決】goo ブログ検索にインデックスされた日時が9時間遅れている件【RSS2 の時刻修正】

*追々記*
Yahoo! ブログ検索にもインデックスされるようになりました。詳しくは下記の記事をご覧ください。
【ついに成功】Yahoo! ブログ検索にインデックス! 〜WordPress を Yahoo! ブログ検索させる方法 その9〜
【まとめ】WordPress を Yahoo! ブログ検索させる方法 その10

タグ:, , , , ,

関連する記事