今回、SEO対策にもなるpubsubhubbubの解説とrailsでgem nagareboshiを使用してpubsubhubbubの実装方法についてご紹介します。
pubsubhubbubとは?
pubhubsubbubとは更新情報をいち早くGoogleに通知することが可能なプルトコルです。
分かりやすく説明するとpubsubhubbubを使えば、ブロガー自身が作成した記事や更新した内容をいち早くGoogleに知らせてインデックスすることができます。
通常であれば、新しい検索結果を表示させるためにgoogleクローラーが定期的にwebページを巡回し、記事が更新されていればインデックスされます。
基本的に受け身の状態なので、更新されてからインデックスされるまでに時間がかかります。
しかし、pubsubhubbubを使えば、記事更新したことをgoogleに対して能動的にリアルタイムで通知することができます。
pubhubsubbubの効果とは
pubsubhubbubを使うと以下のような効果がありSEO対策にもなります。
- 自身の記事をリアルタイムでgoogleに伝えられる。特に流行りものの記事であれば即効性があり効果的。
- リアルタイムでインデックスされることによりパクリ防止になる。
pubsubhubbubの実装方法
wordpressであればプラグインがありますので、簡単に導入することが可能です。以下のサイトをご参照ください。
他言語のpubsubhubbubの実装方法はGithubにまとめられているので、そちらを参考にしましょう。
railsでpubsubhubbubを実装してみたよ。
まずはgem nagareboshi
を導入します。
gem 'nagareboshi'
config/initializers配下にnagareboshi.rbを作成し、
以下のように記載します。
Nagareboshi.configure do |config| config.send = true # sendをtrueにすると実際にPOSTでデータが送られる。 config.send = Rails.env.production? # 本番環境のみ実行したい場合はこちらを記載。 end
通知したい記事や内容部分にNagareboshi::Sender.publish(“http://example.com/“)を記載。
記載したらpubuhubsubbubに送信ができているかテストするため記事を更新します。
def create @article = Article.new(article_params) if @article.save Nagareboshi::Sender.publish("http://example.com/") redirect_to admin_article_path(@article), notice: t("article_was_successfully_created") else render :new end
テストで記事を更新したら以下のサイトに行き、
Google Pubsubhubbub Hub – Publisher debug
Publisher Diagnosticsにhttp://example.com/
を記載し、Get infoボタンを押します。
うまく通知ができていたらLast successful fetchが更新されます。
通知のテストが成功したことを確認したら、
通知した記事のURLを汎用的なものします。
root_url = root_url(protocol: 'https') Nagareboshi::Sender.publish("#{root_url}articles/#{@article.id}")
以上で完了です!
参考サイト