AIScan data study cover: 31.5% of blogs serve no feed
AIScan data study cover: 31.5% of blogs serve no feed
AI Readiness

RSS, Atom or JSON Feed: What 340 Sites With a Blog Actually Ship

Of 340 sites with a blog, 31.5% serve no feed and 12.9% of feeds are never declared. RSS is 82% of feeds. Data from AIScan check E5, 30 Oct 2026.

30 Oct 2026 13 min read
#RSS feed#Atom feed#JSON Feed#rel=alternate#AI readiness#corpus study

This guide covers E5 · Content.

Table of contents

Of the 340 sites in our scan corpus that have a blog, news or articles section, 233 serve a feed, and 191 of those feeds are RSS. Atom is on 6 sites. JSON Feed is on 36. The bigger story is not the format: 107 of the 340 sites (31.5%) serve no feed at all, and another 30 serve one that no page declares.

The data below is first-party. It comes from check E5 in AIScan's own scan database, read on 30 October 2026, and every number is a count of distinct hosts.

Quick summary

Direct answer: In 2026, ship an RSS 2.0 feed and declare it with a <link rel="alternate"> tag in <head> of every page that links to your posts. Add Atom only if your generator emits it by default. Add JSON Feed only if your stack makes it free. The format matters far less than whether the feed exists and is declared.

QuestionAnswer from 340 sites with a periodical section
Sites serving a feed of any kind233 (68.5%)
Sites with no feed at the conventional paths107 (31.5%)
Feeds that are declared in <head>203 of 233 (87.1%)
Feeds found only by convention, never declared30 of 233 (12.9%)
RSS share of all feeds191 of 233 (82.0%)
JSON Feed share of all feeds36 of 233 (15.5%)
Atom share of all feeds6 of 233 (2.6%)
Check that grades thisE5, in the content dimension

Best for: anyone deciding which feed format to ship, and anyone who wants to know whether their own missing or undeclared feed is unusual. It is not.

If you would rather skip the reading, run the scan first: npx aiscan-cli yoursite.com, or paste your address at aiscan.site. It is free and needs no account. Look at the E5 line. The fix for a declared-feed gap is one tag, and the hub guide shows where it goes on each stack.

What E5 measures and what it does not

E5 is the content feed check. Its documentation says AIScan looks for a feed at the conventional paths and checks whether the feed is declared in <head> with <link rel="alternate">. A declared feed gets full credit. A feed found only by convention gets partial credit. The check is graded only where periodical content is expected: a blog, news or articles section, or a platform such as WordPress or Ghost. Everywhere else it reports N/A and costs the site nothing.

That N/A matters for reading the numbers. Of 795 hosts, 455 reported "no periodical content section detected". We treat those as "not detected", not as "has no blog". A site whose posts live behind a script-rendered page, or under a path the detector does not recognize, lands in that bucket. So every percentage in this article uses the 340 graded hosts as its base, and none uses 795.

The evidence strings tell us the format and how it was found. They come in five shapes:

Evidence string (hosts, URLs removed)StatusHosts
RSS feed at URL (declared via <link rel="alternate">)pass165
JSON feed at URL (declared via <link rel="alternate">)pass36
ATOM feed at URL (declared via <link rel="alternate">)pass2
RSS feed at URL (found by convention, not declared in <head>)partial26
ATOM feed at URL (found by convention, not declared in <head>)partial4
No RSS, Atom or JSON Feed found at the conventional pathsfail107
No periodical content section detectedN/A455

One thing stands out in that table. Every JSON Feed in the corpus is declared. None is found by convention only. That is not surprising once you think about it: there is no widely shared convention for where a JSON Feed lives, so a site that ships one has to point to it.

How we counted

  • Source: AIScan's production scan database, queried on 30 October 2026.
  • Rubric: one rubric version only (2026.08.2), so a check's definition does not change mid-sample.
  • Scope: site-level scans only, not single-page scans.
  • One scan per host: the latest scan for each hostname. A site scanned fifty times counts once.
  • Exclusions: aiscan.site is excluded, because it scores 100 and would flatter every average.
  • Result: 795 hosts, of which 340 were graded on E5.
  • Privacy: every figure is an aggregate. No scanned host is named here, and none will be.

A limit you should know about. This is not a random sample of the web. These are sites that someone chose to scan with AIScan, or that we scanned ourselves while building the product. Sites that care about agent readiness are probably over-represented, which would make the no-feed number look better than the real web. Treat the shares as a floor on the problem, not a measurement of all websites.

Finding 1: nearly a third of sites with a blog serve no feed

107 of 340 graded sites returned nothing at the conventional feed paths. That is 31.5%, or roughly one blog in three.

The scores line up in the direction you would expect, though a feed is only one check among many and this is a correlation, not a cause:

E5 resultHostsMean overall scoreMedian overall score
Declared feed (pass)20371.869
Found by convention (partial)3066.065.5
No feed (fail)10759.461
All graded34067.466

