【SEO対策】pubsubhubbubを Railsで実装してみたよ

f:id:daikiyano:20181119214741p:plain

今回、SEO対策にもなるpubsubhubbubの解説とrailsでgem nagareboshiを使用してpubsubhubbubの実装方法についてご紹介します。

pubsubhubbubとは?

pubhubsubbubとは更新情報をいち早くGoogleに通知することが可能なプルトコルです。

分かりやすく説明するとpubsubhubbubを使えば、ブロガー自身が作成した記事や更新した内容をいち早くGoogleに知らせてインデックスすることができます。
通常であれば、新しい検索結果を表示させるためにgoogleクローラーが定期的にwebページを巡回し、記事が更新されていればインデックスされます。
基本的に受け身の状態なので、更新されてからインデックスされるまでに時間がかかります。
しかし、pubsubhubbubを使えば、記事更新したことをgoogleに対して能動的にリアルタイムで通知することができます。

pubhubsubbubの効果とは

pubsubhubbubを使うと以下のような効果がありSEO対策にもなります。

  • 自身の記事をリアルタイムでgoogleに伝えられる。特に流行りものの記事であれば即効性があり効果的。
  • リアルタイムでインデックスされることによりパクリ防止になる。

pubsubhubbubの実装方法

wordpressであればプラグインがありますので、簡単に導入することが可能です。以下のサイトをご参照ください。

wordpress.org

techacademy.jp

他言語のpubsubhubbubの実装方法はGithubにまとめられているので、そちらを参考にしましょう。

github.com

railsでpubsubhubbubを実装してみたよ。

github.com

まずは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ボタンを押します。

f:id:daikiyano:20181119214741p:plain

うまく通知ができていたらLast successful fetchが更新されます。

通知のテストが成功したことを確認したら、
通知した記事のURLを汎用的なものします。

root_url = root_url(protocol: 'https')
Nagareboshi::Sender.publish("#{root_url}articles/#{@article.id}")

以上で完了です!

参考サイト

vdeep.net

qiita.com

>文系エンジニア大学生の技術ブログ

文系エンジニア大学生の技術ブログ

社会が多様化していく中、大学生の学生生活も多様であるべきと考えています。主にエンジニア向けにITやプログラミングなどの技術系と大学生向けに休学、留学、海外生活、トビタテ留学、長期インターンに関する記事を書いています。