---
title: SEO-Optimierung
description: Steuere Titel, Beschreibungen und Meta-Tags für Suchmaschinen und Social-Media-Vorschauen; Jamdesk erstellt automatisch Sitemaps und Open-Graph-Bilder.
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://jamdesk.com/docs/llms.txt). Append `.md` to any page URL for its markdown version.

Optimiere deine Dokumentation für Suchmaschinen und Social-Media-Vorschauen, indem du Titel, Beschreibungen und Metadaten im Frontmatter festlegst.

## Was Jamdesk automatisch erledigt

<Columns cols={3}>
  <Card title="Meta-Tags" icon="tags">
    Titel und Beschreibung aus dem Frontmatter werden als Meta-Tags übernommen.
  </Card>
  <Card title="Open Graph" icon="share">
    Für jede Seite werden Bilder zum Teilen in sozialen Medien erstellt.
  </Card>
  <Card title="Sitemap & Robots" icon="sitemap">
    Bei jedem Build werden eine XML-Sitemap und eine robots.txt-Datei erstellt.
  </Card>
  <Card title="JSON-LD" icon="code">
    Strukturierte Schema.org-Daten auf jeder Seite sorgen für umfangreiche Suchergebnisse.
  </Card>
  <Card title="IndexNow" icon="bolt">
    Geänderte URLs werden nach jedem Build an Suchmaschinen übermittelt.
  </Card>
  <Card title="KI-Endpunkte" icon="robot" href="/de/ai/overview">
    `llms.txt` und MCP-Server ermöglichen KI-Tools das Lesen deiner Dokumentation.
  </Card>
</Columns>

## Inhalte optimieren

### Aussagekräftiges Frontmatter verfassen

```yaml
---
title: User Authentication    # Under 60 characters
description: Set up OAuth, JWT, and session-based authentication  # 120-160 characters
---
```

<Tip>
**Keywords an den Anfang stellen.** „Authentication setup“ ist besser als „How to set up authentication“.
</Tip>

### Seitentitel

- Unter 60 Zeichen halten, damit Suchergebnisse den Titel nicht abschneiden
- Das wichtigste Keyword möglichst weit vorne platzieren
- Für jede Seite einen eindeutigen Titel verwenden

### Beschreibungen

- 120–160 Zeichen anstreben
- Zusammenfassen, was Leserinnen und Leser erfahren
- Relevante Keywords natürlich einbinden

<Note>
**Automatisch generierter Ersatz.** Fehlt `description` im Frontmatter, übernimmt Jamdesk automatisch den ersten Fließtextabsatz deiner Seite (bis zu 155 Zeichen). Überschriften, Codeblöcke, Bilder und MDX-Komponenten werden übersprungen. Dieser Text wird für `<meta name="description">`, Open Graph und Twitter Cards verwendet. Für optimale Ergebnisse empfiehlt sich weiterhin eine eigene Beschreibung.
</Note>

## Indexierung steuern

### Einstellungen für die gesamte Website

Lege in deiner `docs.json` das Standardverhalten für Robots fest:

```json docs.json
{
  "seo": {
    "metatags": {
      "robots": "index, follow"
    }
  }
}
```

### Einstellungen für einzelne Seiten

Überschreibe die Indexierung bestimmter Seiten im Frontmatter:

```yaml
---
title: Internal Notes
noindex: true
---
```

Verwende `noindex` für:
- Entwürfe oder Seiten in Bearbeitung
- Interne Dokumentation
- Veraltete Inhalte, die du als Referenz behalten möchtest

### Suchmaschinenindexierung und KI-Verarbeitung

