Getting Recommended

Markdown Pages for AI: Do AI Crawlers Read the .md Version of Your Page?

I watched Claude open the .md version of a web page. Here is what a Markdown page is, which AI bots fetch it, what the logs show, and how to set it up.

Cover for Markdown For AI showing a cluttered web page next to its clean .md version
On this page

Quick answer

Some AI crawlers do fetch the .md (Markdown) version of a page when one exists. In one site's logs, GPTBot sent 35% of its requests to .md pages and OAI-SearchBot 23%. No bot used the Accept: text/markdown header. No study I found shows Markdown raises how often AI recommends you, so treat it as a cheap experiment and measure it with your AI Pick Rate.

While building Radar, my AI visibility tool, I asked Claude to research how other tools define AI citation rate.

Its web search listed geotoolbox.ai twice: once as a Markdown file, once as the normal blog post. Claude opened the Markdown one to read the definition.

Claude reads the .md markdown file of pages

A .md address is a plain-text copy of a web page. It was sitting in the search results as its own entry, and I clicked through to confirm it.

That left me with three questions. What is that file? Do AI crawlers really read it? Does my own site have one?

In this guide, you'll understand what a Markdown page is, what the logs show AI bots doing with it, whether it helps you get recommended, how to set it up with code, and what I already run on Exibran.com.

Key takeaways

  • A Markdown page is a plain-text copy of a web page, usually at the same address with .md on the end.
  • A .md copy can appear in search results as its own entry. I watched Claude find one and open it to read a definition.
  • In one site's logs, GPTBot and OAI-SearchBot fetched .md pages often. ChatGPT-User and PerplexityBot almost never did, and no bot sent the Accept: text/markdown header.
  • llms.txt is read far less than .md pages. Ahrefs found that 97% of the llms.txt files in a 137,210-domain study got zero requests in a month.
  • Being fetched is not being recommended. Google says its Search does not use Markdown or llms.txt files, and no study shows a lift in AI citations.
  • Set it up in an hour or less, keep it generated from the same source as the page, and check your logs after 30 days.

What Is a Markdown (.md) Page for AI Crawlers?

A Markdown page is the content of a web page as clean text. It has the title, headings, paragraphs, tables and links, and none of the menus, scripts or pop-ups around them.

There are three ways to offer it, and people often mix them up:

MethodWhat It IsExample
.md URLA separate Markdown copy at its own addressyoursite.com/blog/page.md
Discovery tagA line in the page's HTML head that points to that copy<link rel="alternate" type="text/markdown">
Accept headerThe same address returns Markdown when the visitor asks for itAccept: text/markdown

Keep them apart. A bot can fetch /page.md without ever sending an Accept header, and the logs below show that is what happens.

What Did I Actually See Claude Do?

I saw two things, and neither was a crawl.

The search result. The title of the .md entry began with a #, which is how a Markdown heading looks as raw text. So the search had found the Markdown copy and listed it as its own result, beside the normal page.

When I opened it, it appeared this way:

An example of an .md file page

The fetch. A crawler is a bot that visits sites on its own to collect pages. This was one page, opened because I had asked Claude a question. It is the same kind of request as ChatGPT-User or Claude-User, the bots that fetch a page when a person asks.

Claude read the quattr.com page as a normal web page. Not every page has a Markdown copy.

I do not know why Claude chose the Markdown copy over the normal post. Clean text with no menus or pop-ups is a likely reason, but I cannot confirm it.

This is one example, not a study. It does show that a .md page can be found through search, not only by bots following links.

Do AI Crawlers Really Fetch .md Pages?

Yes, some do, on sites that have them. The best numbers I found come from Dries Buytaert's server logs (opens in a new tab).

He added Markdown copies to his site and counted 58,279 AI crawler requests over a month.

