RSSとは? 本ブログの Astro 設定(site・canonical・フィード)

  • Astro
  • RSS

RSSとは?

  • RSS とは、Web サイトが更新情報の一覧を機械が読める形式で配信する仕組みです。
    • RSS リーダー(Feedly など)にフィードの URL を登録しておくと、更新を一覧で追えます。

本ブログの設定(astro.config.mjs

このプロジェクトでは設定ファイル名は astro.config.mjs です(astro.config.js でも同様の役割)。

site公開中の URL を指定します。ビルド時に Astro.site や RSS 用の context.site として参照されます。

// astro.config.mjs(抜粋)
import mdx from '@astrojs/mdx';
import sitemap from '@astrojs/sitemap';
import { defineConfig } from 'astro/config';

export default defineConfig({
	site: 'https://2026-04-06as.vercel.app',
	integrations: [mdx(), sitemap()],
});
  • @astrojs/sitemap により、ビルド時に sitemap(例: sitemap-index.xml)が生成されます。site の指定が前提になります。

src/components/BaseHead.astro で参照されるもの

siteAstro.site として各ページで使えます。BaseHead では主に次を出力しています。

  • canonical タグAstro.url.pathnameAstro.site から絶対 URL を組み立てる
  • RSS への link(絶対 URL)new URL('rss.xml', Astro.site)
  • sitemap への参照<link rel="sitemap" href="/sitemap-index.xml" />(パスはビルド成果物に合わせた相対指定)

RSS フィード本文(rss.xml)の生成そのものは BaseHead ではなく、後述の src/pages/rss.xml.js@astrojs/rss)が担当します。

---
// BaseHead.astro(抜粋)
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
---

<link rel="sitemap" href="/sitemap-index.xml" />
<link
	rel="alternate"
	type="application/rss+xml"
	title={SITE_TITLE}
	href={new URL('rss.xml', Astro.site)}
/>

<link rel="canonical" href={canonicalURL} />

RSS フィード(rss.xml)の生成

@astrojs/rss のエンドポイントで、sitecontext.site(=設定の site)として渡します。

// src/pages/rss.xml.js(抜粋)
import rss from '@astrojs/rss';

export async function GET(context) {
	const posts = await getCollection('blog');
	return rss({
		title: SITE_TITLE,
		description: SITE_DESCRIPTION,
		site: context.site,
		items: posts.map((post) => ({
			...post.data,
			link: `/blog/${post.id}/`,
		})),
	});
}

まとめ

項目役割
astro.config.mjssite公開 URL の基点。Astro.site / context.site に反映
BaseHead.astrocanonical、RSS リンクの絶対 URL、sitemap への link
rss.xml.jsフィード XML の生成(site: context.site
@astrojs/sitemapsitemap XML の生成(integrations で有効化)