Markdown Mirror – Definition (llms.txt v2)
A Markdown mirror is a clean Markdown copy of a web page, served at the same URL with .md added. It gives AI agents the page’s text and links without HTML, scripts, cookie banners or navigation. The llms.txt v2 proposal recommends it, together with two link relations that tell agents where the mirror and the site’s llms.txt are.
The same page, without the website around it – at a URL an agent can guess, and linked from the page so it does not have to.
What the llms.txt v2 proposal asks for
The llms.txt proposal, revised on 10 August 2026, adds three recommendations:
| Recommendation | In practice |
|---|---|
| Pages that agents might need have a clean Markdown version at the same URL | Append .md, or replace the extension. A URL without a file name gets index.md or index.html.md. |
A page points to its mirror with rel="alternate" type="text/markdown", and to the llms.txt that covers it with rel="describedby" | As a <link> element in the head, or as an HTTP Link: header. The Markdown file itself can only use the header. |
| Links in llms.txt should lead to LLM-friendly content | llms.txt links point to the mirrors, not to the HTML pages. |
URL forms
| HTML page | Mirror |
|---|---|
/blue-shirt.html | /blue-shirt.html.md (append) or /blue-shirt.md (replace) |
/docs/setup/ | /docs/setup/index.md or /docs/setup/index.html.md |
/ | /index.md |
Serving both forms costs little. A client that guesses the other form then gets the page instead of a 404.
What a correct setup looks like
<!-- on the HTML page -->
<link rel="alternate" type="text/markdown" href="https://shop.example/blue-shirt.html.md">
<link rel="describedby" href="https://shop.example/llms.txt">
# response for the mirror
HTTP/2 200
Content-Type: text/markdown; charset=utf-8
Link: <https://shop.example/blue-shirt.html>; rel="canonical", <https://shop.example/llms.txt>; rel="describedby"
X-Robots-Tag: noindex
text/markdown is the registered media type (RFC 7763). Keeping the mirror out of the search index with X-Robots-Tag: noindex and pointing rel="canonical" at the HTML page is our practice, not part of the proposal: it stops search engines treating the mirror as duplicate content.
Common mistakes
- Advertising a mirror that returns 404. A broken
rel="alternate"is worse than none: a client follows it and fails. Only advertise pages that have a mirror. - Empty mirrors. A page built from a theme template often has no body content in the database. Its mirror is empty. Do not advertise it.
- Cached 404s. Page caches such as LiteSpeed or Varnish may keep serving an old 404 for the
.mdURL. Purge after enabling mirrors. - Serving HTML as Markdown. The response must be Markdown with a
text/markdowncontent type, not the HTML page under a new URL.
How to check any page
curl -sI https://shop.example/some-page/ | grep -i '^link'
curl -sI https://shop.example/some-page/index.md | grep -iE '^(HTTP|content-type|link)'
On Magento 2 and WordPress
angeo/module-llms-txt 4.x serves a Markdown mirror of every product, category and CMS page at /{url-key}.md and accepts both URL forms. Mirrors are off by default: turn on Serve /url-key.md Mirrors. Emit Link Relations and Link to Markdown Mirrors in llms.txt then add the head links, the Link: header and the llms.txt links. The AEO audit checks the result as the link_relations signal and fails when a declared mirror is broken.
On WordPress, angeo.dev uses its own plugin to serve /slug/index.md for every listed page, with /slug.md as an alias.
Questions
- What is a Markdown mirror?
- A clean Markdown version of a web page, served at the same URL with
.mdadded or the extension replaced, so AI agents can read the content without the page’s HTML, scripts and navigation. - Is a Markdown mirror part of the llms.txt standard?
- It is a recommendation in the llms.txt proposal, revised on 10 August 2026. llms.txt is a proposal, not a formal standard, and no AI vendor has committed to reading mirrors.
- What URL does the mirror of /docs/setup/ have?
/docs/setup/index.mdor/docs/setup/index.html.md. A URL without a file name gets an index file name before.md.- How does an agent find the mirror?
- Through
rel="alternate" type="text/markdown"on the HTML page, as a<link>element or an HTTPLink:header, and through the links in llms.txt. - Should the Markdown mirror be indexed by Google?
- We keep mirrors out of the index with
X-Robots-Tag: noindexand pointrel="canonical"at the HTML page, so the HTML page is the one that ranks. - Does a Markdown mirror improve rankings or AI citations?
- There is no published evidence either way. It makes the content easier for agents to read; whether any assistant uses it is up to the vendor.
Related
- llms.txt – definition
- llms.txt v2: the spec and the evidence
- Module: llms.txt for Magento 2
- AEO score – definition
- The product description AI cannot read