agentic‑readiness docs
/
Build one › Run a scan ›

DocsContentMarkdown twin

Markdown twin

A clean low-token markdown version of the page for agents.

adoption Early productiontrend ▲ risingchecked on every pagechecks 2verified 2026-08-12
Set up Markdown twin on your site How to answer `Accept: text/markdown` with a Markdown version of a page, and keep HTML the default.
Free Serve a Markdown twin

Why an agent cares

The same content in markdown costs an agent a fraction of the tokens and none of the layout noise. A twin that 404s, redirects to the HTML, or serves the wrong media type is worse than none, because the agent has already paid for the round trip.

Adoption

Early production. Several independent organisations run it in production, though it is still niche on the open web.

Direction of travel: ▲ rising, as at .

Docs platforms serve markdown by default and Cloudflare shipped edge HTML-to-markdown conversion, but only 3 of 7 major coding agents actually negotiate for it (Checkly, Feb 2026).

AdopterDepthEvidence
Mintlifydefault-onmintlify.com
Cloudflare (Markdown for Agents)productionexplainx.ai
Vercel (blog and changelog variants)productionvercel.com
GitBook, HackMDproductionsynscribe.com

What we check

Absence is never a finding. Every check below runs only once markdownTwinPresent is true, so a site that has not adopted this is not assessed on it and appears in no report. 2 of these 2 can fail it. In a Lumar crawl these land on the page's own row.
CheckSeverityRaisesOn whose authority
markdownTwinWrongTypemediumusabilityspecification.website / Dualmark profile
markdownTwinEmptyHrefmediumusabilityspecification.website / Dualmark profile

Examples

Both of these are fixtures the test suite runs through the real collector, not snippets written for a document: the first is a shape we score as valid, the second is one we flag.

correcthtmltest/e2e/test-pages/content/correct.html
<!-- markdownTwinPresent + correct: alternate link, text/markdown, distinct .md URL.
         (The .md body itself is a server fetch — validated by unit tests, not here.) -->
    <link rel="alternate" type="text/markdown" href="https://example.com/content/correct.md" />
present but wronghtmltest/e2e/test-pages/content/issues.html
<!-- markdownTwinPresent: yes (Markdown alternates are advertised). Each link below is present but
         wrong, triggering one defect.
         markdownTwinWrongType: a .md alternate declared as text/html, so agents won't recognise it. -->
    <link rel="alternate" type="text/html" href="https://example.com/content/issues.md" />

<!-- markdownTwinEmptyHref: a text/markdown alternate with an empty href declares no twin.
         (A self-referential href is NOT flagged here — it can be a valid content-negotiation twin; that
         determination is a fetch-phase concern, see SOURCES.md.) -->
    <link rel="alternate" type="text/markdown" href="" />

Specifications

Last re-read against the published documents: .