Skip to main content

Search 400 pages — tools, formats, elements, namespaces, directory, comparisons, XPath, datatypes, glossary, parse errors, schema errors, use cases, guides, blog and product.

Feeds guide

RSS guid vs link: which one identifies an item?

Keep RSS item identity stable, use isPermaLink correctly, and avoid duplicate entries when article URLs or titles change.

7 min read · Updated 2026-08-21

The short answer

Use guid as the stable identifier an aggregator can compare across fetches, and use link as the page a reader should open. They may contain the same permanent URL, but they do not have to. When guid is not a browser-retrievable permalink, set isPermaLink="false" explicitly and never recycle or rewrite the identifier for an existing item.

Give identity and navigation separate jobs

The RSS specification permits guid to be any unique string. Aggregators may use it to decide whether an item is new, while link points to the associated resource. A durable canonical URL can serve both roles, but a database or tag URI can be a better identifier when public URLs change.

Opaque stable identifier and current page
<item>
  <title>Release notes</title>
  <link>https://example.com/notes/latest</link>
  <guid isPermaLink="false">tag:example.com,2026:release-42</guid>
  <description>What changed in release 42.</description>
</item>

The attribute defaults to true. If a guid is an opaque token, URN, tag URI, or internal identifier, omitting isPermaLink can make consumers treat a non-page value as a URL. Writing false makes the intended contract portable and obvious.

  • Use true only when the guid is a permanent, retrievable URL for the item.
  • Use false for opaque identifiers and non-locating URIs.
  • Keep the same guid when correcting title, description, or link.
  • Never assign one guid to two different items.

Test updates as a feed reader would

Store yesterday's item set, fetch today's feed, and compare by guid. An edit should update the existing record; a genuinely new item should introduce a new identifier. This catches timestamp-based or URL-derived guid generation that changes during routine publishing edits.

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.