Bar chart of the share of each AI bot's requests that went to .md pages: GPTBot 34.8%, OAI-SearchBot 22.7%, Amazonbot 10.9%, Claude-User 7.4%, Meta AI 5.4%, ClaudeBot 2.1%, PerplexityBot 0.2%, ChatGPT-User 0.1%, Bytespider 0%, CCBot 0%
Share of each bot's requests that went to a Markdown page. One website, one month.

What the logs show:

  • Training and search bots asked for .md pages. About 8.5% of all requests were for Markdown files. GPTBot and OAI-SearchBot led.
  • Bots that fetch for a user were mixed. ChatGPT-User sent 0.1% of its requests to .md pages. Claude-User sent 7.4%, but it made only 94 requests in total, so read that number with care.
  • No bot used the Accept header. Zero of the 58,279 requests asked for text/markdown on the normal address. Bots found the Markdown through the .md address and the discovery link.
  • Traffic did not drop. Bots fetched both versions, so crawler traffic rose about 7%.
  • Fetching is not citing. He measured 1,241 pages fetched by AI crawlers for every citation sent back to his site.

This is one website, not a measure of the internet. Google's John Mueller reported something different on his own test sites, where only SEO tools asked for Markdown, according to Search Engine Journal (opens in a new tab). Sites differ, so your own logs are the real test.

What About llms.txt, Does It Do More?

No. It does less. llms.txt is one index file at the root of your site, and it is read far less often than individual .md pages.

  • Ahrefs checked 137,210 domains. About 28% had an llms.txt file, and 97% of those got zero requests in the month. AI search bots made only about 1% of the requests the files did get. See the Ahrefs study (opens in a new tab).
  • Dries Buytaert got 52 requests for his llms.txt in a month. All came from SEO audit tools, none from AI systems.

If you only have time for one, the logs favor .md pages over llms.txt. Neither is proven to help you get recommended.

Will Markdown Pages Raise Your AI Pick Rate?

There is no evidence of it. The studies count requests. They do not measure whether a brand was recommended afterward.

Google says its Search does not use special files, including Markdown and llms.txt, and that they neither help nor harm your rankings. Read that in Google's guide to generative AI features (opens in a new tab). I found no public promise from other AI apps either.

A bot fetching your page and an AI recommending you are different events. Recommending depends on what AI reads about you across the web.

In my 405-answer test, AI cited community threads, video, and review and comparison sites beside the tools' own websites.

Even when an answer cited a tool's own site, AI picked that tool only 13% to 34% of the time. The full numbers are in my guide to AI Pick Rate.

So treat Markdown pages as delivery, not as a fix. If AI picks a competitor over you, a .md file will not change that.

What Are the Risks of Serving Markdown Pages?

Google and Bing staff have both pushed back on separate Markdown pages for AI, mostly over crawl load and duplicate content. The concerns are real, and each has a fix:

ConcernWhat Can HappenWhat to Do
Duplicate contentA search engine finds the .md file and lists it as a separate page. I saw this in Claude's search results. Some site owners report .md files showing as crawled but not indexedLink back to the original page inside the file, and send a noindex header on .md files
CloakingServing bots something different from what people see. Google defines cloaking as doing this to manipulate rankings (opens in a new tab)Generate the .md copy from the same source as the page, so both always say the same thing
Crawl loadBots fetch both versions, so total requests can go upCache the files. It only matters if your server is already under strain
Stale copiesThe .md file keeps old pricing after you update the pageRebuild the .md file every time the page changes. Never edit it by hand
Cache mix-upsWith the Accept header, a cache serves Markdown to a browser, or the reverseSend Vary: Accept, and test both versions after each change

How Do You Set Up Markdown Pages for AI Crawlers?

Start with the first two steps. They work on any site and are what the logs show bots using.

How Do You Add a .md URL for Each Page?

Generate the Markdown from the same source as your page, publish it at the page address plus .md, and return the right content type.

For example, my site runs on Astro, and one file creates the .md copy of every post:

