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">
- Issues an HTTP GET to the target URL.
- Reads raw response bytes without JavaScript execution.
- Scans the
<head>block for all<link rel="alternate">tags. - Filters for entries where the
typeattribute isapplication/rss+xmlorapplication/atom+xml. - Extracts
href,title, andtypefrom each matched tag. - Issues a secondary HTTP GET to the extracted
hrefURL. - 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">orapplication/atom+xmltag exists. - Whether the
hrefis 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
| Field | Type | Comment |
|---|---|---|
has_rss_feed_link | BOOLEAN | Whether an RSS or Atom feed link tag is declared in the page head |
rss_feed_href | TEXT | The href value of the RSS/Atom feed link tag |
rss_feed_type | TEXT | The MIME type declared: application/rss+xml or application/atom+xml |
rss_feed_title | TEXT | The title attribute value of the RSS feed link tag |
rss_feed_href_status | INT | HTTP status code returned when fetching the RSS feed URL |
rss_feed_content_type | TEXT | Content-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."
- Target Field:
-
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."
- Target Field:
Sources
- RSS 2.0 Specification
- Atom Syndication Format — RFC 4287
- MDN — link type="alternate"
- Google Search Central — RSS and Atom feeds
- W3C Feed Autodiscovery
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
typeattribute is set totext/xmlor another non-feed value instead ofapplication/rss+xmlorapplication/atom+xml, preventing correct autodiscovery. - Relative href without base tag: Using a relative href like
feed.xmlwithout 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
hrefresolves to a reachable URL returning HTTP 200. - The feed URL returns the correct Content-Type (
application/rss+xmlorapplication/atom+xml). - The
titleattribute 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).