2015年2月12日木曜日

簡単にMiddlemanでsitemapを動的に生成する方法

Middleman環境で、動的にsitemap.xmlを動的に生成する方法です。

特に、gem等は利用せずに、erbファイルから生成する方法になります。
SEO的にも最低限 サイトマップは用意しておくべきだと思います。

以下がその手順になります。

sitemap.xml.erbの生成

source/sitemap.xml.erbを下記のように作成します。

<% pages = sitemap.resources.find_all{|p| p.source_file.match(/\.html/) } %>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
pages.each do |p|
  <url>
    <loc>http://www.example.com/<%= p.destination_path.gsub('/index.html','') %></loc>
    <priority>0.5</priority>
  </url>
<% end %>
</urlset>

上記の場合、build時に生成される、htmlファイルにたいして、priorityを全て0.5を設定するようになっています。

必要があれば、pages.each do |p| の ループの中でディレクトリ名を見ながら、
以下の値を変更していってください。

<lastmod> 最終更新日
<changefreq> 更新頻度
<priority> 優先順位

sitemapのタグの定義方法に関しては、Goolge - サイトマップを作成する を参考ください。

config.rbへの設定追加

config.rbに以下を追加します。

page "/sitemap.xml", :layout => false

上記で、生成した、source/sitemap.xml.erbを元に、/sitemap.xml を生成してくれます。

ためしに、以下にアクセスして、saitemapが取得できれば成功です。

http://localhost:4567/sitemap.xml

まとめ

比較的簡単に、saitemapの生成が可能です。
細かく設定していこうとすると大変かもしれませんが、必要最低限のサイトマップの生成はできると思います。

参考サイト

http://benfrain.com/understanding-middleman-the-static-site-generator-for-faster-prototyping/

0 件のコメント:

コメントを投稿

statistics