Sites with no feed score about 12 points below sites with a declared one. We would not claim the feed causes that gap. A site that never added a feed has usually skipped other housekeeping too: a sitemap with accurate dates, a clean robots.txt, an llms.txt. The feed is a marker of a site that is maintained.

Finding 2: the declared-versus-findable gap is 30 sites

Of the 233 feeds, 30 exist and work but no page says so. That is 12.9% of feeds.

This is the gap most worth closing, because it costs the least. A feed that exists at /feed/ or /index.xml but has no <link> tag is like a phone number that works but is not listed anywhere. Anyone who already knows the digits can reach you. Nobody finds you by looking.

Of those 30, 26 are RSS and 4 are Atom. The cause is nearly always a theme or template that dropped the tag, or a generator that writes the file but leaves the declaration to you. The fix is one line:

<link rel="alternate" type="application/rss+xml" title="Blog" href="/feed.xml">

Atom uses type="application/atom+xml". JSON Feed 1.1 uses type="application/feed+json". After you add it, scan again. E5 should move from partial to pass.

Finding 3: the format split is lopsided, and platform explains most of it

RSS is 82.0% of feeds. JSON Feed is 15.5%. Atom is 2.6%. If you expected a three-way contest, the data does not show one.

The split follows the platform more than any decision the site owner made. Where the scanner could identify the stack and the sample had at least 8 graded hosts:

PlatformGraded on E5DeclaredFound by convention onlyNo feedMean overall score
WordPress199162 (81.4%)9 (4.5%)28 (14.1%)67
Platform not identified9615 (15.6%)11 (11.5%)70 (72.9%)66
Astro1716 (94.1%)1 (5.9%)086
Next.js114 (36.4%)7 (63.6%)067

Read that table in three passes.

WordPress is the reason RSS dominates. WordPress core builds a feed and its themes declare it through wp_head(). 162 of 199 WordPress sites declare a feed with no extra work. The 28 with no feed are the interesting ones: a security plugin, a theme that removed the hook, or a custom setup that disabled feeds on purpose.

Unidentified stacks are where the missing feeds are. 70 of the 107 sites with no feed are on a stack the scanner could not name. That is 65% of all the feedless blogs. These are mostly custom-built or hosted-builder sites, where nobody ships a feed unless a developer writes one.

Astro and Next.js show two different failure modes. Every Astro site in the sample had a feed, and 16 of 17 declared it. The Next.js sites also all had a feed, but 7 of 11 left it undeclared. A framework that makes the file easy to produce does not make the <link> tag automatic. In Next.js the tag belongs in the metadata for your root layout, and it is easy to forget because nothing breaks when it is missing. Both samples are small (17 and 11), so take the direction and not the percentages.

Which format should you ship in 2026?

The answer from the data is to ship RSS 2.0 and declare it. The reasoning, using the three specifications:

FormatSpecificationContent type for the <link>Where it showed up in our dataShip it when
RSS 2.0RSS 2.0 Specificationapplication/rss+xml191 of 233 feedsAlways. It is the default of the largest platform and the one every reader and crawler handles.
Atom 1.0RFC 4287application/atom+xml6 of 233 feedsYour generator emits it by default, or you want a formal IETF standard with strict date and ID rules.
JSON Feed 1.1JSON Feed Version 1.1application/feed+json36 of 233 feedsYour stack produces it with no extra code. Do not build it by hand to chase a trend.

Three points keep this practical rather than ideological.

First, nothing in E5 rewards one format over another. A declared Atom feed and a declared RSS feed both earn full credit. The 2 declared Atom sites scored the same E5 status as the 165 declared RSS sites.

Second, you can serve more than one. A site can declare an RSS feed and a JSON Feed with two <link> tags. If your generator gives you both, declare both. If it gives you one, do not write a second.

Third, the cost of choosing wrong is low and the cost of shipping nothing is not. The 107 sites with no feed are in a worse position than any site that picked the "wrong" format. Pick RSS, declare it, validate it, and move on.

The five failures behind a failing or partial E5

Everything in the 137 non-passing results (107 fail plus 30 partial) comes down to one of these:

FailureWhat you seeFixTime
No feed generated at allFail, no feed at any conventional pathTurn on your platform's feed or add a generator15 to 60 minutes
Feed exists, no <link> tagPartial, "found by convention"Add the tag to the shared <head>5 minutes
<link> points at the wrong URLDeclared, but the target returns HTML or a 404Point href at the real feed path5 minutes
Feed refused to botsThe path answers 403 or a challenge pageAllow the feed path in your firewall rules, see the Cloudflare feed 403 fix10 minutes
Feed is malformedReader or validator rejects itValidate and fix the XML or JSON15 to 30 minutes

E5 reports the first two directly. The third, fourth and fifth are cases where the scanner may or may not see a problem, so check them yourself.

If you would rather check by hand, the fast test is:

curl -s https://yoursite.com/ | grep -io '<link[^>]*rel="alternate"[^>]*>'

