爆速で最低限のSEO対策をしたい方のために記事を書きました。
meta-tagというgemを使用する
使用するgemは meta-tagというgemを使用します。
githubはこちら。
Gemfileに
gem 'meta-tags'
と、書き込み、bundle install
します。
次にconfig/initializers/meta_tags.rb
を作るためにターミナルで以下コマンドを実行します。
$ rails generate meta_tags:install
デフォルトの設定
次に全てのページに対してデフォルトのmeta-tagの設定をします。
view内のapprication.html.erbに書き込みます。
こちらのファイルはviewの共通ファイルになるのでこちらに書けば全てのviewファイルに書き込まれたことになります。
ただ、私のアプリの場合記事投稿機能がついておりまして、SEO的に記事を上位表示させるという目的があります。
したがってmeta-tagのgemに書かれている公式のやり方でmeta-tagを設定してしまうと記事ごとにタイトル、メタディスクリプションが全て同じになってしまう(例え変更できたとしても自動でタイトルを変更してくれない設定になってしまう)ため、少し変更を加えます。
<head>
<%= display_meta_tags site: '自分のサイトの名前', title: @title, description: @description, keywords: @keywords %>
</head>
このように共通ファイルにてmeta-tagを変数で指定してあげることによって、ページごとに動的に更新してくれるようになります。
インデックスをしたくないページの設定
インデックスをしたくないページの設定に関しては<% set_meta_tags noindex: true %>
というテンプレートを使用します。
先ほどviewの共通ファイルの中でデフォルトの設定をしてしまったと思うのですが、特定のページで<% set_meta_tags noindex: true %>
を使うことによってデフォルトのmeta-tagの内容を更新してくれるという便利なテンプレートです。
前提
・noindexにして検索エンジンの引っかからないようにする(クローラが回らないようにする)
・ページのタイトルは問い合わせ
とする。
<% set_meta_tags noindex: true title: @title %>
<p>下記項目を入力してください</p>
~省略~
class StaticPagesController < ApplicationController
~省略~
def contact
@title = "問い合わせ"
end
end
これでOKです。
個別記事表示ページのタイトルを設定する
個別記事表示ページ(モデルはblogモデル)のタイトルも変えてみます。
今回の場合だとblogモデルにはtitleカラムがすでに存在しているので、<% set_meta_tags%>を使ってtitleカラムを個別記事表示ページのタイトルに変更します。
<% set_meta_tags title: @blog.title %>
<p><%= @blog.body %></p>
これでOKです。
元々SEOマーケティング出身でエンジニアに転向したのですが、テクニカルSEO(エンジニア視点からのSEO対策)についてはガッツリ触れたことがなかったため、知る良い機会になりました。
次にサイトマップを作成してクローラーにサイト内を回遊してもらうように設定する必要があるのですが、また次の機会に紹介したいと思います。
参考になった記事
https://holy-seo.net/blog/seo/sitemap-sml-method-described-merit/
https://qiita.com/colorrabbit/items/0864a082a0cee7bfaf93
https://blog.yucchiy.com/2014/06/28/rails-seo/