Skip to content

Rule · AI search

Markdown mirror can compete with the HTML page, or diverges from it

geo/markdown-mirror-indexablewarnvoid geoupdated

Why it matters

Without X-Robots-Tag: noindex or a canonical Link header, .md mirrors can be indexed as duplicates; mirrors carrying different facts than the HTML risk looking like cloaking.

How to fix it

Send X-Robots-Tag: noindex and Link: <html-url>; rel="canonical" on Markdown responses, keep them out of the sitemap, and generate them from the same source as the HTML.

Example

ts
// app/md/[[...slug]]/route.ts
return new Response(md, {
  headers: {
    'Content-Type': 'text/markdown; charset=utf-8',
    'X-Robots-Tag': 'noindex',
    Link: '<' + htmlUrl + '>; rel="canonical"',
    Vary: 'Accept',
  },
})

References

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.