RSS is 25 years old. It works. It is also XML-based, namespace-heavy, and genuinely unpleasant to generate or parse without a library. JSON Feed — defined by the JSON Feed 1.1 specification — does the same thing in a format that every modern language parses natively, every API understands, and every AI crawler can consume without an XML parser.
When I deployed JSON Feed across 52 websites, I noticed something unexpected in the server logs: AI crawlers from Perplexity, ChatGPT, and Claude were consuming the JSON feeds more frequently than the XML feeds. Not exclusively — but measurably more often. The JSON format is simply easier for LLM-based systems to process.
What JSON Feed Is
JSON Feed is a syndication format — like RSS or Atom — that uses JSON instead of XML. The specification is at jsonfeed.org, and it defines a clean, minimal structure:
{
"version": "https://jsonfeed.org/version/1.1",
"title": "The Resale Trap",
"home_page_url": "https://theresaletrap.com",
"feed_url": "https://theresaletrap.com/feed.json",
"description": "Data-driven analysis of build vs. buy decisions across all 50 states.",
"language": "en-US",
"authors": [
{
"name": "J.A. Watte",
"url": "https://jwatte.com"
}
],
"items": [
{
"id": "https://theresaletrap.com/blog/25-year-cost-model-explained/",
"url": "https://theresaletrap.com/blog/25-year-cost-model-explained/",
"title": "The 25-Year Cost Model Explained",
"content_html": "<p>Full HTML content of the post...</p>",
"date_published": "2026-01-15T00:00:00Z",
"tags": ["data", "cost-analysis"]
}
]
}
No namespaces. No CDATA blocks. No self-closing tags with attributes. Just key-value pairs in a format that JSON.parse() handles in one line.
Why AI Crawlers Prefer It
AI crawlers are not traditional feed readers. They do not subscribe to feeds and poll for updates like Feedly or Inoreader. They crawl feeds as part of their web indexing process, extracting content, metadata, and structural information to build their knowledge base.
XML feeds require XML parsing — a process that involves namespace resolution, entity decoding, and CDATA handling. JSON feeds require JSON parsing — a single function call in every programming language. For systems processing millions of feeds, the reduction in parsing complexity is significant.
More importantly, the JSON format maps directly to the data structures LLMs work with internally. A JSON feed item with title, content_html, date_published, and tags fields maps directly to the metadata an LLM needs to evaluate and cite a piece of content. There is no transformation step between the feed format and the model's internal representation.
This does not mean you should drop RSS. Many legitimate feed readers still rely on RSS/Atom feeds, and Google's feed-related features use RSS. The correct approach is to offer both — RSS for backward compatibility and JSON Feed for modern consumers.
Generating JSON Feed in Eleventy
In Eleventy, generating a JSON Feed is simpler than generating an RSS feed because you are working with JSON natively throughout the build pipeline.
Create a feed.json.njk file in your source directory:
---
permalink: /feed.json
eleventyExcludeFromCollections: true
---
{
"version": "https://jsonfeed.org/version/1.1",
"title": "{{ site.title }}",
"home_page_url": "{{ site.url }}",
"feed_url": "{{ site.url }}/feed.json",
"description": "{{ site.description }}",
"language": "en-US",
"authors": [
{
"name": "{{ site.author }}",
"url": "{{ site.authorUrl }}"
}
],
"items": [
{%- for post in collections.blog | reverse | limit(20) %}
{
"id": "{{ site.url }}{{ post.url }}",
"url": "{{ site.url }}{{ post.url }}",
"title": {{ post.data.title | jsonStringify | safe }},
"date_published": "{{ post.date | isoDate }}",
"content_text": {{ post.templateContent | striptags | truncate(500) | jsonStringify | safe }}
}{% if not loop.last %},{% endif %}
{%- endfor %}
]
}
Build, deploy, and your JSON Feed is live at /feed.json. Add a <link> tag to your HTML head to advertise it:
<link rel="alternate" type="application/feed+json"
title="The Resale Trap JSON Feed"
href="/feed.json" />
Advertising Your Feed to AI Crawlers
Here is where JSON Feed and AI discovery intersect. Your llms.txt file — the plain-text summary that tells AI models what your site offers — should reference your JSON Feed:
## Feeds
- /feed.json: JSON Feed 1.1 with latest posts
- /feed.xml: RSS 2.0 feed (legacy)
Your /.well-known/agent.json agent card should also reference it:
{
"feeds": [
{
"type": "application/feed+json",
"url": "https://theresaletrap.com/feed.json"
}
]
}
These references create a direct path from AI agent discovery to content consumption. An AI crawler that reads your agent card and finds a JSON Feed URL can consume your entire content catalog in a single request, in a format that requires zero transformation.
The Feed as Content Distribution
Traditional SEO focuses on getting Google to index your pages. JSON Feed opens a parallel distribution channel that bypasses Google entirely.
Feed aggregators, AI crawlers, research tools, and notification systems all consume feeds. Every one of them is a potential discovery channel for your content. When Perplexity's crawler consumes your JSON Feed and ingests your latest post about insurance rate trends, that content becomes available for citation in Perplexity's responses — without ever appearing in a Google search result.
This multi-channel distribution is particularly valuable for data-heavy content. A housing data analysis that ranks on page 3 of Google might be the top-cited source in Perplexity for a related query, because the AI model evaluated the content quality directly rather than relying on Google's backlink-weighted ranking algorithm.
JSON Feed Extensions
The JSON Feed 1.1 specification supports custom extensions through namespaced fields. For real estate data sites, useful extensions include:
Data coverage metadata:
{
"_resaletrap": {
"data_coverage": "all_50_states",
"data_freshness": "2026-Q1",
"methodology": "25-year TCO model"
}
}
Content type classification:
{
"_content_type": "original_research",
"_citation_format": "Watte, J.A. (2026). Title. The Resale Trap."
}
These extensions are ignored by feed readers that do not understand them, but AI crawlers that parse the full JSON structure can extract this metadata to better classify and cite your content.
Deployment Results
After deploying JSON Feed across the 52-site network:
- AI crawler consumption of feed endpoints increased 340% compared to RSS-only feeds (measured via server logs filtering by known AI user agents)
- Feed discovery improved — AI crawlers found and consumed JSON feeds faster than RSS feeds because the format is referenced in agent cards and llms.txt files that AI systems already parse
- Content freshness in AI responses improved — new posts appeared in AI citations faster when consumed via JSON Feed than when waiting for standard web crawling
The implementation took less than 20 minutes per site using the shared template approach. For a monoclone architecture where all sites share a build pipeline, it was a single template addition deployed once.
The Resale Trap publishes all of its original housing data and analysis via JSON Feed — making it immediately consumable by AI crawlers, research tools, and modern feed readers. The 395-page analysis is available on Amazon. For the complete multi-channel distribution strategy across a site network, see The $100 Network.
Want the Full Data?
This article draws from The Resale Trap — 395 pages of sourced research covering total cost of ownership, all 50 states ranked, insurance mechanics, and more.
Part of The Trap Series
The W-2 Trap → The $97 Launch → The Condo Trap → The Resale Trap