概要
web サイトを更新した時に、Google などの検索サイトに ping 送信を行うことにより、より早く検索結果に反映してもらえる。Google だと 5~10分くらい?結構早い。
MovableType や MTOS などの CMS を利用していれば、記事掲載時に自動的に ping を送信してくれるが、CMS を使わずに作成したサイトの場合、自分で ping 送信を行う必要がある。
SEO対策を考えるなら、是非自分たちが作成したサイトも ping で更新通知を行いたい。
そこで、Java から ping 送信するプログラムについて調査した。
仕組みの概要
XML-RPC§更新Pingの送信 by isnot.jp が非常に分かりやすい。どうやら、単に ping 送信を送れば OK という訳ではないらしい。
ping 送信は次の手順で行うことになる。
1. 更新データを含む rss ファイルを作成し、web サイト上に置く
rss ファイルの書き方は、いろんな web サイトの rss を参考にする。そして、html で次のように記述する。
2. ping を各検索サイトなどに送信する
すると、各サイトのクローラーが巡回してくれ、 rss ファイルから更新データを入手する。ping 送信から巡回までの時間は、ping 送信先サイトによって異なる。
blog360 や はてな は結構早い。
ping 送信を行う Java プログラム
Apache XML-RPC のバージョンについて
Apache XML-RPC を使う。こちら から xmlrpc-3.1-bin.tar.gz をダウンロードする。
この API を使った ping 送信 Java プログラムを紹介してくれているサイトはいくつかあるが、現時点での最新バージョンは 3.1。どうやら API 仕様が結構変更されているようだ。既存のバージョンよりもさらに簡単になっている。
tar.gz を展開すると lib ディレクトリの中にいくつかの jar が含まれているが、このうち次のファイルを使用する。
xmlrpc-common-3.1.jarxmlrpc-client-3.1.jarws-commons-util-1.0.2.jar
ping 送信プログラム
複数の ping サイトに非同期に ping を送信し、結果を受信するプログラムを作成した。サンプルプログラム
ping サーバ一覧はテキストファイルで与えるプログラムを作成した。ping.txt は例えば次のような内容を記述する。
http://api.my.yahoo.co.jp/RPC2 http://blog.goo.ne.jp/XMLRPC http://blogsearch.google.co.jp/ping/RPC2 http://ping.amagle.com/ http://ping.ask.jp/xmlrpc.m http://ping.blog360.jp/rpc http://ping.bloggers.jp/rpc/ http://ping.blogoon.net/ http://ping.fc2.com http://ping.myblog.jp/ http://ping.namaan.net/rpc/ http://ping.rss.drecom.jp/ http://pingoo.jp/ping/ http://r.hatena.ne.jp/rpc http://rpc.blogrolling.com/pinger/ http://rpc.reader.livedoor.com/ping http://rpc.technorati.com/rpc/ping http://rpc.technorati.jp/rpc/ping http://www.bloglines.com/ping http://www.blogpeople.net/servlet/weblogUpdates http://www.ranq.jp/xmlrpc/-/GzVaG0Y/FzJxX/