RSS 2.0
<guid>
An item's permanent identifier. Readers use it to tell a new item from one already shown — and a feed that changes it republishes everything.
A guid is any string that is unique and stable for that item. It is commonly a URL, and the isPermaLink attribute says whether it should be treated as one: the default is true, so a guid that is not a URL must set isPermaLink="false" explicitly.
Two failure modes matter. Reusing a guid across items collapses them into one for most readers; regenerating guids — because they contain a timestamp, or a build hash — makes every item look new, and subscribers see the whole feed again.
What our validator does
Identifiers are collected per item, falling back to <link>; duplicates are an error and items with neither are a warning.
Broken and fixed
Both documents below are well-formed XML — that is the point of this corpus — and both are run through the validator on every test run. The verdicts here are what it returned, not what we expect it to.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Example</title>
<link>https://example.com/</link>
<description>Notes from the example farm.</description>
<item><title>Hen lays egg</title><guid>https://example.com/egg</guid></item>
<item><title>Hen lays another</title><guid>https://example.com/egg</guid></item>
</channel>
</rss>1 duplicate item identifier — two items claiming the same <guid> collapse into one for most readers.<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Example</title>
<link>https://example.com/</link>
<description>Notes from the example farm.</description>
<atom:link href="https://example.com/feed.xml" rel="self" type="application/rss+xml"/>
<item>
<title>Hen lays egg</title>
<link>https://example.com/egg</link>
<guid>https://example.com/egg</guid>
<pubDate>Mon, 10 Aug 2026 09:00:00 GMT</pubDate>
</item>
</channel>
</rss>Where it reaches
- Datatypesxs:ID, xs:IDREF and xs:IDREFSThe XSD notion of a document-unique identifier, and how it differs from this one.
- ToolsRSS & Atom feed validatorReports duplicate identifiers across the whole feed.
- ToolsXML diffShows which items actually changed between two builds of a feed.
Related elements
- <item>One entry in the feed. Every child is optional except that it must have a title or a description.
- <link>The URL of the site, or of an item — and, in RSS, an element whose text content is the URL rather than an href attribute.
- <id>A permanent, universally unique IRI for the feed or an entry. Required on both, and the element Atom is strictest about.
Get started
Bring order to the XML your team can't afford to ignore.
Create a free account and get a private workspace to search, validate, diff, and monitor your XML feeds, sitemaps, schemas, and vendor integrations.