That prints every declared alternate. Then request the href it shows and confirm you get XML or JSON, not your homepage. The hub guide has platform-by-platform paths for Hugo, Docusaurus, WordPress, Ghost and Squarespace.

Where a feed fits next to the rest of your discovery files

A feed is a dated changelog of your site. A sitemap lists URLs and can carry a lastmod, but a feed also carries titles, summaries and publication dates in one small file. They answer different questions, which is why llms.txt, robots.txt and the sitemap are not substitutes for each other, and a feed is a fourth file in the same family.

For the wider picture of how ready sites are across all the checks, the state of AI agent readiness in 2026 study covers the full rubric. E5 is one of the lighter-weight checks (it is graded as recommended, not required), so a fix here is a quick win rather than a rescue.

Your next action

  1. Run npx aiscan-cli yoursite.com or paste your address at aiscan.site.
  2. Find the E5 line. If it says N/A and you do have a blog, check that your posts sit under a path such as /blog/ or /news/.
  3. If it says fail, switch on your platform's feed. If it says partial, add the <link> tag.
  4. Scan again to confirm E5 reads pass.
  5. Work through the other content checks in the content dimension docs, and browse the AIScan guides for the next fix.

Frequently asked questions

Should I use RSS, Atom or JSON Feed? Use RSS 2.0 unless your generator already produces something else. In our 340-site sample, 191 of 233 feeds were RSS, and all three formats earn the same E5 credit when they are declared.

My feed works at /feed.xml but E5 says partial. Why? Because no page declares it. E5 found the file by trying conventional paths, which earns partial credit. Add a <link rel="alternate"> tag to the <head> of your pages and scan again.

My scan says E5 is N/A but I have a blog. What went wrong? The scanner did not detect a periodical section. 455 of 795 hosts hit this result. Make sure your posts are listed on a crawlable page, such as /blog/, with real links in the HTML rather than links built only by a script.

I declared a feed and E5 still fails. What should I check? Open the href from your <link> tag in a browser. If it returns your homepage, a 404 or a challenge page, the tag points at the wrong place. Fix the URL, and make sure your firewall lets the feed path through.

Does a feed help AI search or only feed readers? A feed gives any crawler a small, dated list of what you published. We have not measured a citation effect from it, so we do not claim one. The measurable part is that it is a cheap, standard freshness signal, and E5 grades it.

Do I need JSON Feed in 2026? No. 36 of 233 feeds in our sample were JSON Feed, and every one of them was declared. Add it only if your stack emits it without extra work.

Is it worth declaring two feeds, one RSS and one Atom? It is allowed and harmless, but it is rarely useful. Most readers handle RSS, so a second format adds a file to maintain without adding reach.

How do I stop my feed getting blocked by my own firewall? Check that the feed path is not covered by a bot-challenge rule or a rate limit, then request it with curl and look for a 200 with an XML or JSON content type. A 403 from your own host is a firewall problem, not a feed problem.

Sources and dates

Frequently asked questions

Should I use RSS, Atom or JSON Feed?

Use RSS 2.0 unless your generator already produces something else. In our 340-site sample, 191 of 233 feeds were RSS, and all three formats earn the same E5 credit when they are declared.

My feed works at /feed.xml but E5 says partial. Why?

Because no page declares it. E5 found the file by trying conventional paths, which earns partial credit. Add a <link rel="alternate"> tag to the <head> of your pages and scan again.

My scan says E5 is N/A but I have a blog. What went wrong?

The scanner did not detect a periodical section. 455 of 795 hosts hit this result. Make sure your posts are listed on a crawlable page, such as /blog/, with real links in the HTML rather than links built only by a script.

I declared a feed and E5 still fails. What should I check?

Open the href from your <link> tag in a browser. If it returns your homepage, a 404 or a challenge page, the tag points at the wrong place. Fix the URL, and make sure your firewall lets the feed path through.

Does a feed help AI search or only feed readers?

A feed gives any crawler a small, dated list of what you published. We have not measured a citation effect from it, so we do not claim one. The measurable part is that it is a cheap, standard freshness signal, and E5 grades it.

Do I need JSON Feed in 2026?

No. 36 of 233 feeds in our sample were JSON Feed, and every one of them was declared. Add it only if your stack emits it without extra work.

Is it worth declaring two feeds, one RSS and one Atom?

It is allowed and harmless, but it is rarely useful. Most readers handle RSS, so a second format adds a file to maintain without adding reach.

How do I stop my feed getting blocked by my own firewall?

Check that the feed path is not covered by a bot-challenge rule or a rate limit, then request it with curl and look for a 200 with an XML or JSON content type. A 403 from your own host is a firewall problem, not a feed problem.

M Asif Rahman

About the author

Entrepreneur, curious about AI

I have been building companies for a long time, and lately most of my curiosity goes to AI. AIScan is a small personal project I built on a flight from Dubai to Narita. I use it to understand how ready the web is for AI agents, and I share what the scans teach me.

Related guides

Browse every guide by check and platform