Why it matters
If the same URL serves HTML or Markdown depending on Accept, both responses need Vary: Accept, or a CDN can cache Markdown and serve it to browsers. Next.js 16.3.5 overwrites a custom Vary on prerendered HTML responses (verified).
How to fix it
Prefer explicit .md URLs. Only negotiate where the proxy runs before the cache, and add Vary: Accept at the CDN.
References
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.
wall-of-textParagraphs longer than 150 wordsvague-headingsGeneric section headings ("Overview", "More", "Details")markdown-alternateNo working Markdown alternate for this content pagemarkdown-mirror-indexableMarkdown mirror can compete with the HTML page, or diverges from itmarkdown-negotiationNo Markdown response for Accept: text/markdownllms-txt-missingNo /llms.txtllms-txt-error/llms.txt returns a server errorllms-txt-invalid/llms.txt doesn't follow the llms.txt format