---
title: "No Markdown response for Accept: text/markdown (geo/markdown-negotiation)"
description: "geo/markdown-negotiation: Coding agents (Claude Code, Cursor) request text/markdown; nextjs.org and Cloudflare's Markdown for Agents answer with Markdown."
canonical: https://void-design.vercel.app/rules/geo/markdown-negotiation
lastModified: 2026-09-16
---

# No Markdown response for Accept: text/markdown

`geo/markdown-negotiation` · severity **info** · category AI search · detected by `void geo` and `void audit`

## Why it matters

Coding agents (Claude Code, Cursor) request text/markdown; nextjs.org and Cloudflare's Markdown for Agents answer with Markdown. It's optional and not a ranking factor.

## How to fix it

Optionally rewrite Accept: text/markdown requests to your Markdown route in proxy.ts (with Vary: Accept), or enable Cloudflare Markdown for Agents.

## Example

```ts
// proxy.ts
const accept = request.headers.get('accept') ?? ''
if (accept.includes('text/markdown')) {
  const res = NextResponse.rewrite(new URL('/md' + pathname, request.url))
  res.headers.set('Vary', 'Accept')
  return res
}
```

## References

- https://nextjs.org/docs/app/guides/ai-agents
- https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/

## More ai search rules

`void geo` reports 41 rules in this category. Generative-engine optimisation: whether AI crawlers that don't run JavaScript see the same content, valid and visible JSON-LD, an explicit AI robots policy, llms.txt, Markdown mirrors and answer-first writing.

- `vague-headings` Generic section headings ("Overview", "More", "Details") — [geo/vague-headings](https://void-design.vercel.app/rules/geo/vague-headings)
- `markdown-alternate` No working Markdown alternate for this content page — [geo/markdown-alternate](https://void-design.vercel.app/rules/geo/markdown-alternate)
- `markdown-mirror-indexable` Markdown mirror can compete with the HTML page, or diverges from it — [geo/markdown-mirror-indexable](https://void-design.vercel.app/rules/geo/markdown-mirror-indexable)
- `markdown-negotiation-vary` Accept: text/markdown negotiation without Vary: Accept — [geo/markdown-negotiation-vary](https://void-design.vercel.app/rules/geo/markdown-negotiation-vary)
- `llms-txt-missing` No /llms.txt — [geo/llms-txt-missing](https://void-design.vercel.app/rules/geo/llms-txt-missing)
- `llms-txt-error` /llms.txt returns a server error — [geo/llms-txt-error](https://void-design.vercel.app/rules/geo/llms-txt-error)
- `llms-txt-invalid` /llms.txt doesn't follow the llms.txt format — [geo/llms-txt-invalid](https://void-design.vercel.app/rules/geo/llms-txt-invalid)
- `llms-txt-broken-links` /llms.txt links to URLs that fail — [geo/llms-txt-broken-links](https://void-design.vercel.app/rules/geo/llms-txt-broken-links)

Detected by `void geo` and `void audit`. Explain it in a terminal: `void rules geo/markdown-negotiation`
