Issue #131 · standard
Issue 131
What is this issue?
sidebar_label: "What is this issue?"
What is this issue?
This issue checks whether blog and content-publishing pages declare an RSS or Atom feed link tag in the HTML <head> section to enable automatic feed discovery.
A passing implementation requires:
- A
<link rel="alternate" type="application/rss+xml">tag for RSS feeds, OR - A
<link rel="alternate" type="application/atom+xml">tag for Atom feeds - The
hrefattribute must point to a valid, accessible feed URL - The feed URL must return HTTP 200 with the correct Content-Type
Example: If your blog is at https://example.com/blog, you should declare an RSS feed link tag pointing to /feed.xml so feed readers can automatically discover and subscribe to your content.
Why does it matter?
sidebar_label: "Why is this important?"
Why is this issue important?
RSS and Atom feed link tags are crucial for content distribution and audience engagement for blogs and content-publishing websites.
Impacts on SEO and content visibility:
-
Content discoverability: Feed readers (Feedly, NetNewsWire, etc.) and content aggregators rely on autodiscovery tags to automatically detect and subscribe to your content feed. Without these tags, users must manually locate and enter the feed URL.
-
Audience retention: Subscribers receive automatic updates when new content is published, driving repeat visits and engagement. Missing feed tags break this automation.
-
Content syndication: News aggregators, RSS services, and content distribution platforms use these tags to discover and syndicate your content to wider audiences.
-
Crawlability: While not a direct ranking factor, feed autodiscovery helps search engines and content bots discover your latest content updates more efficiently.
Resolving this issue improves the overall SEO health score by ensuring your content is easily discoverable and subscribable, which can lead to increased traffic, better engagement metrics, and wider content distribution.
How to fix it
sidebar_label: "How to fix"
How to fix it
Add the appropriate feed autodiscovery tag inside the page <head> section:
For RSS 2.0 feeds:
<link
rel="alternate"
type="application/rss+xml"
title="Blog Feed"
href="/feed.xml"
/>
For Atom 1.0 feeds:
<link
rel="alternate"
type="application/atom+xml"
title="Blog Feed"
href="/atom.xml"
/>
Step-by-step recommendations:
-
Generate the feed: Ensure your blog or CMS generates a valid RSS 2.0 or Atom 1.0 feed in XML format.
-
Add the link tag: Place the appropriate
<link rel="alternate">tag in the<head>section of all pages that belong to the feed's scope (typically all blog listing and individual post pages). -
Verify the href: Ensure the
hrefattribute points to the correct feed URL that returns HTTP 200 when accessed directly. -
Check Content-Type: Confirm the feed URL returns the correct Content-Type header:
application/rss+xmlfor RSS feedsapplication/atom+xmlfor Atom feeds
-
Add descriptive title: Include a human-readable
titleattribute (e.g., "Blog Feed", "News Feed") to help users identify the feed in feed readers. -
Test autodiscovery: Use feed reader software or browser extensions to verify the feed is automatically discovered when visiting your blog pages.
Examples
sidebar_label: "Examples"
Examples
Example 1: Correct RSS feed implementation
Scenario: A blog properly declares an RSS feed link tag.
Passes because:
- A
<link rel="alternate" type="application/rss+xml">tag is present - The
hrefattribute points to a valid feed URL - The feed URL returns HTTP 200 with correct Content-Type
<head>
<title>My Blog</title>
<link
rel="alternate"
type="application/rss+xml"
title="Blog Feed"
href="/feed.xml"
/>
</head>
Example 2: Correct Atom feed implementation
Scenario: A blog uses Atom format instead of RSS.
Passes because:
- A
<link rel="alternate" type="application/atom+xml">tag is present - The
hrefattribute points to a valid feed URL - The feed URL returns HTTP 200 with correct Content-Type
<head>
<title>My Blog</title>
<link
rel="alternate"
type="application/atom+xml"
title="Blog Feed"
href="/atom.xml"
/>
</head>
Example 3: Missing feed tag
Scenario: A blog has no feed autodiscovery tag.
Fails because:
- No
<link rel="alternate">tag is present for RSS or Atom feeds - Feed readers cannot automatically discover the blog's feed
- Users must manually subscribe to the feed
<head>
<title>My Blog</title>
</head>
Corrected version:
<head>
<title>My Blog</title>
<link
rel="alternate"
type="application/rss+xml"
title="Blog Feed"
href="/feed.xml"
/>
</head>
How PixyScan detects this
sidebar_label: "How PixyScan detects this"
How PixyScan detects this
PixyScan uses a systematic detection process to identify RSS and Atom feed link tag implementation:
-
Fetch the page: PixyScan issues an HTTP GET request to the target URL and reads the raw HTML response without executing JavaScript.
-
Scan for alternate link tags: The crawler scans the
<head>block for all<link rel="alternate">tags. -
Filter by feed type: PixyScan filters for entries where the
typeattribute isapplication/rss+xmlorapplication/atom+xml. -
Extract feed information: For each matched tag, the crawler extracts the
href,title, andtypeattributes. -
Validate feed presence: The crawler checks whether any valid RSS or Atom feed link tag exists in the page head.
-
Test feed URL accessibility: PixyScan issues a secondary HTTP GET request to the extracted
hrefURL and records the HTTP status code and Content-Type response header. -
Determine pass/fail: The issue passes if a valid RSS or Atom feed link tag is present and the feed URL returns HTTP 200 with a feed-compatible Content-Type. The issue fails if no feed tag is detected or if the feed URL returns a non-2xx status code.