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

FactorFull-text feedSummary feed
Reader experienceEverything in one place, works offlineRequires a click to read
Ad impressionsLost unless your feed carries its own adsPreserved on the site
Search enginesDuplicate content across aggregatorsCanonical content stays on your site
Subscriber loyaltyHigher, and more likely to stayLower, and prone to unsubscribing
Reader-app compatibilityDepends on content:encoded supportUniversally supported
CostLarger feed and more bandwidthSmall
<!-- 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 &mdash; 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:encoded is 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:rights or 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.

Namespace extensions: content:encoded, dc: and Media RSS Feeds at scale: pagination, archives and pipelines

Last refreshed 2026-09-18.