meta-tagsとsitemap_generatorで始めるRails 3.2のSEO対策


Eye Catch Image

RailsのSEO対策をしてくれるRubyGemの紹介です。

meta-tags : メタタグ / open graphタグ / headerのtitleの管理
sitemap_generator : サイトマップを生成してくれる

どちらも簡単に導入できて、機能は充実しているのでぜひ試してみてください。

meta-tags GitHubsitemap_generator GitHub


🐠 Gemのインストール

Gemfileに次のコードを追加して、bundle installを実行。

# SEO
gem 'meta-tags', :require => 'meta_tags'
gem 'sitemap_generator'

🐯 meta-tagsの設定

app/views/layouts/application.html.erbに次のコードを追加。

<%
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ファイルに次のコードを追加。

<% set_meta_tags :title => 'Page Title' %>

たったこれだけで(1)metaタグ、(2)Open Graphプロトコルのmetaタグ、(3) headerのtitleを簡単に制御できちゃいます。下は出力結果のhtmlソースです。

<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としたい場合はこちら。

set_meta_tags :site => 'Site Title', :reverse => true

更にNoindex/Nofollow/Canonical URLといったSEO最適化のための設定も簡単に出来ます。下は公式サイトへのリンクです。

meta-tags GitHub

😀 sitemap_generatorの設定

config/sitemap.rbを生成。

rake sitemap:install

config/sitemap.rbをサイト構成に合わせて修正。

ここでは、sitemapを生成できるようにするために、SitemapGenerator::Sitemap.default_hostのみ修正。

SitemapGenerator::Sitemap.default_host = 'http://example.com'

詳細は、Sitemap Configuration | kjvarga/sitemap_generator | GitHubを参照。

sitemapファイルをpublic/に生成。

# Development/Testの場合(pingをsearchエンジンに送付しない)
rake sitemap:refresh:no_ping
# Productionの場合(pingをsearchエンジンに送付する)
rake sitemap:refresh

実行結果が次の様になっていれば成功です。

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に次の内容を追加します。

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を生成する」を追加

📚 おすすめの書籍