My goal for Cloudflare Markdown For Agents Monitoring
I enabled this a few weeks ago and started to log. I checked in on it this week (glad I did) and saw almost zero markdown hits except malware. I wanted to know whether any AI agents were actually requesting the markdown representation of the page, who they were, and how often - basically, is this worth keeping and optimizing, or is it a feature sitting there that nobody uses?
How I checked it even works
Instead of testing an existing source, I triangulated:
- Edge tests (curl): confirmed
Accept: text/markdownreturns markdown. - Origin logs (SSH, nginx): measured AI-bot crawl volume by user-agent.
- Origin direct test: proved the origin only ever serves HTML, so the markdown conversion is 100% Cloudflare's edge, not the server.
- Cloudflare GraphQL Analytics: pulled the real edge content-type split and per-bot behavior.
- AI Crawl Control dashboard: cross-checked the feature status and fulfillment.
- I did not touch the server config - my network admin would kill me.
The feature works - and it is tiny
A GET with Accept: text/markdown returns content-type: text/markdown with a clean markdown body (YAML front-matter plus content), roughly 95% smaller than the HTML. AI Crawl Control reported "96% of markdown requests fulfilled."
What a markdown grab actually looks like
I wanted to see if what Cloudflare was outputting actually looked worthy of the page. I looked at a VDP (a vehicle page) because that is arguably the most important type of page on a car dealer. The highlights of what it grabbed:
- Title and description with the VIN baked into the description
- Basic info tables (Body: SUV, Mileage: 12,234, 21 hwy / 15 city MPG, Black/Black, 3.0L V6, ZF 8-speed)
- Full DESCRIPTION, DETAILS (the entire feature list - nav, harman/kardon, etc.), TERMS & CONDITIONS
- Price: $24,888.00, financing CTAs, VIN XYZ / STOCK MXYZ
- "Other vehicles you may like," full dealer NAP and hours
- It grabbed all the JSON-LD, which contains all the images of the car
- All of Yoast's output
Size: 23 KB markdown vs 369 KB HTML - about 16x smaller.
Does this actually matter for SEO?
WHO KNOWS?! Maybe, and to be honest, probably. If LLMs can spend 96% less to get the exact same data, why wouldn't they? If they don't now, they will soon. Some now, some later. My opinion, not facts.
Things I fixed and learned the hard way
- Vary: Accept was missing on HTML responses. Without it, caches can serve cached HTML to a markdown-negotiating client. Fixed with a Cloudflare Response Header Transform Rule (set static Vary = Accept-Encoding, Accept). This is what broke basically everything.
- Edge caching and markdown coexistence. Added a Cache Rule (HTML GET pages, 4h Edge TTL) that excludes
Accept: text/markdownand bots, so browsers get cached HTML (HIT) while agents still get freshly-converted markdown on the same URLs. I tested this several different ways. - The testing gotcha (this cost me a full hour):
curl -I(HEAD) returnstext/htmleven when the feature works, because HEAD has no body to convert. Always test with GET. A false "it broke" panic came entirely from using-I.
How I am logging it (and why I reset)
Version one was a homegrown Cloudflare Worker (a transparent passthrough) that logged every Accept: text/markdown GET to Workers Analytics Engine and fired a 30-minute Discord digest when there were hits. Here is what that looked like:
It did the job, but it was a moving part I had to babysit, and I let the logging get tangled enough that I stopped trusting the numbers. So I tore it out and switched to Cloudflare Log Explorer instead: raw, unsampled edge requests I query directly with SQL, including edgeresponsecontenttype, which flags a genuine markdown response so I can separate content-negotiated markdown from direct .md fetches in a single query. No Worker to maintain, no digest to babysit, and the data is straight off the edge rather than a sampled dashboard. It is a lot cleaner, which is why I reset the experiment to Day 1 today and started the count over on Log Explorer.
Conclusions
The first clean week backs up what I suspected. Markdown for Agents is technically working and worth keeping - it is a forward-looking bet with basically zero downside - but the crawlers you actually care about are taking the HTML and ignoring the markdown. The only real adoption came from one obscure agent (ShapBot / Shap-User) and a one-off research fetch. That is a reason to turn it on now and be ready, not a reason to expect fireworks in your analytics tomorrow.
I am leaving Log Explorer running and will keep updating this table as the weeks add up - the interesting question is whether the big names (GPTBot, ClaudeBot, PerplexityBot) ever flip from HTML to markdown, and how long that takes. If you want to set this up on your own site in the meantime, the how-to guide is here.