- 公開日:2016年01月20日
環境
- rails 4.2.4
- ruby 2.2.2
- vagrant centos6.5
はじめに
railsアプリにsite_map.xmlを導入したので、やり方を記事にしました。
site_map.xmlとは
ページのURLリストをもとにサイトの構造を記述したxml形式のファイルです。
作成したサイトが運用フェーズになったら、必ず導入しておきたいSEO対策の技術の一つです。
site_map.xmlの一番の効果は、検索エンジンの通常のクロール処理では検出できないページを知らせることができることです。
site_map.xml作成方法
railsでsite_map.xmlを作成する場合は、sitemap-generatorを利用すると良いと思います。
gem 'sitemap_generator'
Gemfile記述後に、インストールします。
// create directory cd {project_folder} rbenv exec bundle install Installing sitemap_generator 5.1.0 Using spring 1.3.4 Using spring-commands-rspec 1.0.4 Using therubyracer 0.12.2 Using uglifier 2.7.1 Using unicorn 4.9.0 Bundle complete! 27 Gemfile dependencies, 112 gems now installed.
インストール終了後にconfig/sitemap.rbを作成します。
config/sitemap.rb作成
cd {project_folder} rbenv exec rake sitemap:install created: config/sitemap.rb
sitemap.rbの記述
sitemap.rbに必要な項目を記載していきます。hostの設定はかならず行います。
SitemapGenerator::Sitemap.default_host = "http://test.com/"
記述が完了したらsitemapを作成します。
rbenv exec rake sitemap:refresh:no_ping In '/vagrant_data/{project_folder}/public/': + sitemap.xml.gz 1 links / 338 Bytes Sitemap stats: 1 links / 1 sitemaps / 0m00s
{project_folder}/public/にsitemap.xml.gzというファイルが作成されます。
解凍すればsitemap.xmlの中を確認することができます。
また、sitemap.rbではrailsのroutesの設定と同じような記述方法でsite_map.xmlを作成していくことが可能です。
まず最初の例として、引数を設定する必要がないpathを記述してみます。
add samples_path, :priority => 0.7, :changefreq => 'daily'
引数を設定する必要があるpath(showとか)は、以下のように記述します。
Sample.find_each do |sample| add sample_path(:id => play.sample) end
上記のように必要なroutesの設定をしていくことで巨大なsitemap.xmlを作成できます。
サイトの規模が大きくなればなるほど便利さを実感できると思います。
まとめ
サイトの規模が大きくなればなるほどSitemapGeneratorのありがたみを実感できるはずです。 たとえ何千ページでも簡単にsite_map.xmlを作成できるので、是非試してみてください。
Capistranoを使って自動化しておくとより便利です。
Capistranoを使った自動化の方法は、またの機会に説明したいと思います。
以上です
Rails4の開発にオススメの本
Rubyの応用力をつけるのにオススメの本
運営サイト(railsで作成しています)
参考サイト
- [Rails 4.1] sitemap-generator を使って Sitemap を作成する
- meta-tagsとsitemap_generatorで始めるRails 4.1時代のSEO対策
- SitemapGenerator
0 件のコメント:
コメントを投稿