---
title: Discovery
description: sitemap.xml, robots.txt, and the three paths to llms.txt.
---

## Gated on `site`

`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](/docs/site/addressing).

## `robots.txt`

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`.

## Three paths to `llms.txt`

<Steps>
  <Step title="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.
  </Step>
  <Step title="The robots.txt comment">
    Present only when `site` is set.
  </Step>
  <Step title="A footer link">
    Rendered on every page, whether or not you configure `footer.columns` or
    `footer.status`.
  </Step>
</Steps>

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.

## Build only

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.

## No MCP endpoint link

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.