// src/pages/blog/[slug].md.ts
export async function GET({ props }) {
  const markdown = await makeMarkdown(props.post); // same source as the page
  return new Response(markdown, {
    headers: { 'Content-Type': 'text/markdown; charset=utf-8' },
  });
}

Put the title, a one-line summary, the author, the dates and the original page address at the top of each file. Without the address, a bot that cites the .md file has nothing to link back to.

On WordPress, a plugin does this for you. Serve Markdown (opens in a new tab) and Markdown for Agents and Statistics (opens in a new tab) both add .md addresses.

How Do You Tell Bots Where the .md Page Is?

Add this line to the <head> of the normal page:

<link rel="alternate"
      type="text/markdown"
      href="https://yoursite.com/blog/page.md" />

The tag only points to the file. You still have to create the file.

How Do You Serve Markdown From the Same URL?

This is the Accept header method. The normal address returns Markdown when the request asks for it. It is optional. No AI crawler used it in the logs above, though coding agents such as Claude Code do.

On Cloudflare: turn on Markdown for Agents in the AI Crawl Control section of your dashboard.

Enable Markdown for Agents in Cloudflare

Cloudflare converts your page to Markdown for any request that asks for it, and you do not create any files. Cloudflare lists it for paid plans, so check yours first. See the Cloudflare documentation (opens in a new tab).

On Next.js: add a rewrite that matches the Accept header, then a route that returns Markdown. This follows the pattern in Vercel's guide (opens in a new tab):

// next.config.js
module.exports = {
  async rewrites() {
    return {
      beforeFiles: [
        {
          source: '/blog/:slug*',
          has: [
            { type: 'header', key: 'accept', value: '(.*)text/markdown(.*)' },
          ],
          destination: '/blog/md/:slug*',
        },
      ],
    };
  },
};

On Astro: a static build cannot read request headers. You can publish .md files and the discovery tag as static files. For the Accept header, you need request-time code, such as a Cloudflare Worker.

With this method, send these headers on the Markdown response:

Content-Type: text/markdown; charset=utf-8
Vary: Accept

How Do You Stop Search Engines Treating the .md File as a Duplicate?

You can send two headers on every .md file. A noindex header asks search engines to keep the file out of their results. A canonical Link header says the normal page is the original.

On Cloudflare, add a _headers file to your site's public folder. This is what I use:

