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が更新されるようになります。