Jekyllを使っていてsitemapを作っておこうかと思って調べたのでメモ。

リポジトリはこちら

まずはgemをインストール。Gemfileに以下を追加。

gem 'jekyll-sitemap'

そしてbundle install

bundle install

_config.ymlplugins:jekyll-sitemapを組み入れる。

plugins:
  - jekyll-feed
  - jekyll-sitemap # 追加!

そして bundle exec jekyll serve をすると _site 直下にsitemap.xmlが作られている。

手元で確認するときはこの方法でよさそう。

あとは、buildしたときにもsitemap.xmlが作られるようになっているので、そのURLをサーチコンソールに登録すれば完了。

特別な設定がいらなければこんな感じで簡単にできるのはありがたい。

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://localhost:4000/notes/blog/posts/html5_dnd</loc>
<lastmod>2022-11-24T17:36:18+09:00</lastmod>
</url>
(以下略)

lastmodの更新

sitemapの中のlastmodはFront Matterのdateが反映される。

ただ、記事の更新日時と作成日時を分けて管理していてdateを作成日時としている場合、lastmodを更新できない。

そんなときはFront Matterにlast_modified_atの項目を追加して更新日時を記載すればOK。

last_modified_atの制御をしているソースコードはこちら

sitemapなんてなくても検索エンジンは登録してくれるんじゃないか、と思いつつもブログとかサイトとか運営していると藁にも縋りたいと思うのが人の性。

このsitemapが大容量になるようにたくさんコンテンツを書いていくぞー!

この記事の環境情報

  • jekyll 4.3.1
  • jekyll-sitemap 1.4.0
  • jekyllって打ち込むのだいぶ慣れてきた。が、それでもときどき間違う。