酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

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を実行。

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を生成。

コンソール
1
rake sitemap:install

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

押さえておきたい書籍

いかがだったでしょうか?
もし説明がわかりにくかったり、間違っている場所があればぜひ一言!

Comments