Edited at

Railsでサイトマップを作成する方法

More than 1 year has passed since last update.


sitemap_generator

sitemap_generatorとは、XML形式のサイトマップを手軽に作成するためのGemです。


サイトマップとは

サイトマップとはWebサイトのページをまとめたもので、Googleに自身のサイトの構造を伝えることができます。Googlebotなどの検索エンジンのクローラはこのサイトマップを読み込む事でサイト内をより効率的に巡回することができるようになります。

ちなみに、サイトマップには以下のような形式があります。


  1. XML

  2. RSS, mRSS, Atom 1.0

  3. テキスト

  4. Google サイト

どの形式でも、1つのサイトマップにはサイズが50MB(圧縮しない状態で)以下、URLが 50,000件以下 という制限があります。そのため、サイズが大きい場合や、URLが多い場合は、複数のサイトマップを作成する必要があります。


導入手順

以下のgemを追加します。

gem 'sitemap_generator'

設定ファイルを作成するため、以下のコマンドを実行します。そうするとconfig/sitemap.rbが作成されます。

rake sitemap:install

sitemap.rbの中に以下のコードを記述します。

# サイトマップ作成対象のサイト(sitemap_generatorは複数のhostにも対応可能)

SitemapGenerator::Sitemap.default_host = "https://hogehoge"
# サイトマップの出力先を指定
SitemapGenerator::Sitemap.sitemaps_path = 'sitemaps/'

# メインの処理をここに書く
SitemapGenerator::Sitemap.create do

sitemap_list.each do |hash|
add root_path, :changefreq => 'daily'
end

end

実際にサイトマップを作成する際は、用途に合わせて以下のいずれかのコマンドを実行してください。


  • sitemapの作成を行いたい時

rake sitemap:create


  • sitemapを更新してサーチエンジンに通知したい時

rake sitemap:refresh


  • sitemapを更新してサーチエンジンに通知したくない時

rake sitemap:refresh:no_ping


  • sitemapを削除したい時

rake sitemap:clean

createrefreshのコマンドを実行するとpublicにサイトマップが出力されます。デフォルトだとpublic直下に作成され、ディレクトリを指定した場合はそのディレクトリ内に作成されます。今回の例の場合、作成されるディレクトリはpublic/sitemapsです。また、サイトマップの拡張子は.xml.gzとなります。