#サイトマップとは
サイトマップとは、サイト全体のページ構成を一覧でまとめてみれるページのことです。
サイトマップを作成することでユーザーや検索エンジンにサイトの内容をわかりやすく伝える役割を持ち、SEO対策にもなります。
#gemを導入する
今回は、 sitemap_generator
を使っていきます。
Gemfile
に以下を追記して bundle install
をします。
gem 'sitemap_generator'
#サイトマップの設定ファイルを作成する
以下を実行すると、config/sitemap.rb
に設定ファイルが作成されます。
$ bundle exec rails sitemap:install
以下を実行すると、public/sitemap.xml.gz
が作成されます。
$ bundle exec rails sitemap:create
サイトマップはサイズが大きくなりやすいので sitemap.xml.gz
はgit管理から外しておきます。
# Ignore sitemap file
public/sitemap.xml.gz
##サイトマップの設定をする
先ほど作成した、 config/sitemap.rb
にサイトマップとして生成したい内容を書いていきます。
addメソッドを使ってサイトマップに追加するページを指定していきます。(root_path
はデフォルトで追加されています。)
オプションの確認(github)
SitemapGenerator::Sitemap.create do
add '/home', :changefreq => 'daily', :priority => 0.9
add '/contact_us', :changefreq => 'weekly'
end
SitemapGenerator::Sitemap.ping_search_engines
このままでは設定ファイルができただけなので、サイトマップの作成をするために以下のコマンドを実行します。
また、サイトマップの更新の際にも同じコマンドを実行します。
$ rails sitemap:refresh
#サイトマップの自動更新をする
サイトマップは定期的に更新する必要があるので自動更新されるようにします。
gemfile
に以下を追記して bundle install
をします。
gem 'whenever', require: false
次に、 config/schedule.rb
を作成し、定期実行したい内容を書いていきます。
以下の例では毎日 am3:00
にサイトマップの更新を実行する設定をしました。
every 1.day, at: '3:00 am' do
rake 'sitemap:refresh'
end