2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails] サイトマップを作成する

Last updated at Posted at 2021-03-18

#サイトマップとは
サイトマップとは、サイト全体のページ構成を一覧でまとめてみれるページのことです。
サイトマップを作成することでユーザーや検索エンジンにサイトの内容をわかりやすく伝える役割を持ち、SEO対策にもなります。

#gemを導入する
今回は、 sitemap_generator を使っていきます。
Gemfile に以下を追記して bundle install をします。

Gemfile
gem 'sitemap_generator'

#サイトマップの設定ファイルを作成する
以下を実行すると、config/sitemap.rb に設定ファイルが作成されます。

$ bundle exec rails sitemap:install

以下を実行すると、public/sitemap.xml.gz が作成されます。

$ bundle exec rails sitemap:create

サイトマップはサイズが大きくなりやすいので sitemap.xml.gz はgit管理から外しておきます。

gitignore
# Ignore sitemap file
public/sitemap.xml.gz

##サイトマップの設定をする
先ほど作成した、 config/sitemap.rb にサイトマップとして生成したい内容を書いていきます。
addメソッドを使ってサイトマップに追加するページを指定していきます。(root_path はデフォルトで追加されています。)
オプションの確認(github)

config/sitemap.rb
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 をします。

Gemfile
gem 'whenever', require: false

次に、 config/schedule.rb を作成し、定期実行したい内容を書いていきます。
以下の例では毎日 am3:00 にサイトマップの更新を実行する設定をしました。

config/schedule.rb
every 1.day, at: '3:00 am' do
  rake 'sitemap:refresh'
end

参考にしたサイト

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?