/blog/*.md
  Content-Type: text/markdown; charset=utf-8
  X-Robots-Tag: noindex
  Link: <https://yoursite.com/blog/:splat>; rel="canonical"

The :splat part fills in the page name, so one rule covers every post. On other hosts, find where your host sets response headers and send the same two.

Noindex is an instruction for search engines. I have not found out whether AI bots follow it, so I treat it as a search-results fix only.

How Do You Test That It Works?

Run these in a terminal and swap in your own address:

# 1. The .md address returns Markdown with the duplicate-content headers
curl -I https://yoursite.com/blog/page.md

# 2. The normal page still returns HTML
curl -I https://yoursite.com/blog/page

# 3. The discovery tag is in the page head
curl -s https://yoursite.com/blog/page | grep -i 'text/markdown'

# 4. Same-URL Markdown works (only if you set it up)
curl -I -H "Accept: text/markdown" https://yoursite.com/blog/page

The first command should show 200, text/markdown, x-robots-tag: noindex and a link header with rel="canonical". If it shows text/html or 404, your route is falling back to the normal page.

How Do You Check Whether AI Bots Fetch Your .md Pages?

Only your own logs can tell you. Do this after 30 days:

  1. Open your access logs. Use your host's log view, or the analytics in your CDN.
  2. Filter for addresses ending in .md.
  3. Group the requests by user agent. Look for GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-User, and PerplexityBot.
  4. Compare with the same bots' requests to the normal pages. That gives you each bot's .md share, like the chart above.
  5. Treat user agents as claims. Anyone can fake a name. Where a bot operator publishes its IP ranges, check against them.

Then measure your AI Pick Rate before you publish the .md pages, and again six weeks later with the same questions. That is the only way to know whether it moved anything for you.

Does Exibran Have Markdown Pages Too?

Yes. Every post on Exibran.com has one.

  • A .md copy of every post. Add .md to any article address. This one is at exibran.com/blog/markdown-pages-for-ai.md. Tables stay as tables, and images are described in words.
  • A discovery tag. Each page head points to its copy, as shown above.
  • A link back. Every file starts with the original page address, and sends a canonical link and a noindex header.
  • A site index. /llms.txt lists the pages, and /llms-full.txt holds the full text.

I do not use the Accept header method, because the logs show no AI crawler sending it.

I also do not claim this makes AI recommend me. It costs almost nothing, so I treat it as an experiment and judge it by results.

What Should You Do First?

Do the cheap thing, then spend your time where AI picks a winner. Match your problem to the fix:

What You SeeDo This First
AI cannot or does not read your pagesCheck that bots are allowed in, then add .md pages. The steps are in my AI Pick Rate guide
AI reads your pages but picks a competitorFind the review sites, directories and comparison pages it cites for your category, and get listed there
AI mentions you with a warning attachedTrace the objection to its source and fix it there
You do not know which of these is trueMeasure your AI Pick Rate first

That last row is where I start with clients. My service covers the real answers AI gives your buyers, a gap report of the sources AI trusts, directory listings written and live, and comparison, alternatives and use-case pages with structured data.

After 60 days, I run the same questions again so you can see what changed. See the services page.

Let me ask you: Do you have an .md file on your website? Have you ever seen an AI search engine serve one?

Frequently asked questions

Do AI crawlers read .md pages?

Some do. In one site's logs, GPTBot sent about 35% of its requests to .md pages and OAI-SearchBot about 23%, while ChatGPT-User and PerplexityBot sent almost none. It is one site over one month, so check your own logs.

Is llms.txt the same as a Markdown page?

No. llms.txt is one index file at the root of your site. A Markdown page is the full content of one page in plain text. Logs show bots fetch .md pages far more often than llms.txt.

Do I need Accept text/markdown, or is a .md URL enough?

A .md URL is enough to start. In the log study I found, no AI crawler sent the Accept: text/markdown header, and the .md pages were found through the .md address and a discovery link in the page head. Coding agents such as Claude Code do use the header.

Is serving Markdown to AI bots cloaking?

Not if both versions say the same thing. Google defines cloaking as showing different content to search engines and people in order to manipulate rankings. Generate the .md copy from the same source as the page so the two never disagree.

Will .md pages cause duplicate content problems?

They can. Some site owners report .md pages showing as crawled but not indexed in Google Search Console. Link back to the original page inside the .md file, and where your host allows it, send a noindex header on .md files.

Will serving Markdown get me recommended by ChatGPT?

There is no evidence of that yet. The studies measure which bots request the files, not whether a brand is recommended. Measure your AI Pick Rate before and after so you know whether it changed anything for you.

Sources

  1. Markdown, llms.txt and AI crawlers, Dries Buytaert
  2. We Analyzed 137K Sites: 97% of llms.txt Files Never Get Read, Ahrefs
  3. Guide to optimizing for generative AI features in Google Search, Google Search Central
  4. Markdown for Agents, Cloudflare
  5. Google's Mueller shares their experience with Markdown for AI SEO, Search Engine Journal
  6. Google and Bing don't recommend separate Markdown pages for LLMs, Search Engine Land
  7. Making agent-friendly pages with content negotiation, Vercel

Published

Add Exibran as a preferred source on Google

Free · Takes 1 minute

Check your AI visibility

See if AI recommends you, and who it picks instead.

Results by email within 48 hours.

Contact

Send me a message

Questions, work, partnerships or feedback on an article. I read every message and reply within two working days.

Prefer email? Write to chat@exibran.com

Policies