railsでsitemapを自動生成するライブラリ

サイトを運営していると、SEO対策としてsitemapを作ることがあると思います。
[Google ウェブマスターヘルプ]
https://www.google.com/support/webmasters/bin/answer.py?hl=ja&answer=183668&ctx=cb&src=cb&cbid=-35ar1gb5e7oa&cbrank=0


これ手動で作成するのは面倒なので自動化したいです。ツールはたくさんあるようですけど、railsの場合だとこれを使うと便利です。
[sitemap_generator]
http://rubygems.org/gems/sitemap_generator


使い方は以下のような感じ ※rails3の場合
Gemfileに以下を追加後、bundle install

gem 'sitemap_generator'

installが終わったら

rake sitemap:install

を実行するとconfig/sitemap.rbというファイルができあがります。


sitemap.rbに実際にファイルに書き込まれる内容をプログラムとして記述します。
[例]

SitemapGenerator::Sitemap.default_host = "http://www.hoge.com"

SitemapGenerator::Sitemap.create do
  add "/info", :priority => 0.5
  add "/info/about", :priority => 0.5
  News.find_each do |n|
    add "/news/detail/#{n.id}", :lastmod => n.updated_at
  end
  ・
  ・
end

下記を実行するとsitemap_index.xml.gz,sitemap1.xml.gzというファイルができると思います。

rake sitemap:refresh

※エラーになったらsitemap.rbのエラー箇所を修正


ファイルが作成されるのを確認できたら、robots.txtにsitemapの記述をします。

Sitemap: http://www.example.com/sitemap_index.xml.gz


最後にdeploy.rbに以下を記述 ※railsだったらcapistranoは必須だよね?

after "deploy", "refresh_sitemaps"
task :refresh_sitemaps do
  run "cd #{latest_release} && RAILS_ENV=#{rails_env} rake sitemap:refresh"
end

これでデプロイした際にsitemapが更新されるようになります。