メタタグの生成は、SEO対策に欠かせない要素の一つです。Ruby on Railsでは、MetaTags
というGemを使うと、メタタグをカンタンに実装することができます。実際に使ってみた際の備忘録メモです。
Gem MetaTagsの使い方
https://github.com/kpumuk/meta-tags
1. お決まりのGemfile追加からのbundle install
gem 'meta-tags'
2. 初期ファイル生成コマンド meta_tags:install
を叩く
$ rails generate meta_tags:install
config/initializers/meta-tags.rb
が作られる
MetaTags.configure do |c|
# How many characters should the title meta tag have at most. Default is 70.
# Set to nil or 0 to remove limits.
# config.title_limit = 70
# When true, site title will be truncated instead of title. Default is false.
# config.truncate_site_title_first = false
# Maximum length of the page description. Default is 300.
# Set to nil or 0 to remove limits.
# config.description_limit = 300
# Maximum length of the keywords meta tag. Default is 255.
# config.keywords_limit = 255
# Default separator for keywords meta tag (used when an Array passed with
# the list of keywords). Default is ", ".
# config.keywords_separator = ', '
# When true, keywords will be converted to lowercase, otherwise they will
# appear on the page as is. Default is true.
# config.keywords_lowercase = true
# When false, generated meta tags will be self-closing (<meta ... />) instead
# of open (`<meta ...>`). Default is true.
# config.open_meta_tags = true
# List of additional meta tags that should use "property" attribute instead
# of "name" attribute in <meta> tags.
# config.property_tags.push(
# 'x-hearthstone:deck',
# )
end
ひとまずGithubに書いてあるのが推奨値っぽいのでそのまま使ってみる(日本語もこの値でいいのか?)
TODO この場所で設定値変更できるから、好きがってに書き換えてねってGithubには書いてあるから、日本語での設定方法を調べて反映する
3. 基本設定
Titles - タイトル
ページタイトルはサーチエンジンにとって、とーっても重要とのこと
ブラウザのタイトルバーに表示されるし、サーチエンジンはタイトルを見てそのページがどんなページか判定するんだって
MetaTagsでは以下のように設定する
set_meta_tags title: 'Member Login'
# <title>Member Login</title>
set_meta_tags site: 'Site Title', title: 'Member Login'
# <title>Site Title | Member Login</title>
set_meta_tags site: 'Site Title', title: 'Member Login', reverse: true
# <title>Member Login | Site Title</title>
タイトルは70文字以内で、10単語ぐらいがいい
Description
タイトルのように直接はブラウザに表示されないが、検索結果に表示される
set_meta_tags description: "All text about keywords, other keywords"
# <meta name="description" content="All text about keywords, other keywords" />
160文字以内がおすすめ
Keywords
キーワードを不必要に書きすぎると検索エンジンに嫌われちゃうから気をつけてね
set_meta_tags keywords: %w[keyword1 Keyword2 KeyWord3]
# <meta name="keywords" content="keyword1, keyword2, keyword3" />
255文字以内、20キーワード以下がおすすめ
Noindex
インデックスさせたくないページをサーチエンジンに伝える手段
set_meta_tags noindex: true
# <meta name="robots" content="noindex" />
set_meta_tags noindex: 'googlebot'
# <meta name="googlebot" content="noindex" />
ログインページとかプラポリページなどコンテンツに価値が無いページはNoindex
Nofollow
サーチエンジンにこれ以上先にはリンクを辿らないでってお願いするにはNofollowタグを
アフィリエイトリンクとかはこれを使うといい
set_meta_tags nofollow: true
# <meta name="robots" content="nofollow" />
set_meta_tags nofollow: 'googlebot'
# <meta name="googlebot" content="nofollow" />
Follow
Noindexだけどページに有るリンクを辿ってほしいときはFollow
set_meta_tags noindex: true, follow: true
# <meta name="robots" content="noindex, follow" />
TODO ・・・と長いので続きはいつか
4. MetaTagsを実際に埋め込む
<head>
<%= display_meta_tags site: 'My website' %>
</head>
<h1><%= title 'My page title' %></h1>
Gem config
と組み合わせてメタタグ管理
config
というGemと組み合わせると管理しやすくなる
おなじみのGemfile追加からのbundle install
を叩く
gem `config`
からの以下のコマンドを叩く
$ rails g config:install
すると、
create config/initializers/config.rb
create config/settings.yml
create config/settings.local.yml
create config/settings
create config/settings/development.yml
create config/settings/production.yml
create config/settings/test.yml
append .gitignore
が作られる。
今回は、config/settings.yml
にメタタグで使うサイト情報をいれていく
site:
name: "あなたのサイト名"
title: "デフォルトのサイトタイトル"
description: "デフォルトのディスクリプション"
keywords: "デフォルトののキーワード"
この情報を使って、app/helper/application_helper.rb
にデフォルトのメタタグ設定を書いていく
module ApplicationHelper
def default_meta_tags
{
site: Settings.site.name,
reverse: true,
title: Settings.site.title,
description: Settings.site.description,
keywords: Settings.site.keywords,
canonical: request.original_url,
}
end
end
app/views/layouts/application.html.erb
を以下のように記載
!!!
%html
%head
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}
%meta{:charset => "utf-8"}
%meta{:name => "viewport", :content => "width=device-width, initial-scale=1.0"}
%meta{"http-equiv" => "x-ua-compatible", :content => "ie=edge"}
= display_meta_tags default_meta_tags
= csrf_meta_tags
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
・・・