WebSub/PubSubHubbubをコマンド実行する

WebSub/PubSubHubbubをコマンド実行する

2021年1月31日
ツール
Pocket

WebSubをご存知でしょうか?

むかしは、PubSubHubbub(パブサブハバブ)と言われていましが、最近は

W3Cの勧告候補として、WebSub(ウェブサブ)と呼ばれています。

ざっくりな説明ですが、投稿した記事などをいち早く、検索エンジンに通知してくれるものです。

この仕組みにより、この記事を書いたのは私ですよと通知することで、コピーコンテンツが

上位にならないようにすることができます。(一番最初に記事を書いたところを認識してもらう)

WordPressで記事を書いている人は、以下のプラグインを入れておいてほうがよいでしょう。

WebSub/PubSubHubbubをコマンド実行する
あなたのブログが更新されたときに世界に伝える良い方法。
ja.wordpress.org

では、WordPressではない場合、どうすればよいかをこの記事では記載します。

一からこの仕組を作るのは大変なので、ライブラリーを利用します。(PHP用)

WebSub/PubSubHubbubをコマンド実行する
A PubSubHubbub publisher module for PHP. . Contribute to pubsubhubbub/php-publis…
github.com

composerを利用しているプロジェクトでは、以下をcomposer.jsonに追加します。

"require": { "pubsubhubbub/publisher": "*" }

とりあえずコマンドラインで実行した場合は、上記のリポジトリをcloneしても使えます。

git clone https://github.com/pubsubhubbub/php-publisher.git

実際の実行コードは、以下のようになります。

<?php
use pubsubhubbub\publisher\Publisher;

// specify which hub you want to use. In this case we'll use the demo hub on app engine.
$hub_url = "http://pubsubhubbub.appspot.com/";

// create a new pubsubhubbub publisher
$p = new Publisher($hub_url);

// specify the feed that has been updated
$topic_url = "http://www.onlineaspect.com";

// notify the hub that the specified topic_url (ATOM feed) has been updated
// alternatively, publish_update() also accepts an array of topic urls
if ($p->publish_update($topic_url)) {
    echo "$topic_url was successfully published to $hub_url";
} else {
    echo "Ooops...";
    print_r($p->last_response());
}

git cloneして利用する場合は、以下の行を先頭に追加しましょう。

require_once('library/Publisher.php');

上記のコマンドを実行し登録がうまくいくと以下のメッセージがでます。

[登録ページのURL] was successfully published to http://pubsubhubbub.appspot.com/pubg:php-publisher

独自で作っているCMSなどでは、このライブラリを利用して、記事作成の都度、通知が行くようにしておくと良いでしょう。

もちろん、Search ConsoleからURL検査 => インデックス登録をリクエストで登録することもできますが、記事を書くたびにSearch Consoleを開くのは大変なので、自動化しておきましょう。

これは、早く通知するための仕組みなので、sitemap.xmlの作成も合わせて行っておきましょう。