Full-text versus summary feeds
Full content earns reader loyalty and costs you page views. The right answer depends on how you are funded, not on a technical preference.
The trade-off, stated plainly
| Factor | Full-text feed | Summary feed |
|---|---|---|
| Reader experience | Everything in one place, works offline | Requires a click to read |
| Ad impressions | Lost unless your feed carries its own ads | Preserved on the site |
| Search engines | Duplicate content across aggregators | Canonical content stays on your site |
| Subscriber loyalty | Higher, and more likely to stay | Lower, and prone to unsubscribing |
| Reader-app compatibility | Depends on content:encoded support | Universally supported |
| Cost | Larger feed and more bandwidth | Small |
<!-- A summary feed that still gives a real teaser -->
<item>
<title>Streaming transforms</title>
<link>https://example.com/posts/streaming</link>
<guid isPermaLink="false">post-streaming</guid>
<description>How the transformer reduces memory by an order of magnitude — and
where the approach stops working.</description>
<!-- no content:encoded -->
</item>
<!-- A full-text feed that keeps its own monetisation and attribution -->
<item>
<title>Streaming transforms</title>
<link>https://example.com/posts/streaming</link>
<guid isPermaLink="false">post-streaming</guid>
<description>How the transformer reduces memory by an order of magnitude.</description>
<content:encoded><![CDATA[
<p>How the transformer reduces memory by an order of magnitude.</p>
<p><em>This article first appeared at
<a href="https://example.com/posts/streaming">example.com</a>.</em></p>
]]></content:encoded>
</item>- If you decide on full text, include an attribution line with a link. It costs one sentence and is what most republishing licences require.
- Strip your own analytics and relative URLs. A relative image path or a tracking pixel breaks in every reader.
- Keep the site's canonical URL on the item, so an aggregator that republishes can link back to the original.
- Never mix: a feed that claims full content but truncates mid-sentence with an ellipsis is worse received than an honest summary.
Ads, paywalls and syndication
- Inserting ads into
content:encodedis legitimate but keep them as markup, not as tracking images, and make them clearly labelled. - For paywalled sites, publish the summary without restriction and make the full feed available to authenticated subscribers as a private feed URL.
- A private feed URL is a secret, so treat it as a credential: rotate it, never log it, and never email a link that contains it in the query string.
- Use
dc:rightsor a clear sentence in the description to state what republication is allowed; silence is read as permission by some aggregators. - An archive feed with the full history plus a recent feed for new items is a common publisher pattern, and readers handle it better than a hundred-item feed that never changes.
from flask import Flask, request, abort, Response
app = Flask(__name__)
@app.get("/feed/<token>.xml")
def subscriber_feed(token: str):
subscriber = lookup_by_token(token)
if subscriber is None or subscriber.expired:
abort(404) # 404, not 403: do not confirm the token exists
items = build_items(full_content=True, for_subscriber=subscriber.id)
resp = Response(render_rss(items), mimetype="application/rss+xml")
resp.headers["Cache-Control"] = "private, no-store"
return resp💡
Whichever you choose, make the decision explicit in the feed's
description or a dc:rights element. Readers and aggregators behave much better when the licence is stated than when they have to guess.FAQ
Does a full-text feed hurt SEO?
Only if the aggregators outrank you and do not link back. Since the item always carries your canonical URL and the attribution, the common outcome is more referral traffic, not less.
How many items should a feed contain?
Between ten and fifty for a news feed. A feed of a hundred items that never changes wastes bandwidth on every poll and slows readers down.
Related
Namespace extensions: content:encoded, dc: and Media RSS Feeds at scale: pagination, archives and pipelines
Last refreshed 2026-09-18.