
RailsのSEO対策をしてくれるRubyGemの紹介です。
meta-tags : メタタグ / open graphタグ / headerのtitleの管理
sitemap_generator : サイトマップを生成してくれる
どちらも簡単に導入できて、機能は充実しているので是非試してみて下さい。
meta-tags GitHubsitemap_generator GitHub
Gemのインストール
Gemfileに以下のコードを追加して、bundle installを実行。
Gemfile
1
2
3
| # SEO
gem 'meta-tags', :require => 'meta_tags'
gem 'sitemap_generator'
|
meta-tagsの設定
app/views/layouts/application.html.erbに次のコードを追加。
app/views/layouts/application.html.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
| <%
set_meta_tags :site => 'Site Title',
:description => 'Member login page.',
:keywords => 'Site, Login, Members',
:open_graph => {
:title => 'The Rock',
:type => :movie,
:url => 'http://www.imdb.com/title/tt0117500/',
:image => 'http://ia.media-imdb.com/rock.jpg'
},
:reverse => true
%>
<%= display_meta_tags %>
|
もし、各Viewごとにtitleを変更したい場合はViewファイルに次のコードを追加。
Viewファイル
1
| <% set_meta_tags :title => 'Page Title' %>
|
たったこれだけで(1)metaタグ、(2)Open Graphプロトコルのmetaタグ、(3) headerのtitleを簡単に制御できちゃいます。下は出力結果のhtmlソースです。
htmlファイル
1
2
3
4
5
6
7
| <title>Site Title | Page Title</title>
<meta content="Member login page." name="description" />
<meta content="site, login, members" name="keywords" />
<meta content="The Rock" property="og:title" />
<meta content="movie" property="og:type" />
<meta content="http://www.imdb.com/title/tt0117500/" property="og:url" />
<meta content="http://ia.media-imdb.com/rock.jpg" property="og:image" />
|
もし、titleをPage Title | Site Titleとしたい場合はこちら。
app/views/layouts/application.html.erb
1
| set_meta_tags :site => 'Site Title', :reverse => true
|
更にNoindex/Nofollow/Canonical URLといったSEO最適化のための設定も簡単に出来ます。下は公式サイトへのリンクです。
meta-tags GitHub
sitemap_generatorの設定
config/sitemap.rbを生成。
コンソール
config/sitemap.rbをサイト構成に合わせて修正。
ここでは、sitemapを生成できるようにするために、SitemapGenerator::Sitemap.default_hostのみ修正。
config/sitemap.rb
1
| SitemapGenerator::Sitemap.default_host = 'http://example.com'
|
詳細は、Sitemap Configuration | kjvarga/sitemap_generator | GitHubを参照。
sitemapファイルをpublic/に生成。
コンソール
1
2
3
4
5
| # Development/Testの場合(pingをsearchエンジンに送付しない)
rake sitemap:refresh:no_ping
# Productionの場合(pingをsearchエンジンに送付する)
rake sitemap:refresh
|
実行結果が以下の様になっていれば成功です。
コンソール
1
2
3
4
5
| rake sitemap:refresh:no_ping
> In /app_path/to/public/
> + sitemap1.xml.gz 1 links > / 340 Bytes
> + sitemap_index.xml.gz 1 sitemaps > / 241 Bytes
> Sitemap stats: 1 links / 1 sitemaps / 0m00s
|
sitemap_genreatorはCapistranoと連携してデプロイ時に自動生成することもできるので、良かったら公式サイトも見て下さい。
sitemap_generator GitHub
補足:Capistranoと連携してDeploy時にSitemapを生成する
Deployの自動化Gem「Capistrano」を使っている場合は、Delopy時にSitemapを自動で生成/更新することができます。deploy.rbに以下の内容を追加します。
1
2
3
4
5
6
7
8
9
10
11
12
13
| namespace :deploy do
desc "古いサイトマップの削除"
task :copy_old_sitemap do
run "if [ -e #{previous_release}/public/sitemap_index.xml.gz ]; then cp #{previous_release}/public/sitemap* #{current_release}/public/; fi"
end
desc "sitemapの更新"
task :refresh_sitemaps do
run "cd #{latest_release} && RAILS_ENV=#{rails_env} rake sitemap:refresh"
end
end
after "deploy:update_code", "deploy:copy_old_sitemap"
after :deploy, "deploy:refresh_sitemaps"
|
もしRailsのDeploy自動化Gem「Capistrano」に興味が有る場合は、「Rals3.2.9で始める Git連携Capistranoによる自動デプロイ」を参考にしてください。
変更来歴
12/18 09:25 TITLEを PAGE_TITLE | SITE_TITLEにする記述を追記
12/21 17:45 「補足:Capistranoと連携してDeploy時にSitemapを生成する」を追加