🔥

HonoXで作ったサイト(SSR)に雑にsitemap.xmlを追加する

2024/09/17に公開

sitemap.xmlとは、サイトの構造を検索エンジンに通知するためのファイルです。この記事では、HonoXで作ったサイトにsitemap.xmlを追加する方法を紹介します。

先立ってSSGでの実践例を2つ紹介します。

https://scrapbox.io/razokulover-tech-memo/HonoのSSG用のsitemapを作成する

https://tkancf.com/blog/blog-migration-astro-to-hono

いずれもSSG後にsitemap.xmlを生成しているので、そのままではSSR modeのHonoXでは使えません。

今回は、SSR modeのHonoXで手軽にsitemap.xmlを生成する方法を紹介します。

sitemapを生成する

hono/devで提供されているinspectRoutesを使うと、Hono appに登録されたルーティング情報を取得できます。

https://github.com/kbkn3/gensya-akuyaku-source/blob/fb0b259f207945671031c194577d9d3680365f8f/app/lib/sitemap.ts#L41-L75

sitemap.xmlを返すエンドポイントを作成する

honoを使ってエンドポイントを作成します。
要点は以下の通りです。

  • sitemap.xmlをパスに指定するため、app/routes/sitemap.xml.tsを作成する
  • sitemap関数の出力でheaders: {'Content-Type': 'application/xml'}を含める

https://github.com/kbkn3/gensya-akuyaku-source/blob/develop/app/routes/sitemap.xml.ts

これを組み合わせることで、HonoXでsitemap.xmlを生成できます。

生成結果です。

https://gensya-akuyaku-source.pages.dev/sitemap.xml

まとめ

HonoX・Honoは、薄いフレームワークでありながらも、さまざまな機能を提供しているため、このようなxmlファイルも生成できます。
ぜひ、HonoX・Honoを使ってみてください。

さすがに静的なファイルを配信するよりは遅くなるかでしょうが、Honoの速度、edgeでの動作、CloudFlareのキャッシュなどを考慮すると、問題ないかでしょう。

LIFULLテックブログ

Discussion