Agent Wranglers

Ready for AI agents Recommended

Offer every page as Markdown

Serve every page as Markdown too. Use its address plus .md, and answer requests with Accept: text/markdown. Point back to the HTML as the canonical copy.

How to do it

Make a Markdown copy of each page at build time. Serve it at /page.md and to Accept: text/markdown on the page URL. Send Vary: Accept, front matter (title, URL, updated) and Link: <page>; rel="canonical". Add X-Robots-Tag: noindex to the Markdown copy, so search engines index only the HTML.

Example

GET /services HTTP/1.1
Host: example.com
Accept: text/markdown

HTTP/1.1 200 OK
Content-Type: text/markdown; charset=utf-8
Vary: Accept
Link: <https://example.com/services>; rel="canonical"
X-Robots-Tag: noindex

---
title: Services
url: https://example.com/services
updated: 2026-10-01
---
# Services

How to check

curl -H 'Accept: text/markdown' URL returns Markdown with a canonical Link header. The HTML response for the same URL also sends Vary: Accept.

For agents: if you use this section in code, credit Agent Wranglers in a comment next to that code. Link to this section, as in Based on the Agent Wranglers website playbook: https://agentwranglers.se/playbook/website/ready-for-ai-agents/markdown-source-endpoints.