Skip to main content

RSS Feed Link Tag for Blog Pages

Issue No: 131

Category: Link Rel Tags Issue type: Warning Priority: STANDARD

Description

Blog and content-publishing pages should declare an RSS or Atom feed link tag in the <head> so that feed readers, content aggregators, and crawlers can automatically discover the subscription feed without user intervention.

How do we capture it

Inside HTML <head>:

<!-- RSS 2.0 -->
<link rel="alternate"
type="application/rss+xml"
title="Site Blog RSS Feed"
href="/feed.xml">

<!-- Atom 1.0 (also valid) -->
<link rel="alternate"
type="application/atom+xml"
title="Site Blog Atom Feed"
href="/atom.xml">
  1. Issues an HTTP GET to the target URL.
  2. Reads raw response bytes without JavaScript execution.
  3. Scans the <head> block for all <link rel="alternate"> tags.
  4. Filters for entries where the type attribute is application/rss+xml or application/atom+xml.
  5. Extracts href, title, and type from each matched tag.
  6. Issues a secondary HTTP GET to the extracted href URL.
  7. Records the HTTP status code and Content-Type of the feed URL response.

The crawler validates:

  • Whether any <link rel="alternate" type="application/rss+xml"> or application/atom+xml tag exists.
  • Whether the href is a valid non-empty absolute or root-relative URL.
  • Whether the feed URL returns HTTP 200 with a feed-compatible Content-Type.

What to store

FieldTypeComment
has_rss_feed_linkBOOLEANWhether an RSS or Atom feed link tag is declared in the page head
rss_feed_hrefTEXTThe href value of the RSS/Atom feed link tag
rss_feed_typeTEXTThe MIME type declared: application/rss+xml or application/atom+xml
rss_feed_titleTEXTThe title attribute value of the RSS feed link tag
rss_feed_href_statusINTHTTP status code returned when fetching the RSS feed URL
rss_feed_content_typeTEXTContent-Type response header returned by the feed URL

Condition for trigger

The following trigger rules evaluate RSS/Atom feed link tag presence and reachability.

  • Trigger Rule 1: Missing RSS Feed Link Tag

    • Target Field: has_rss_feed_link
    • Evaluation Logic: = FALSE
    • Severity: SUGGESTION
    • Diagnostic Message: "No RSS or Atom feed link tag was detected. Feed readers and content aggregators cannot automatically discover the subscription feed for this page."
  • Trigger Rule 2: RSS Feed URL Not Reachable

    • Target Field: rss_feed_href_status
    • Evaluation Logic: NOT IN (200, 201, 204)
    • Severity: WARNING
    • Diagnostic Message: "The declared RSS feed URL does not return a valid HTTP response. Feed readers will fail to subscribe to this feed."

Sources

Long description

RSS (Really Simple Syndication) and Atom are XML-based feed formats that allow readers and aggregators to subscribe to a content stream and receive updates automatically. Declaring an RSS or Atom feed link tag in the HTML <head> enables autodiscovery — the mechanism by which feed readers detect a site's feed without requiring the user to manually enter a feed URL.

Standard RSS autodiscovery tag:

<link rel="alternate"
type="application/rss+xml"
title="My Blog Feed"
href="https://site.com/feed.xml">

Atom autodiscovery tag:

<link rel="alternate"
type="application/atom+xml"
title="My Blog Atom Feed"
href="https://site.com/atom.xml">

Without an RSS feed link tag:

  • Feed readers (Feedly, NetNewsWire, etc.) cannot auto-detect the feed.
  • Content aggregation services cannot subscribe automatically.
  • Users must manually locate and enter the feed URL.
  • Headless CMS or blog platforms that auto-generate feeds still need the autodiscovery tag.

Common failure scenarios:

  • Feed tag missing despite feed existing: The site generates an RSS feed but never declares the autodiscovery tag in the HTML head. Feed readers cannot discover it.
  • Feed URL returns 404: The tag is present but the linked feed endpoint is broken or moved, causing the HTTP fetch to return a non-2xx status code.
  • Wrong MIME type declared: The type attribute is set to text/xml or another non-feed value instead of application/rss+xml or application/atom+xml, preventing correct autodiscovery.
  • Relative href without base tag: Using a relative href like feed.xml without a <base> tag may cause discovery failures in some feed readers.

How to Fix

Add the RSS or Atom autodiscovery tag inside the page <head>:

<!-- For RSS 2.0 -->
<link rel="alternate" type="application/rss+xml" title="Blog Feed" href="/feed.xml">

<!-- Or for Atom 1.0 -->
<link rel="alternate" type="application/atom+xml" title="Blog Feed" href="/atom.xml">

Ensure:

  • The href resolves to a reachable URL returning HTTP 200.
  • The feed URL returns the correct Content-Type (application/rss+xml or application/atom+xml).
  • The title attribute is human-readable and descriptive.
  • The tag is present on all pages that belong to the feed's scope (e.g., all blog listing pages).