RSS(と Atom)は何か
RSS(Really Simple Syndication など)や Atom は、サイトの更新エントリを XML で配る仕組みです。HTML を人が読むように並べるのではなく、フィードリーダーが定期的に取得して、新着一覧として見せる用途向きです。
サイトマップ(sitemap)が「検索エンジン向けの URL 一覧」なのに対し、RSS は新着の追跡向きで、過去の全ページ一覧には向かないことが多い、という整理ができる。
実際に「使う」ときの方法
代表的には次のような使い方があります。
- フィードリーダーに URL を登録する … Feedly、Inoreader、NetNewsWire、Reeder など。サイトが提示している
https://example.com/feed/やhttps://example.com/rss.xmlを追加する。 - ブラウザ拡張 … ページにフィードがあるときに通知したり一覧化したりする。
- 自前のサービスから取得 … サーバーやバッチで HTTP GET して XML をパースし、別の画面に新着を出す(キャッシュ・取得間隔・相手サーバーへの負荷には配慮する)。
- Podcast … 音声配信の多くは RSS(または拡張)を本体として配信する、という別レイヤの話になる。
サイト側で「RSS 対応」と言うときの要件
実務ではだいたい次を満たします。
- フィード XML を、安定した URL で配信する(例:
/rss.xml、/feed.xml)。形式は RSS 2.0 か Atom が一般的。 - 各エントリに タイトル・記事へのリンク・更新日時が入る(本文や抜粋は任意)。
- (推奨)全ページの
<head>にrel="alternate"とtype="application/rss+xml"でフィード URL を指す。購読アプリやクローラが見つけやすくなる。
サイトマップとフィードの役割の違いは、早見表にしておくと見積もりや調査の説明に使いやすい。
WordPress の場合
WordPress コアにはフィード機能が含まれており、パーマリンク設定に応じて URL は変わるが、多くの環境では次のようなパスで投稿フィードが配信される。
- 例:
/feed/(サイトの投稿一覧のフィード)
コメント用・カテゴリ・タグ別のフィード URL も用意される。テーマやプラグインでフィードの出力を変えたり、意図的に無効化したりすることもある点には注意する。
なお、名前に「Feed」が付くプラグイン(例: SNS の投稿をサイトに埋め込む系)は、ブログの RSS とは別目的のことが多い。混同しない。
このブログ(Astro)での実装
このサイトでは次のようにしている。
@astrojs/rss で /rss.xml を生成
Content Collection の blog を読み、@astrojs/rss の rss() で XML を返すエンドポイントを src/pages/rss.xml.js に置いている。
import { getCollection } from 'astro:content';
import rss from '@astrojs/rss';
import { SITE_DESCRIPTION, SITE_TITLE } from '../consts';
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}/`,
})),
});
}
context.site は astro.config.mjs の site(サイトの絶対 URL)と対応しており、フィード内のリンク解決に使われる。
<head> で alternate を宣言
共通ヘッダ BaseHead.astro で、サイトマップに加えて RSS への link を出している。
<link rel="sitemap" href="/sitemap-index.xml" />
<link
rel="alternate"
type="application/rss+xml"
title={SITE_TITLE}
href={new URL('rss.xml', Astro.site)}
/>
これで購読者は /rss.xml を登録でき、ページを開いたときもフィードの存在が機械可読になる。
まとめ
| 観点 | 内容 |
|---|---|
| RSS の役割 | 更新エントリの配信(新着追跡向き) |
| サイト側 | 安定 URL の XML + 推奨で rel="alternate" |
| WordPress | コアの /feed/ 等(環境・設定で要確認) |
| 本サイト(Astro) | rss.xml.js + BaseHead の alternate + @astrojs/sitemap |
参考: Astro RSS、WordPress Feeds(公式の英語ドキュメント)。