ぼやき

31

WordPress から Yahoo! ブログ検索に Ping を打ってもインデックスされないことでずっと悩んでいました。原因を探るべく 3 か月ほど前に試行錯誤した結果、どうにかインデックスされるようになりました。(参照:【まとめ】 WordPress を Yahoo! ブログ検索させる方法 その 10 )しかし、手動で Ping を送るのは面倒。ということで、既存のプラグインをちょこっと改造することで、自動化することに成功しました。

テスト運用してきて問題ないようなので、 WordPress から Yagoo! ブログ検索に Ping を送るために既存プラグインを改造する方法を公開します。(元のプラグインが GNU GENERAL PUBLIC LICENSE だから公開しても問題ないはずですよね。)このプラグインの改変を行うことにより、通常の投稿にて Yahoo! ブログ検索へ認識可能な Ping を送信してくれますので、 Yahoo! ブログ検索にインデックスされるようになるはずです。
初めに書いておきますが、何か問題が起こっても、インデックスされなくても自己責任でお願いします。

Yahoo! ブログ検索にインデックスさせるための Ultimate Plugins Smart Update Pinger 改造手順


1) まず、【まとめ】 WordPress を Yahoo! ブログ検索させる方法 その 10 の 2) ヘッダ内の RSS 1.0 の設定 の改変を行っておく。

2) 次に Ultimate Plugins Smart Update Pinger をダウンロードしてください。メルアドを求められますが、 Ultimate Plugins Smart Update Pinger を改造するので必要です。 Smart Update Pinger の日本語版だと、予約投稿時に WordPress のデフォルトの Ping 送信機能が働いてしまうので、 Yahoo! ブログ検索に Ping を送ることができません。

3) 2) でダウンロードし解凍した ultimate-plugins-smart-update-pinger フォルダに下記ファイルを解凍してたもの( smart-update-pinger_ybs.php )を入れてください。 ultimate-plugins-smart-update-pinger.php と同じレベルになるように。
→ smart-update-pinger_ybs.php.zip

4) ultimate-plugins-smart-update-pinger.php の編集する。
・ 107 行目と 117 行目の 2 ヶ所の
$SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log;
の後ろに下記を追加。

require_once('smart-update-pinger_ybs.php');
$SUP_output_log = send_ping_ybs("http://api.my.yahoo.co.jp/rss/ping?u=".get_permalink($id)).$SUP_output_log;

・ 173 行目
$client->useragent .= ' -- WordPress/'.$wp_version;
   ↓
$client->useragent .= ' -- ○○○ /1.0.0';

○○○は任意の文字列。( goo ブログ検索にて WordPress からの Ping を拒否しているための対処。)

・ 1 行目
<? → <?php

プラグインを有効化したときにエラーになるのを防ぐ。(既存バグ?)

5) 上記の変更を加えた ultimate-plugins-smart-update-pinger フォルダを WordPress プラグインフォルダにアップロードし、有効化してください。

これで WordPress から Yahoo! ブログ検索へ Ping を送られるはずです。プラグインがうまく有効化できないときは、改造した ultimate-plugins-smart-update-pinger.php を保存するときに「バックスラッシュ」が「エンマーク」に変わってしまっている可能性がありますので、 WordPress 管理画面のプラグインの編集から該当箇所を再度確認してください。

smart-update-pinger_ybs.php 内で行っていること


smart-update-pinger_ybs.php では「【まとめ】 WordPress を Yahoo! ブログ検索させる方法 その 10 」の 1) の動作を自動的に行っています。具体的には、「 http://api.my.yahoo.co.jp/rss/ping?u= 最新記事の URL 」のサイトを読み込み、その文字列に「 Refresh requested 」があるかどうかを確認し、ログを吐き出します。

Ultimate Plugins Smart Update Pinger にて Ping を送信することの利点


a) 投稿の編集時に Ping を送らなくなる。
  WordPress デフォルトの Ping 送信機能は編集時にも Ping を送っています。それゆえ、 Ping スパマー状態になりブログ検索にインデックスされないのではないかと考察しています。
b) Ping の送信元を偽装できる。
  a) の理由にて WordPress は goo ブログ検索では Ping を拒否されているが、それを回避できる。
