Astro でサイトマップ

はじめに

Astro でサイトをリニューアルしたのでタイトルの通りサイトマップに対応する方法について書いておく。

結論

めちゃくちゃ簡単に実現できて、以下のコマンドでインテグレーションを追加するだけで良い。

$ npx astro add sitemap

上記コマンドを実行したらastro.config.mjs に以下が追記されているはず。(注意点として site プロパティは追記が必要)

+ import sitemap from "@astrojs/sitemap";

export default defineConfig({
  site: "https://example.com",
  integrations: [
+    sitemap()
  ]
});

ビルドしたら sitemap-0.xml, sitemap-index.xml が dist/ 配下に生成される。

1 つのファイルとしてサイトマップを出力したい

上記の公式インテグレーションを使用すると、2 つのファイルが生成される。 sitemap.xml だけを生成して欲しい場合は自分でカスタムインテグレーションとして実装する必要がある。

以下に参考になりそうな記事を見つけたので、興味がある人は参考にして欲しい。

Astroで理想のサイトマップを自作する
Astroにはサイトマップのインテグレーションがあり、npx astro add sitemapとコマンドを打つだけで自動的にサイトマップ生成機能が追加されますが、執筆時点でこのサイトマップ機能にはバグがあり、3桁の数字を含むURLはサイトマップに追加されません。
Astroで理想のサイトマップを自作する favicon shinobiworks.com
Astroで理想のサイトマップを自作する

参考

@astrojs/sitemap
Learn how to use the @astrojs/sitemap integration in your Astro project.
@astrojs/sitemap favicon docs.astro.build
@astrojs/sitemap