
口语里大家都说「RSS 订阅」。真落到站点配置和阅读器行为上,常见其实是两套格式:RSS 2.0,以及 Atom(RFC 4287)。
不是说 RSS 立刻该死。很多站默认吐的还是 /feed/,读者也认这个词。但如果你在搭博客、写聚合,或嫌全文排版、改稿、重复推送老出幺蛾子,Atom 往往更省心。
本站两边都开着:
下面按踩坑点说,不神话任何一方。

差在哪
| 点 | RSS 2.0 | Atom |
|---|---|---|
| 标准 | 民间演进久了,规格散,基本不再大改 | IETF RFC 4287,字段约束更清楚 |
| 正文 HTML | 没有统一的 type 声明,CDATA / 转义各家各搞 | type="html" / xhtml 写明白,阅读器好认 |
| 条目 ID | guid 可选,执行松,容易重复 |
必须有稳定 id |
| 时间 | 常见一个 pubDate |
至少要有 updated,还可另写 published |
| 作者 | 频道级联系人居多 | 每条 entry 可单独写 author |
全文 HTML 少折腾一点
文章里有链接、代码、粗体很正常。
RSS 里塞 HTML,多半进 CDATA,或者把尖括号转义掉。阅读器若猜错「这是纯文本还是 HTML」,排版就花。Atom 用 content 的 type 说清楚意图,解析路径更直。
别神话成「Atom 一定原样复刻你的主题样式」。阅读器有自己的沙箱。相对稳的是:标签语义别丢得太狠。
改稿别被当成新文
技术文常改。RSS 只有发布时间时,有的阅读器会把改稿当新条目再推一遍,烦。
Atom 强制 updated,可选 published。像样的客户端可以认成「旧文有更新」,后台刷新内容,少弹未读惊吓。
前提是你的程序改文时真的改 updated,别两套时间戳写死成同一个值。
ID 稳,重复推送少一点
读过的文又冒未读,常见原因是 ID 飘了:临时链接当 guid、重建 feed 时 ID 变了、固定链接一改 guid 跟着晃。
Atom 要求每条有全局唯一且应长期不变的 id。域名换了、标题改了,只要 id 不动,阅读器更不容易当成两篇。
RSS 也能把 guid 写死;问题是规范没摁死,很多生成器图省事。
多人写时更好标作者
合写博客时,RSS 频道级联系人不够用,单篇作者常要靠扩展。Atom 每条 entry 自带 author,按需填名字和主页就行。
<entry> <title>标题</title> <link href="https://example.com/post/" /> <id>https://example.com/post/</id> <published>2026-10-27T08:00:00Z</published> <updated>2026-10-27T10:00:00Z</updated> <author><name>听雪</name></author> <content type="html"><![CDATA[<p>正文</p>]]></content> </entry>
真实站点字段会更多;WordPress 的 /feed/atom/ 已经帮你生成一版可用的。
那还要不要 RSS
要。至少别急着对外只留一个谁也找不到的地址。
读者嘴里的「RSS」常常包含 Atom。常见阅读器两边都能订。站长侧更稳妥的做法是:
- 对外可以优先贴 Atom 地址
- 保留 RSS,兼容老书签和只认
/feed/的习惯 - 页面里两种 alternate 都挂上(WordPress 默认基本如此)
新系统若只能先做一种,优先 Atom。已经跑着 RSS 的老站,加 Atom 并行输出就行,犯不着搞「全面放弃」仪式感。
本文作者为tingxue,转载请注明。