Skip to content

Discovery

sitemap.xml, robots.txt, and the three paths to llms.txt.

sitemap-index.xml, sitemap-0.xml and robots.txt are emitted only when site is set. They contain absolute URLs, and Reed refuses to guess an origin — see site and base.

Reed writes a Sitemap: line and, after it, a comment line pointing at llms.txt:

# llms.txt: https://docs.example.com/llms.txt

Because robots.txt itself is gated on site, this can never be the primary way a client finds llms.txt.

  1. A head link on every page

    <link rel="alternate" type="text/plain" href="/llms.txt">. This is the load-bearing path — it does not depend on site being set, so it works on every build.

  2. The robots.txt comment

    Present only when site is set.

  3. A footer link

    Rendered on every page, whether or not you configure footer.columns or footer.status.

Three paths rather than one because each fails differently: the head link is invisible to humans, the footer link is invisible to a client that only reads headers, and robots.txt is absent on any site that never set an origin.

None of this renders under reed dev. dev never writes llms.txt, so the links that point at it would point at nothing — they are omitted rather than emitted broken.

To check discovery, run a real build and inspect the output directory.

There is no footer link to a live MCP endpoint. reed mcp generate writes server source into your own repository; Reed’s architecture has no served MCP endpoint for a link to point at. Adding a link to an endpoint that does not exist would be a fabrication, so there is not one.