Syndicator Blog

RSL

Really Simple Licensing Puts AI Usage Terms Inside RSS Feeds

Really Simple Licensing, or RSL, borrows its name from RSS on purpose. It was launched in September 2025 by the RSL Collective, with Reddit, Yahoo and Medium among the early backers, and the 1.0 specification came out on December 10, 2025. Cloudflare, Akamai and Fastly endorsed it. Over 1,500 media organizations signed on.

The idea is simple. robots.txt can only say yes or no to a crawler. RSL lets a publisher say yes, on these terms. The terms are an XML document that can allow or prohibit uses like AI training, require attribution, or ask for payment.

Four ways to attach a license

The RSL 1.0 spec gives publishers four places to point at a license, and says they are equivalent. A client is supposed to check all of them.

A line in robots.txt:

License: https://example.com/license.xml

An HTTP header, which works for files that aren't HTML, like images or datasets:

Link: <https://example.com/license.xml>; rel="license"; type="application/rsl+xml"

A link tag in the page head:

<link rel="license" type="application/rsl+xml" href="https://example.com/license.xml">

And the one that matters for this site: inside an RSS feed.

RSL as an RSS module

RSL works as an RSS namespace, the same way Media RSS or the content module do. You declare it on the root element:

<rss version="2.0" xmlns:rsl="https://rslstandard.org/rsl">

Then each item can carry its own license block. The example in the spec licenses a dataset for free use:

<rsl:content url="/public/53/iris.zip">
  <rsl:license>
    <rsl:payment type="free"/>
  </rsl:license>
</rsl:content>

The url must be on the same origin as the feed, so a feed can't set terms for somebody else's content. A client that reads the feed is meant to read the license for each item and follow it before it downloads or processes the asset.

The smallest useful license, also from the spec's examples, just says no to AI use for a whole site:

<rsl xmlns="https://rslstandard.org/rsl">
  <content url="/">
    <license>
      <prohibits type="usage">ai-all</prohibits>
    </license>
  </content>
</rsl>

Why put it in the feed

Feeds are how content leaves a site. That's their whole point. An article published on one domain shows up in readers, aggregators, newsletters, partner sites and, these days, AI pipelines. A rule in robots.txt only covers the origin. Once a copy sits on another server, that server's robots.txt decides who can crawl it.

That leak is real, and it's become part of the licensing argument. People working on bot blocking have pointed out in recent months that publishers who lock down their own site can still be scraped through syndicated copies elsewhere. Terms that travel with the item in the feed are one answer. An aggregator that respects RSL can carry the terms forward. One that ignores them at least can't claim it didn't know.

The catch

Endorsement isn't enforcement. When 1.0 shipped, none of the big AI labs had said publicly that their crawlers would read or honour RSL. The CDNs can enforce it at their edge for sites behind them, by blocking crawlers that haven't agreed to the terms. For a small site on a plain host, RSL is a statement, not a lock.

It's still a cheap statement to make. If you already publish RSS, adding a namespace and a license block is an afternoon's template work, and it puts your terms on record where machines can read them.

For aggregators like Syndicator, the honest position is to show headlines and short excerpts that link back to the original, which is what it does today. Passing RSL terms through to its own output feed would be a sensible next step.