c) 予約投稿時にも Ultimate Plugins Smart Update Pinger の機能を使って Ping を送信する。

Yahoo! ブログ検索には以上の改変でインデックスされると思いますが、 goo ブログ検索にインデックスされるようにするにはさらなる改変が必要です。下記記事を参考にしてください。
【祝!】 goo ブログ検索インデックス! 〜 WordPress を Yahoo! ブログ検索させる方法 その 8 〜

関連記事

コメント (21)

  • インサイド

    こんにちは、初めて投稿させていただきます。
    Yahoo ブログ検索に ping を送信するプラグインを使わせていただきました。ログにも yahoo  成功とあり大変満足しています。
    ですがワードプレスプラグイン  wp-tegaki と同時使用すると wp-tegaki の表示が行われなくなります。(プラグインの有効化と同時に)
    改変無しで Ultimate Plugins Smart Update Pinger のみを有効化するとそのような問題は起こらないのですが…
    当方の環境のみの問題かもしれませんがアドバイスいただけたら嬉しいです。

  • あさこん

    ◇インサイドさん◇
    コメントありがとうございます。
    wp-tegaki と干渉するとのことでご迷惑おかけしております。
    とりあえず作ってみたものの、 PHP は勉強中でよくわかっていないのです。
    wp-tegaki は当サイトでは使用していないため、どのような干渉が起こっているか正直わかりません。
    使用してくださって大変ありがたいのですが、私の手には負えません。
    プラグインという形で公開しなかったのも、そういった知識が私に足りないためです。
    コメントしてくださったのにきちんとしたお答えができず、大変申し訳ございません。

  • インサイド

    こんばんわ
    いえいえ迷惑だなんてとんでもない…。
    ヤフーにインデックスもかなり勉強させてもらいましたよ。
    これからもちょくちょく来ます。
    更新楽しみにしていますので!

    ありがとうございます

  • あさこん

    ◇インサイドさん◇
    対応できなくて大変もうしわけないです。
    ちょこちょこ勉強していきたいと思いますので
    よろしくお願いいたします。

  • ぽこ

    こんにちは。いつも拝見させていただいてます。
    Yahoo ブログ検索に ping を送信するを使わせていただいてます。
    そこで初歩的な質問なんですが、
    Ultimate Plugins Smart Update Pinger の管理画面で
    送信先を登録できると思いますが、
    そこでは YAHOO 様は登録しない方がいいのでしょうか。。
    それとも『 http://api.my.yahoo.co.jp/rss/ping?u=RSS ファイルのアドレス』
    など登録しておいた方がいいのでしょうか。
    お暇なときでも応えていただければ幸いです。

  • あさこん

    ◇ぽこさん◇
    はじめまして。
    プラグインの改造、役立っているようでうれしいです。

    ご質問の「 Ultimate Plugins Smart Update Pinger の管理画面で Yahoo! への Ping の送り先を設定すべきか」ですが、
    結論から申しますと、 Yahoo! への Ping URL は設定しないでください。
    言葉足らずですみません。

    その理由は下記の通りです。
    Ultimate Plugins Smart Update Pinger の管理画面で Ping URL を設定すると、
    Ultimate Plugins Smart Update Pinger が通常に Ping を送信してしまいます。
    しかし、 Yahoo! ブログ検索は、通常の送信方法では Ping を受付ますが、
    なぜか RSS を読んでくれないので、インデックスされません。
    ですから、特殊な送信方法を取る必要があります。
    その送信処理が「 smart-update-pinger_ybs.php 」に記述してあります。
    ですので、二重に Ping を送ってしまうことになるので、避けてください。

    特殊な方法が何かは以下の記事をご参照ください。
    【まとめ】 WordPress を Yahoo! ブログ検索させる方法 その 10

    ちなみに当サイトでは、 goo ブログと Pingoo への Ping 送信のみを登録してあります。
    その他サイトへの Ping 送信は Pingoo という Ping 一括送信サービスにまかせてあります。
    理由は、 Ping 送信件数が多いと新規投稿の際、 WordPress が重くなるからです。

  • こうた

    こんにちは!
    初めてコメントさせていただきます。

    Ultimate Plugins Smart Update Pinger の改造版、
    早速設置させていただきました。

    そこで、 Ultimate Plugins Smart Update Pinger について
    何点か質問です。

    【質問1】
    Ultimate Plugins Smart Update Pinger の管理画面の
    「 Enable pinging 」
    「 Detailed Logging 」
    はどういった機能(意味)なのでしょうか?

    また、この2つの項目はチェックを入れるべきなのですか?

    【質問2】
    Ultimate Plugins Smart Update Pinger を有効中は
    WPの「投稿設定」で設定した pingURL へ ping は飛ぶのでしょうか?

    Ultimate Plugins Smart Update Pinger を使う際は
    WP本体の投稿設定の「更新情報サービス」は
    空白にしたほうがいいのですか?

    (もし上記欄に pingURL を入れた場合、二重で ping が送られてしまうのですか?)

    【質問3】
    以前のコメントにもありましたが、
    Ultimate Plugins Smart Update Pinger の管理画面上で、
    Yahoo! ブログの pingURL を設定しなくても、
    改造版では自動で Yahoo! ブログへ ping が飛ぶ、という認識でよろしいでしょうか?

    以上、お忙しいところ大変申し訳ございませんが、
    お知恵をお貸しいただけると幸いです!

    よろしくお願いいたします。

  • あさこん

    ◇こうたさん◇
    こんにちは。ご覧いただきありがとうございます。

    【質問 1 】への回答
    「 Enable pinging 」… ping を送るようにする
    「 Detailed Logging 」…詳細なログを取る

    上記のような意味です。
    「 Enable pinging 」については、 Yahoo! ブログ検索以外に Ping を送信する場合はチェックが必要です。
    「 Detailed Logging 」…詳細なログが必要ないならば、チェックを外してもかまいません。
    ちなみにわたくしは両方にチェックをいれています。

    【質問 2 】への回答
    WordPress の投稿設定で設定した PingURL と
    Ultimate Plugins Smart Update Pinger の設定画面の PingURL は
    共通のものです。
    (どちらかが変更されればもう片方も変更されるはずです。試してみてください。)

    また、 Ultimate Plugins Smart Update Pinger は
    WordPress 標準の Ping 送信機能を置き換えるプラグインですので、
    二重に Ping が送信されることはありません。

    【質問 3 】への回答
    Yahoo! ブログ検索への Ping 送信の動作は
    「 smart-update-pinger_ybs.php 」の中で行っております。
    この記事での改造を行った場合、設定画面にて Yahoo! への PingURL は設定しないでください。

    以上の回答でよろしいでしょうか。

  • こうた

    あさこんさん

    ご回答ありがとうございます!

    3つの質問の回答、非常に参考になりました。

    テストで記事を投稿したところログが残っているので
    おそらく ping が飛んでいるようです。

    しばらくはこのままで様子を見てみます。
    (設定があっているか、自信がない (^^;) )

    お忙しい中、誠にありがとうございました!

  • あさこん

    ◇こうたさん◇
    ノーマルの状態で一度でも Yahoo! ブログ検索に Ping を飛ばしてしまうと、
    上記の改造を行っても、 6 か月くらいは、
    「絞り込みなし」の状態でないと検索にひっかかりません。
    気長に待ってみてください。

  • arinopapa

    こんにちは。
    こちらに書いてあるとおりに、自分のブログに設定しました。
    分かり易い説明と、プラグインをご提供くださり、ありがとうございます。

    それでお尋ねしたいことがあります。
    それは XML Sitemap Generator for WordPress などの site map 作成プラグインの「 yahoo に更新を知らせる」ところはチェックを外しておいた方が良いのでしょうか?
    初歩的な質問で申し訳なく思います。
    お時間のあるときにでも、お答えいただければ幸です。
    これからもよろしくお願いいたします。

  • arinopapa

    こんにちは。こちらのブログで書かれてある通りに設定し、うまく行きました。
    ありがとうございました。
    お尋ねしたいことがあるのですが、 XML Sitemap Generator for WordPress プラグインで「 yahoo にブログの更新を通知する」はチェックを外しておかなければならないのでしょうか?
    お忙しいところ恐縮ですが、よろしくお願いいたします。
    (二重投稿になっていましたら、お許しください)

  • あさこん

    ◇ arinopapa さん◇
    こんにちは。
    なぜかスパムフィルターにひっかかっており、お返事が遅くなってすみません。

    XML Sitemap Generator for WordPress の「 Yahoo! にブログの更新を通知」に
    チェックを入れるか否かについてお答えします。

    チェックは入れた方が無難だと思います。(全体的に考えて。)
    しかし、 Yahoo! ブログ検索の結果への影響は少ないと考えられます。

    まず、前提知識をお話しますが、
    本記事にて対象としている Yahoo! ブログ検索と Yahoo! 検索は別物です。
    XML Sitemap Generator for WordPress は
    サイトマップを生成するプラグインですので、 Yahoo! 検索に関わってきます。

    XML Sitemap Generator for WordPress の「 Yahoo! にブログの更新を通知」に
    チェックを入れた場合、通知されるのは米 Yahoo! に対してです。
    (「キーを持っていませんか ? こちらでリクエストしてください ! 」を
    クリックすると、米 Yahoo! に繋がりますね。)

    日本の Yahoo! 検索は Yahoo! Search Technology (YST) という
    検索エンジンを日本用に若干の変更を加えて用いているようなので、
    米 Yahoo! と Yahoo! JAPAN の検索結果にはなんらかの関連性があると考えられます。
    なので、入れないよりは入れたほうがよいということです。

    しかし、 Yahoo! ブログ検索と Yahoo! 検索ではクローラも別々ですので、
    チェックをいれたからといって Yahoo! ブログ検索に
    なんらかの影響があるとは考えにくいです。

    全体の訪問者を増やすという意味ではチェックを入れた方がいいですが、
    Yahoo! ブログ検索にインデックスされることを目的としているならば、
    チェックを入れても入れなくてもあまり関係ないということです。
    (間違っていたらすみません。)

  • arinopapa

    あさこん様、ご回答ありがとうございます。
    教えていただくまで、アメリカの yahoo に更新通知が行くということを知りませんでした ( 笑 ) 。
    でも、チェックを入れても、入れなくても、余り関係がないといういことがよく分かりました。
    これからもよろしくお願いいたします。
    本当にありがとうございました。

  • 金森

    こんにちは。
    初めて投稿させていただきます。

    私もワードプレスでブログを作っていますが、 yahoo ブログに登録されずに困っていましたところこのサイトを見つけました。

    記事に書かれているやりかたを一通り行っています。
    Ultimate Plugins Smart Update Pinger と smart-update-pinger_ybs.php を使って無事にプラグインの ping ログで
    [Extended Ping] Yahoo! Blog Seach was successfully pinged
    の表示と http://api.my.yahoo.co.jp/rss/ping?u= ~
    が出たので ping が送られたと思うのですが、
    記事の更新でも yahoo へ ping が送られているような記述がされます。
    (他の ping アドレスには notping で送られません)
    これは表示だけの問題で、 ping は送られていないでよいのでしょうか?

    それと、クローラーが来たかどうかリサーチアルチザンを設置し確認していますが、 1 週間ほど ping を送ってますが来てくれてなさそうです。
    yahoo のクローラーの巡回頻度ってかなり気長に待たないとダメでしょうか?

    上記の ping の反応が今ところ無いため、あっているのかどうか不安です。
    アドバイスをいただけたらと思いますので、どうかよろしくお願いします。

  • あさこん

    ◇金森さん◇
    こんにちは。コメントありがとうございます。

    記事の更新でも Ping が送られているログが残っている件ですが、
    当方の環境では下記のような 1 行だけで、 Yahoo! ブログ検索に Ping が送られている形跡はございません。

    06/17/10 18:00:10 NOT Pinging services (Existing post was edited: “洗濯石けんと硬度とコスト” ) …

    手順 4 の最初の下記の部分が正しい場所に記述してあるかもう一度ご確認ください。
    require_once(‘smart-update-pinger_ybs.php’);
    $SUP_output_log = send_ping_ybs(“http://api.my.yahoo.co.jp/rss/ping?u=”.get_permalink($id)).$SUP_output_log;

    行数は目安であり、「 $SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log; 」の後ろです。
    改行してください。

    Yahoo! ブログ検索にインデックスされない件ですが、
    Ultimate Plugins Smart Update Pinger を導入する前に、
    新規投稿時のみに Ping 送信する他のプラグインを導入されていましたでしょうか?
    不確定な情報なのですが、何度も更新 Ping を打っていると
    Yahoo! ブログ検索から Ping スパマーとして認識されてしまうようです。
    こればかりは手の施しようがございません。お役に立てずに申し訳ないです。

    また、クローラーについてですが、
    Yahoo! ブログのクローラは Ping を打ってから 30 分以内には訪問してきていました。
    時間帯により左右しますが。

    現状では、改造していない Ultimate Plugins Smart Update Pinger を導入してみて、
    正常に動くか動作確認してみてください。
    それで、おかしなログが残らなかったら、改造がうまくいっていないのかもしれません。

    また、動かしている WordPress のバージョンをお聞かせください。
    まだ当方 3.0 では動作確認をしていないので。

    乱筆失礼いたします。

  • 金森

    あさこんさん、ご回答ありがとうございます!

    プラグインの改造箇所を見直してみたところ、
    追記記述をなぜか 2 箇所にしていたようで、
    余計な 1 つを削除したらあっさり解決 (^^)v
    お騒がせしました・・・。

    ただ、クローラーはやっぱり来てくれてないようです。
    プラグインは ping 対策として cbnet Ping Optimizer を使ってたので、
    本当の初期の 2 , 3 記事以外は更新時に ping は打っていないです。

    ちなみに私のバージョンは 2.9.2 です。
    気長にクローラーが来てくれるのを待つしかないですかね。。。

  • あさこん

    ◇金森さま◇
    プラグイン改造の件は解決したようで何よりです。

    >追記記述をなぜか 2 箇所にしていたようで、
    変更部分は 2 箇所であっています。

    107 行目あたりと 117 行目あたりの 2 箇所に、「 $SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log; 」
    という同じ記述があると思いますが、どうでしょうか?
    1 箇所のみの変更だと、予約投稿をしたときに、
    Yahoo! ブログに ping が飛ばないと思います。
    予約投稿をされないならば、現在の状態で大丈夫です。

    クローラーが来ない件ですが、
    ping 対策として cbnet Ping Optimizer を使用されていたとのことで、
    リンクの Web サイトを見せていただきましたが、
    特に Yahoo! ブログに嫌われる点も見受けられなかったので、
    Yahoo! ブログ検索にて貴殿のサイト名にて検索いたしましたところ、
    「検索対象項目:すべて、スコアでの絞り込み:なし」
    の状態できちんとインデックスされていることが確認できました。
    (もし、対象サイトがリンクの先のサイトでなかったのならすみません。)

    リサーチアルチザンというアクセス解析を使われているとのことですが、
    わたくしは使用したことがないのでなんともいえませんが、
    こちらのアクセス解析が Yahoo! ブログのクローラーを
    クローラとして認識していない可能性が考えられます。

    Apache のログで見るのが一番正確です。

  • 金森

    あさこんさん、わざわざサイトを見ていただいて
    コメントいただきありがとうございます!

    変更箇所は 2 箇所でしたか ^^;
    悩んだ末に 107 行目の後にしか入れてなかったので、
    スッキリしました (^^)v
    あまり予約投稿はしないのですが、そのときに備えて
    2 箇所に入れておきます。

    私が重大なミスをしていて、 yahoo ブログの絞込みを
    デフォルトの「中」にしていたので、
    検索で引っかからないことが分かりました・・・。

    検索して確認までしていただて本当にスミマセン (>_<)

    ちゃんと Ultimate Plugins Smart Update Pinger を使った後から
    登録されてましたね(現在 6 記事)
    リサーチアルチザンはやっぱりクローラー検出していないので、
    クローラー認識していないようです。

    本当にありがとうございました!

  • あさこん

    ◇金森さん◇
    インデックスされたようで何よりです。
    デフォルトの「中」で検索にひっかかるようになるには、
    (問題がなければ)だいたい半年くらいかかるようです。
    長い目で見てください。

コメントを書く

トラックバック (10)

トラックバック URL