社内向けというか個人のメモ的投稿です。
同じような内容を書かれてる方はいくらでもいるのであしからずw
SEOの基本でもあるsitemap.xml。
今まではbuilderというgemを使ってましたが、この子はmiddleman4X系には対応していないようなので、いつかはアップデートするであろうmiddlemanのために入れ替え(笑)
gem 'middleman-search_engine_sitemap', '~> 1.3.0'
3X系の場合は上記のようにバージョンを指定します。
4X系の場合はバージョン指定不要です。
set :url_root, 'https://www.hogehoge.com'
configure :build do
activate :search_engine_sitemap
end
本番環境のURLをroot_urlにセットし、build時に出力すれば良いので、上記のようにbuildの中に設定する。
bundle exec middleman build
ビルドしてやるとbuildフォルダの中にsitemap.xmlが生成されます。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://hogehoge.com/</loc>
<lastmod>2016-00-00T00:00:00+09:00</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
</urlset>
changefreqやpriorityなどをこまかくオプション設定できるので以下を参照してください。
middleman-search_engine_sitemap
robots.txt
せっかくsitemap.xmlを生成したのだからロボテキも用意しときましょう!
我流なのでスマートな方法があったら教えてください!w
sourceルートにrobots.txt.hamlを用意して以下のように記述
User-agent: *
Sitemap: #{url_root}/sitemap.xml
root_urlが動けばよいのでテンプレートファイルタイプはHAMLではなくERBでもOKです。
おわりに
builderだとsitemap.xml.builderというファイルを用意したり、layoutを使わないようにconfigに設定しなきゃいけなかったけど、middleman-search_engine_sitemapならこれらのファイルや設定が不要でいいですね!