更改RSS项目GUID或Atom条目ID的影响是什么?

3
当我在博客文章中进行重大更新(不仅是更正拼写错误)时,我希望确保读者在他们的新闻源中再次看到更新后的文章。根据我读过的资料,以下是一些选项:
  1. 创建一个全新的文章(基本上是原始文章的副本)。显然这是个不好的想法——重复的内容会对SEO产生不利影响。
  2. 更改文章发布和/或更新时间戳。在大多数阅读器中,这似乎不会使文章显示为未读。
  3. 更改RSS项GUID或Atom条目ID。根据Atom规范,这是大忌,但我不确定RSS是否也是如此。
所以,除非我漏掉了什么,似乎没有一个好的选项。
更改RSS项GUID或Atom条目ID有什么后果?如果更改文章ID,Feed Police会来找我吗?

正如目前的两个答案所述:没有完美的方法。更改GUID将使每个人都相信内容是全新的,因此可能会创建重复内容,并且仅更改<updated>元素可能不会始终触发完全刷新。 - Julien Genestoux
3个回答

2

RSS <guid>Atom <id>是用于唯一标识其父级项的元素。订阅阅读器和聚合器使用此字段确定该项是否已被下载或提取。

如果更改了RSS <guid>或Atom <id>,则读者和聚合器可能会将其用作信号或标志,指示应重新下载该项,因为先前保存的GUID或ID不再与其数据库或查找中的内容匹配。

更改GUID或ID不是强制进行更新的方法。这是一种说法:“我有全新的东西供你下载/提取”的方式。

在RSS中,如果将?fake=parameter添加到GUID中,可以替代地强制进行新下载。但是旧的提取项仍将保留,因为它不共享GUID。

你无法通过发布或更新日期可靠地强制使用RSS或Atom下载。最好的方法是更改项目内容,允许读者或聚合器根据需要更新,因为它们在看到已经有的项目内容发生变化时并不都会执行相同的操作。

1

正如目前的两个答案所说:没有完美的方法。更改guid会让每个人相信内容是全新的,因此可能会创建重复内容,而仅更改元素可能不总是触发完整的刷新。

使用PubSubHubbub可能会有所帮助,因为它是“fat pings”。这意味着订阅者将立即收到更新的数据,并可以将其存储在与先前版本相同的键/唯一标识下。


1
更新该条目的“已更新”字段应该是正确的。不要忘记为Feed本身也更新“已更新”字段,以及任何存在但未自动生成的Etags / last-modified HTTP头,并等待/强制读者实际执行刷新。
如果您仍然遇到某些读者的问题,您应该与Feed阅读软件作者联系,以查看是否有意义。
至于第二部分,更改ID不会让Feed Police找上门,但如果发生得足够频繁,则显示为重复的这些文章可能会使您的关注者感到恼怒,并选择忽略/放弃该Feed。
请参见thisthis的答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接