Jekyll sitemapでlocが相対パスになる原因と対処法

url設定で絶対URLに直す手順を検証ベースで解説

By taiyou 2026-02-15
Share: X (Twitter) Facebook LinkedIn

はじめに

ブログのSEOまわりを整えたくて、今さらですが sitemap.xml をちゃんと設定しました。
プラグイン自体はすぐ入ったのに、生成結果を見たら loc が相対パスになっていて、普通にハマりました。

結果的にはすぐ直せたので、同じところで詰まる人向けにメモとして残します。

きっかけ

Search Consoleを見直していて、
「sitemap送信はしているけど、内容ちゃんと見てなかったな」と気づいたのがきっかけです。

実際に sitemap.xml を開いたら、こんな感じでした。

  • /2025-06-02-github-jekyll/
  • /2025-06-03-expo-update/

これ、URLが全部相対パスです。
「あれ、これで正しいのか?」となって確認を始めました。

詰まったポイント

jekyll-sitemap は入っているのに、絶対URLにならない。
原因はシンプルで、_config.ymlurl が設定されていなかったことでした。

_config.yml に次を追加したら解決しました。

url: "https://taiyou-tech-blog.com"
baseurl: ""

修正後は lochttps://taiyou-tech-blog.com/... 形式になって、想定どおりに出力されました。

ローカル確認で404になった件

ここで別の問題が出ました。
_config.yml に本番URLを入れると、bundle exec jekyll serve でも absolute_url が本番ドメインを使うので、ローカル確認時にリンク遷移で404になりました。

これを避けるために、開発用の設定ファイルを分けました。

_config_dev.yml

url: "http://localhost:4000"
baseurl: ""

ローカル起動は次のようにしています。

bundle exec jekyll serve --config _config.yml,_config_dev.yml

この形にすると、

  • 本番ビルド(_config.yml のみ)は https://taiyou-tech-blog.com
  • ローカル確認(_config_dev.yml 上書き)は http://localhost:4000

で切り分けできるので、開発中の404を防げました。

やっておいてよかった確認

今回みたいな設定系は、直したあとに「本当に変わったか」を見るのが大事でした。

  • bundle exec jekyll build で再生成
  • _site/sitemap.xml の先頭数件を目視確認
  • 開発サーバーを再起動して再確認

この3つだけでも、かなり安心できます。

関連記事

Jekyll運用の話はこのあたりにも書いています。

まとめ

sitemap設定そのものは簡単でしたが、
url 未設定だと loc が期待とズレるので、ここは最初に入れておくのが安全です。

地味な修正だけど、こういうところを1つずつ潰していくと、
ブログ運用の不安がかなり減るなと実感しました。

関連記事