以前に簡単にMiddlemanでsitemapを動的に生成する方法という記事をエントリーしましたが、
本当に簡単なサイトマップで、priorityが固定だったり、lastmodがなかったりと手抜きな感じのサイトマップだったので、もう少しちゃんとした、sitemap.xmlを生成でるような設定のメモです。
Gemfileの追加
Gemfileに下記を追加して、bundle install
# https://github.com/jimweirich/builder
# sitemap.xml feed.xml
gem 'builder'
sitemap.xml.builderの作成
source/sitemap.xml.builder を下記のように作成します。
拡張子が.htmlのファイルに対してのサイトマップを生成していきます。
xml.instruct!
xml.urlset "xmlns" => "http://www.sitemaps.org/schemas/sitemap/0.9" do
sitemap.resources.each do |resource|
xml.url do
xml.loc "http://example.com#{resource.url}"
xml.lastmod File.mtime(resource.source_file).strftime('%Y-%m-%d')
xml.priority (1.1 - resource.url.count("/") * 0.1).round(1).to_s
xml.changefreq "daily"
end if resource.destination_path =~ /\.html$/
end
end
※ http://example.com部分は、環境に合わせて変更してください。
lastmod
ファイル自体の、最終更新時刻からlastmodを指定しています。
priority
priorityはroot直下の階層が1.0
2階層目が0.9
2階層目が0.8
と階層を追う毎に0.1づつpriorityが下がっていきます。
changefreq
changefreqは、上記の書き方では、daily固定になっています。
上記に合わせて、値を変更してください。
値 | 説明 |
---|---|
always | 毎回内容が更新 |
hourly | 1時間毎に変更 |
daily | 1日毎に変更 |
weekly | 1週間毎に変更 |
monthly | 月毎に変更 |
yearly | 年毎に変更 |
never | 基本変わらないページ |
また、urlのpath等をみて、振り分けを行ってもよいと思います。
sitemap.xmlの作成
後は、以下を実行しれば、build/sitemap.xmlが生成されるので確認して、サーバーにアップしてください。
middleman b
0 件のコメント:
コメントを投稿