2013-05-19 12:26

検索エンジン向けのサイトマップ作成 -sitemap_generator-

検索エンジンに効率よくクロールしてもらう為にサイトマップを作ります。
せっかくRailsを使っているので、XMLを直接記述するのではなく、sitemap_generatorというGemを利用して作ってみます。

早速Gemを追加して、、

Gemfile
gem 'sitemap_generator'

bundle !!

ターミナル
$ bundle install

問題なければ、続けて次のコマンド。

ターミナル
$ rake sitemap:install

これが成功するとconfig/sitemap.rbが生成されます。
このファイルにサイトマップの内容を記述していきます。

最初にホームページを登録しておきます。
既に「SitemapGenerator::Sitemap.default_host =」の行があるので、次のようにパスを記述してください。

config/sitemap.rb
SitemapGenerator::Sitemap.default_host = "ページのURL"

次にサイトマップに登録するページを記述していきます。

config/sitemap.rb
SitemapGenerator::Sitemap.create do
  # ここに追加する。
end

addに続けてパスを記述します。
パスは「/」から始めましょう。
ちなみにルートパスはここに記述しなくてもちゃんと登録されるようです。

config/sitemap.rb
  add '/articles'
  add '/article/1'

こんな感じ。
書き方はconfig/sitemap.rbにコメントで記述されているから参考にして色々やってみてください。

そしたら実際にサイトマップを生成します。

ターミナル
$ rake sitemap:refresh
+ sitemap1.xml.gz                                         29 links /  466 Bytes
+ sitemap_index.xml.gz                                  1 sitemaps /  237 Bytes
Sitemap stats: 29 links / 1 sitemaps / 0m00s

Successful ping of Google
Successful ping of Bing
Successful ping of Sitemap Writer

すると、publicディレクトリ直下に以下の名前でサイトマップが生成される。

  • sitemap_index.xml.gz
  • sitemap1.xml.gz

登録するパスの量にに応じて、sitemap2.xml.gz、sitemap3.xml.gzと生成されるファイルの数が増えます。

ここで生成されたサイトマップは生成と同時にGoogleやBingといった検索エンジンに送信されます。
これによって検索エンジンがサイトマップに従ってクロールしやすくなると期待されます。

後にコンテンツが増えて、サイトマップにパスを追加したら、

ターミナル
$ rake sitemap:refresh

を忘れないように。