PING送信の仕様 - XMLの書式、RSS配信、PINGサーバとは、ブログ・ホームページ

更新:

ブログなどで使われているPING送信の仕様についての解説です。

PINGサーバとは

各ブログサービスでは、記事を追加する際、PINGサーバに更新情報を送信しています。
PINGサーバとは、各ブログから送られてきた更新情報を受信しているサーバ(サイト)です。


PINGの仕様

PINGは、サイトの「タイトル」と「トップページのURL」をXML形式でPINGサーバへ送信します。
送信するデータには、記事の内容は含みません。
つまり、更新内容を通知するのではなく、更新したサイトのURLを通知しているだけです。
これは、世界共通の仕様です。

PINGを送信後、PINGサーバがサイトのURLへ通信し、そのHTMLソースから
<link rel="alternate" type="application/rss+xml" title="RSS" href="RSSのURL" />
の部分を読み取り、RSSにある更新内容をPINGサーバに反映します。
送信するXMLの書式は、以下のようになっています。
<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param><value>自分のサイトのタイトル</value></param>
<param><value>自分のサイトのURL</value></param>
</params>
</methodCall>
正しく送信できた場合は、PINGサーバからXML形式で応答があります。
PHPでPINGサーバへPINGを送信する方法の1つにfsockopenを使う方法があります。


PINGサーバ、ブログ検索

PINGサーバはたくさんありますが、主なPINGサーバにだけPINGを送信すれば十分だと思います。
2010年以前、PINGサーバはたくさんありましたがいくつか閉鎖されました。
Googleにだけ送れば十分だと思います。

  1. http://blogsearch.google.co.jp/ping/RPC2
    http://blogsearch.google.com/ping/RPC2 は上記と同じなので、どちらか一方でOK。
  2. http://blog.goo.ne.jp/XMLRPC
  3. http://ping.fc2.com/

PING送信後、検索エンジンのクローラー(Bot)がサイトを巡回するようになります。


PINGサーバに更新情報が反映されない場合

昔は、PINGサーバへ更新情報を送信すると多少メリットがありましたが、 スパムの増加の影響などにより、現状あまりメリットはないように感じます。
またPINGサーバは、スパム対策として、更新情報を素直に反映しないようになっています。
PINGサーバに更新情報が反映されない原因として以下のようなことが考えられます。

PINGサーバ側の仕様の場合
  • RSSのURLのドメインがサイトのドメインと異なる。
  • PINGを送信したサーバのドメインやIPアドレスがサイトのドメインやIPアドレスと異なる。
  • RSS中の記事の内容(description)の文字数が少ない。
  • 記事の量(ページ数)がまだ少ない。
  • PING送信を連続して行う場合。
    連続で同じブログのPINGを受け付けないようにしている場合があります。
  • 各PINGサーバのサイトで会員登録をしていない。
    会員登録をしないとPINGサーバに反映されない場合があります。
  • RSSの記事に特定のNGワードを含んでいる。
  • サイトで配信しているRSSやATOMの書式が、PINGサーバ側で対応していない書式になっている。
  • PINGサーバ側のアクセスが多いため、レスポンスが低下し、処理落ちした。
  • PINGサーバの受信処理が仕様通りに作られていない。
  • 特定のIPアドレスからのPINGの受信を制限している。
    共用サーバなどで、他の人がスパムのようなPING送信を行なっている場合、影響を受ける場合があります。
  • 特定のドメイン(メジャーなブログのドメインなど)しか反映しない仕様になっている。
  • PINGサーバに反映されるタイミングの仕様。
    すぐに反映されるところと、時間差で反映されるところがあります。
  • PINGサーバの運営者の判断で、反映していない。

PING送信者側に問題がある場合
  • PINGを仕様通りに送信できていない。
  • サイトにRSSを配信していることを示すタグ
    <link rel="alternate" type="application/rss+xml" title="RSS" href="RSSのURL" />
    が書かれていない。
  • PINGサーバのURLが正しくない。
    勝手に/(スラッシュ)などを追加したりせず、PINGサーバに書いてある通りのURLを書いて下さい。

上記のような理由で更新情報が反映されない場合でも、PINGサーバは「受信しました」というメッセージを返すことがあります。
このエントリーをはてなブックマークに追加