---
title: Sitemap und robots
description: >-
  Die sitemap.xml und robots.txt, die Blume für Crawler schreibt, und die Content-Signal-Zeile, die KI-Crawlern mitteilt, wie sie deine Dokumentation verwenden dürfen.
---

Suchmaschinen-Crawler und KI-Crawler starten beide bei denselben zwei Dateien im Stammverzeichnis deiner Website. Blume schreibt beide bei jedem Build, und die `robots.txt` enthält die Signale zur Inhaltsnutzung, nach denen KI-Crawler suchen — hier treffen also die Such- und die Agenten-Seite der Auffindbarkeit aufeinander.

## Sitemap

Blume schreibt zur Build-Zeit eine `sitemap.xml` mit allen indexierbaren Seiten. Dafür wird eine absolute [`deployment.site`](/docs/deployment) benötigt, und es werden alle Seiten aufgelistet außer Entwürfen, versteckten und [`noindex`](/docs/discoverability/metadata#per-page-overrides)-Seiten. Auf einer [versionierten](/docs/content/versioning) Website bleiben auch archivierte Seiten außen vor, deren Canonical auf ihr Live-Pendant zeigt — die Live-Seite ist diejenige, die indexiert werden soll. Standardmäßig aktiviert:

```ts blume.config.ts lineNumbers
seo: {
  sitemap: true,
}
```

Liefere deine eigene `public/sitemap.xml` aus, um die Kontrolle zu übernehmen — Blume überschreibt niemals eine Datei, die du in `public/` ablegst.

## Robots

Blume schreibt eine `robots.txt`, die alle Crawler zulässt, deine [Content-Signale](#content-signals) deklariert und eine `Sitemap:`-Zeile hinzufügt, die auf die Sitemap verweist, sofern eine verfügbar ist. Standardmäßig aktiviert:

```ts blume.config.ts lineNumbers
seo: {
  robots: true,
}
```

```txt robots.txt
User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=yes
Allow: /

Sitemap: https://docs.example.com/sitemap.xml
```

### Content-Signale [#content-signals]

Die `Content-Signal`-Zeile — die aufkommende Konvention zur Inhaltsnutzung — deklariert, wie KI-Crawler deine Dokumentation weiterverwenden dürfen. Blume gibt sie **standardmäßig mit allen Signalen auf `yes` gesetzt** aus, passend zu seiner Haltung, dass Dokumentation für Menschen und Agenten gleichermaßen offen ist:

- `search` — klassische und KI-gestützte Suchindexierung
- `aiInput` — Grounding / RAG zum Zeitpunkt der Antwort
- `aiTrain` — Modelltraining

Schränke ein beliebiges Signal ein, indem du es auf `false` setzt; die, die du weglässt, bleiben auf `yes`:

```ts blume.config.ts lineNumbers
seo: {
  contentSignals: {
    aiTrain: false, // opt out of training, keep search + grounding
  },
}
```

```txt robots.txt
User-agent: *
Content-Signal: search=yes, ai-input=yes, ai-train=no
Allow: /
```

Setze `contentSignals: false`, um die Deklaration vollständig wegzulassen:

```ts blume.config.ts lineNumbers
seo: {
  contentSignals: false,
}
```

| Prop | Type | Default | Description |
| - | - | - | - |
| `seo.contentSignals?` | `boolean \| object` | - | Content-Signal-Deklaration. true oder weggelassen gibt alle Signale als yes aus; false lässt die Zeile weg; ein Objekt setzt Signale einzeln. |
| `contentSignals.search?` | `boolean` | - | Nutzung für Suchindexierung erlauben (search). Standard true. |
| `contentSignals.aiInput?` | `boolean` | - | Nutzung für KI-Grounding / RAG zum Zeitpunkt der Antwort erlauben (ai-input). Standard true. |
| `contentSignals.aiTrain?` | `boolean` | - | Nutzung für KI-Modelltraining erlauben (ai-train). Standard true. |

Content-Signale drücken eine Präferenz aus, keine Zugriffskontrolle: Sie teilen wohlerzogenen Crawlern mit, wie du deine Inhalte verwendet sehen möchtest, und es liegt am Crawler, sie zu respektieren. Dieselbe Richtlinie wird als `contentUsage` im [Manifest zur Agenten-Lesbarkeit](/docs/discoverability/agent-discovery#agent-readability) gespiegelt, sodass auch ein Agent, der niemals `robots.txt` liest, sie zu sehen bekommt.

Liefere deine eigene `public/robots.txt` aus, um die Kontrolle zu übernehmen.