`robots`-Metadaten und `noindex` steuern **Suchmaschinen**: Sie bestimmen, ob eine Seite bei Google und in deiner `sitemap.xml` erscheint. Sie wirken sich nicht auf die Dateien `llms.txt` und `llms-full.txt` aus, die KI-Tools lesen. Um deren Veröffentlichung zu stoppen, setze `seo.ai.llmsTxt` auf `false` (siehe [llms.txt deaktivieren](https://jamdesk.com/docs/de/ai/llms-txt#llmstxt-deaktivieren)). Die beiden Einstellungen sind unabhängig voneinander: Eine Seite kann von Suchmaschinen indexiert, aber von der KI-Verarbeitung ausgeschlossen werden – oder umgekehrt.

## Kanonische URLs

Wenn deine Dokumentation unter mehreren URLs erreichbar ist, lege eine kanonische URL fest:

```yaml
---
title: Getting Started
canonical: https://docs.example.com/getting-started
---
```

Du kannst auch in `docs.json` eine websiteweite kanonische Basis-URL festlegen. Jamdesk hängt den Pfad jeder Seite daran an, sodass jede Seite eine passende kanonische URL erhält:

```json docs.json
{
  "seo": {
    "metatags": {
      "canonical": "https://docs.acme.com"
    }
  }
}
```

## Social-Media-Vorschauen und Open Graph

Jamdesk erstellt automatisch für jede Seite eine gebrandete Social-Media-Karte im Format 1200×630. Überschreibe beliebige Social-Media-Tags im Frontmatter. Du kannst **flache Schlüssel auf oberster Ebene** oder einen verschachtelten **`seo:`-Block** verwenden. Beides funktioniert. Ist derselbe Schlüssel auf beide Arten gesetzt, hat der Wert auf oberster Ebene Vorrang.

<Card title="OpenGraph-Vorschau" icon="share-nodes" href="https://jamdesk.com/utilities/opengraph-preview" horizontal>
  Sieh dir an, wie die Karte einer beliebigen Seite auf X, Facebook, LinkedIn und weiteren Plattformen dargestellt wird. Mit dem OpenGraph Preview kannst du außerdem ihre Open-Graph-Tags überprüfen.
</Card>

<CodeGroup>
```yaml Flat (top-level)
---
title: API Reference
description: REST API endpoints and authentication
"og:title": API Reference — Acme
"og:description": Everything you need to call the Acme API
"og:image": /images/api-social-card.png
"twitter:card": summary_large_image
"twitter:creator": "@acme"
keywords: ["api", "rest", "authentication"]
canonical: https://docs.acme.com/api-reference
---
```

```yaml Nested (seo block)
---
title: API Reference
description: REST API endpoints and authentication
seo:
  "og:title": API Reference — Acme
  "og:image": /images/api-social-card.png
  "twitter:card": summary_large_image
  x-custom-tag: any custom meta value
---
```
</CodeGroup>

### Unterstützte Tags

| Gruppe | Tags |
|-------|------|
| Open Graph | `og:title`, `og:description`, `og:image`, `og:image:width`, `og:image:height`, `og:image:alt`, `og:url`, `og:type`, `og:site_name`, `og:locale`, `og:video`, `og:audio` |
| Artikel | `og:type: article` mit `article:published_time`, `article:modified_time`, `article:author`, `article:section`, `article:tag` |
| Twitter / X | `twitter:card`, `twitter:title`, `twitter:description`, `twitter:image`, `twitter:image:alt`, `twitter:site`, `twitter:creator`, `twitter:player`, App-Card-Tags |
| Sonstige | `keywords`, `author`, `robots`, `googlebot`, `google-site-verification`, `theme-color` sowie beliebige benutzerdefinierte Tags (benutzerdefinierte Tags unter `seo:` platzieren) |

<Note>
**Abmessungen benutzerdefinierter OG-Bilder.** `og:image:width` und `og:image:height` gelten nur, wenn
[`customImage`](#social-card-anpassen) auf `"replace"` gesetzt ist. Lege sie an derselben Stelle wie das zugehörige
`og:image` fest: entweder im Frontmatter der Seite oder unter `seo.metatags`. Die generierte
Karte hat immer das Format 1200×630.
</Note>

<Note>
**Benutzerdefinierte Tags.** Beliebige Meta-Tags (z. B. `x-pinterest`) werden als `<meta name="...">` ausgegeben.
Füge sie dem `seo:`-Block hinzu. Auf oberster Ebene werden nur erkannte SEO-Schlüssel übernommen.
</Note>

### Twitter-/X-Kartentyp

Der Tag `twitter:card` bestimmt, welches Layout X (und andere Plattformen) beim Teilen deines Links verwendet:

| Wert | Darstellung |
|-------|--------------------|
| `summary` | Kleines quadratisches Vorschaubild links, daneben Titel und Beschreibung. Kompakt. |
| `summary_large_image` | Großes, bildschirmbreites Bild oben, darunter Titel und Beschreibung. Die auffällige Variante. |

Verwende für eine gebrandete Karte im Format 1200×630 `summary_large_image`, damit das Bild in voller Breite angezeigt wird.

### Standardbild für die gesamte Website

Lege in `docs.json` ein Social-Media-Ersatzbild für alle Seiten fest. Seiten mit eigenem `og:image` überschreiben es:

```json docs.json
{
  "seo": {
    "metatags": {
      "og:image": "https://docs.acme.com/images/default-card.png"
    }
  }
}
```

<Tip>
**Vor der Veröffentlichung prüfen.** Füge nach einem Build die Seiten-URL in das Tool [OpenGraph Preview](https://jamdesk.com/utilities/opengraph-preview) ein, um die Darstellung der Karte auf den einzelnen Plattformen zu prüfen und die Open-Graph-Tags zu validieren. Das Tool prüft auch die Bildabmessungen und erklärt, wie du gefundene Probleme behebst.
</Tip>

### Social Card anpassen

Das Aussehen deiner generierten Karte bleibt unverändert, sofern du `seo.socialCard` nicht zu `docs.json` hinzufügst.
Lege nur die Schlüssel fest, die du ändern möchtest:

```json docs.json
{
  "seo": {
    "socialCard": {
      "theme": "dark",
      "brandColor": true,
      "accentBar": false,
      "siteName": false,
      "customImage": "replace"
    }
  }
}
```

| Schlüssel | Standard | Wirkung |
|-----|---------|--------|
| `theme` | `"light"` | `"dark"` verwendet hellen Text auf dunklem Hintergrund und dein `logo.dark`-Bild. |
| `brandColor` | `false` | `true` färbt die untere Leiste und das Abschnitts-Badge mit `colors.primary`. Bei einer dunklen Karte wird `colors.light` verwendet, sofern festgelegt. Wenn du keine `colors` festgelegt hast, nutzt die Karte die Akzentfarbe deines Themes. `false` behält das Standardrot bei. |
| `accentBar` | `true` | `false` entfernt die farbige Leiste am unteren Kartenrand. |
| `siteName` | `true` | `false` blendet den Namen der Website unter dem Logo aus. Verwende diese Einstellung, wenn dein Logo den Namen bereits enthält. |
| `customImage` | `"background"` | `"background"` setzt den Seitentitel über dein `og:image`. `"replace"` verwendet dein `og:image` als ganze Karte. |

Die Karte kann nur SVG-, PNG- und JPG-Logos darstellen. Jamdesk konvertiert PNG- und JPG-Logodateien in deinem Repository beim Erstellen der Website in WebP. Daher zeigt die Karte normalerweise stattdessen dein Favicon und behält den Websitenamen bei – auch wenn `siteName: false` gesetzt ist. Verwende ein SVG-Logo, um dein vollständiges Logo auf der Karte darzustellen, und `logo.dark` für eine dunkle Karte.

Wenn sich deine Markenfarbe nicht deutlich genug vom Kartenhintergrund abhebt, wird der Badge-Text in der normalen Textfarbe dargestellt. Die Leiste behält deine Markenfarbe bei, außer wenn sie dem Kartenhintergrund zu ähnlich ist. In diesem Fall ist die Leiste grau.

Standardmäßig setzt Jamdesk den Seitentitel über dein `og:image`. Enthält dein Bild bereits Text oder ein Design, setze `"customImage": "replace"`, damit es unverändert angezeigt wird.

Wenn dein `og:image` als Kartenhintergrund dient, wähle das passende `theme`: `dark` für ein dunkles Bild und `light` für ein helles.

Im `replace`-Modus setzt Jamdesk keinen Titel auf das Bild. Wenn `seo.metatags` ein `og:image` festlegt, wird dieses Bild auf jeder Seite verwendet. Eine Seite mit eigenem `og:image` verwendet stattdessen dieses Bild.
Nur Seiten ohne eines dieser Bilder erhalten eine generierte Karte. Verwende ein PNG- oder JPG-Bild im Format 1200×630. Einige Plattformen zeigen keine WebP- oder SVG-Bilder an.

Social-Media-Websites speichern Linkvorschauen im Cache. Daher kann ein bereits geteilter Link auch nach einer Änderung dieser Einstellungen noch eine Zeit lang die alte Karte anzeigen. Prüfe die neue Karte mit dem Tool
[OpenGraph Preview](https://jamdesk.com/utilities/opengraph-preview).

<Note>
Ältere Versionen der Jamdesk CLI lehnen `seo.socialCard` in `jamdesk validate` und
`jamdesk dev` ab. Führe ein Upgrade mit `npm i -g jamdesk@latest` durch.
</Note>

## Sitemap und Robots.txt

Jede Jamdesk-Website erstellt bei jedem Build automatisch `sitemap.xml` und `robots.txt`.

| Datei | Zweck |
|------|---------|
| `sitemap.xml` | Listet alle Seiten mit Änderungsdaten für Suchmaschinen auf |
| `robots.txt` | Erlaubt allen Crawlern den Zugriff und verweist sie auf die Sitemap |

### Wo du die Dateien findest

Die URLs hängen davon ab, ob sich deine Dokumentation auf einer Stammdomain oder unter einem `/docs`-Unterpfad befindet:

<Tabs>
  <Tab title="Stammdomain">
    Wenn sich deine Dokumentation im Stammverzeichnis deiner Domain befindet (z. B. `docs.acme.com` oder `acme.jamdesk.app`):

    ```bash
    https://docs.acme.com/sitemap.xml
    https://docs.acme.com/robots.txt
    ```
  </Tab>
  <Tab title="/docs-Unterpfad">
    Wenn sich deine Dokumentation unter `/docs` auf deiner Hauptwebsite befindet (wie auf dieser Website unter `jamdesk.com/docs`):

    ```bash
    https://jamdesk.com/docs/sitemap.xml
    https://jamdesk.com/docs/robots.txt
    ```
  </Tab>
</Tabs>

### Was die Sitemap enthält

- Alle veröffentlichten Seiten (ausgenommen Seiten mit `noindex` oder `hidden` im Frontmatter)
- Änderungsdaten aus dem Frontmatter, sofern verfügbar
- Wöchentliche Aktualisierungsfrequenz

### Seiten aus der Sitemap ausschließen

Füge `noindex` zum Frontmatter hinzu, um eine Seite sowohl aus der Sitemap als auch aus Suchmaschinen auszuschließen:

```yaml
---
title: Internal Notes
noindex: true
---
```

Seiten mit `hidden: true` werden ebenfalls automatisch ausgeschlossen.

## Strukturierte JSON-LD-Daten

Jede Seite enthält automatisch strukturierte Daten von [schema.org](https://schema.org) in einem `<script type="application/ld+json">`-Tag mit zwei Schemas:

- `WebSite`: Name, URL und Beschreibung deiner Website (aus `docs.json`).
- `BreadcrumbList`: Navigationspfad von der Startseite zur aktuellen Seite, abgeleitet aus deiner `navigation`-Konfiguration.

Eine Konfiguration ist nicht erforderlich. Suchmaschinen verwenden diese Daten für umfangreiche Ergebnisse, etwa Breadcrumb-Pfade in Suchergebnissen.

<Tip>
**Markup überprüfen.** Füge eine beliebige Seiten-URL in den [Rich Results Test von Google](https://search.google.com/test/rich-results) ein, um zu prüfen, ob die strukturierten Daten erkannt werden.
</Tip>

## IndexNow

Nach jedem Build übermittelt Jamdesk geänderte Seiten-URLs automatisch an [IndexNow](https://www.indexnow.org), damit Suchmaschinen sie schneller indexieren. So werden Bing, Yandex und andere teilnehmende Suchmaschinen über Änderungen an deinen Inhalten informiert, ohne dass du auf den nächsten Crawl-Zyklus warten musst.

- Wird nach jedem erfolgreichen Build ausgeführt
- Übermittelt nur Seiten, die tatsächlich geändert wurden
- Blockiert den Build nicht und verzögert ihn daher nie
- Keine Konfiguration erforderlich

## Bewährte Methoden

Arbeite diese Checkliste vor der Veröffentlichung durch:

<Note>
**Checkliste vor der Veröffentlichung**

- **Eindeutige Titel.** Jede Seite hat einen eigenen, aussagekräftigen Titel mit weniger als 60 Zeichen.
- **Präzise Beschreibungen.** Beschreibungen fassen die Seite in 120–160 Zeichen zusammen.
- **Logische Überschriften.** Überschriften folgen einer klaren Hierarchie: eine H1, dann H2 → H3.
- **Aussagekräftige Links.** Interne Links verwenden aussagekräftigen Ankertext, niemals „hier klicken“.
- **Alt-Texte für Bilder.** Jedes Bild hat einen Alt-Text für Barrierefreiheit und die Bildersuche.
- **Social-Media-Bild.** Lege für wichtige Seiten ein eigenes `og:image` fest oder nutze die automatisch generierte Karte. Prüfe sie mit dem Tool [OpenGraph Preview](https://jamdesk.com/utilities/opengraph-preview).
</Note>

## Verwandte Artikel

<Columns cols={2}>
  <Card title="Frontmatter-Referenz" icon="file-lines" href="/de/content/frontmatter">
    Alle verfügbaren Frontmatter-Optionen
  </Card>
  <Card title="docs.json-Referenz" icon="gear" href="/de/config/docs-json-reference">
    Websiteweite Konfigurationsoptionen
  </Card>
  <Card title="OpenGraph Preview" icon="share-nodes" href="https://jamdesk.com/utilities/opengraph-preview">
    Social Cards auf allen Plattformen in der Vorschau ansehen und überprüfen
  </Card>
</Columns>
