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

主にエンジニア向けにITやプログラミングなどの技術系と大学生向けに休学、留学、海外生活、トビタテ留学、長期インターンに関する記事を書いています。

【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