> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# seoMetaData - Meta-Daten & Seo-Texte

> Der seoMetaData-Knoten steuert den Aufbau von Meta-Title und Meta-Description für Kategorien, Produkte, Startseite, freie Templates sowie CMS-Seiten aus Strapi per Bausteinen.

export const ComingSoon = () => <span style={{
  display: 'inline-block',
  padding: '1px 10px',
  borderRadius: '9999px',
  fontSize: '0.75rem',
  fontWeight: 600,
  letterSpacing: '0.02em',
  backgroundColor: 'rgba(245, 158, 11, 0.18)',
  color: '#D97706',
  border: '1px solid rgba(245, 158, 11, 0.5)',
  verticalAlign: 'middle',
  whiteSpace: 'nowrap'
}}>
    Coming Soon
  </span>;

export const KonfigDeeplink = ({node}) => <>
    Die Einstellung kann über folgenden Link direkt im Admin-Interface geöffnet werden:{" "}
    <code>{`https://<shop-domain>/admin/config/${node}`}</code>{" "}
    (<a href="/konfiguration/konfigurations-deeplinks">Deeplink-Übersicht</a>)
  </>;

Der Knoten `seoMetaData` steuert, wie Meta-Title und Meta-Description im Shop gebaut werden - für Kategorien, Produkte, die Startseite und frei definierte Templates. Statt jeden Text manuell zu pflegen, lassen sich Bausteine kombinieren, inklusive Trennzeichen und Reihenfolge.

<Note>
  <ComingSoon />

  Der `seoMetaData`-Knoten gilt nicht nur für Kategorien, Produkte und die Startseite, sondern auch für CMS-Seiten, die über Strapi angelegt werden. CMS-Seiten werden im Shop als Views (Templates) ausgeliefert und nutzen daher dieselben `viewSchemes`-Bausteine für Meta-Title und Meta-Description.

  Die SEO-Angaben einer CMS-Seite (SEO-URL, Meta-Title, Meta-Description, Robots) werden in Strapi über das Meta-Info-Plugin gepflegt. Es ist auf jeder CMS-Seite vorhanden und stellt dafür feste, vorgegebene Felder bereit. Die eingetragenen Werte werden an den Shop übergeben und dort genauso behandelt wie die SEO-Daten von Produkten und Kategorien. Siehe [Übersicht - strapi CMS](/strapi-cms).
</Note>

***

## `seoMetaData*` - Grundstruktur

Nachfolgend der Grundaufbau des Knotens `seoMetaData`:

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
    "seoMetaData": {
      "categorySchemes": {...},
      "generalSchemes": {...},
      "productSchemes": {...},
      "startPage": {...},
      "viewSchemes": {...}
    }
}
```

#### Parameterbeschreibung

| **Parameter**     | **Beschreibung**                                                       |
| ----------------- | ---------------------------------------------------------------------- |
| `categorySchemes` | Bausteine für Meta-Title und Description von Kategorien.               |
| `generalSchemes`  | Definiert das globale SEO-Schema.                                      |
| `productSchemes`  | Bausteine für Meta-Title und Description von Produkten.                |
| `startPage`       | Bausteine für Meta-Title und Description für die Startseite.           |
| `viewSchemes`     | Bausteine für Meta-Title und Description für Templates und CMS-Seiten. |

***

## `seoMetaData.categorySchemes` - Kategorie-Meta-Daten

Der Knoten `seoMetaData.categorySchemes` liefert Bausteine für Meta-Title und Meta-Description von Kategorien.

<KonfigDeeplink node="seoMetaData.categorySchemes" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "generalMetaDescription": false,
  "generalMetaTitle": false,
  "metaTitleForms": [
    {
      "separator": "",
      "termType": "categoryField",
      "termData": { "categoryField": "content.categoryField:name" }
    },
    {
      "separator": " | ",
      "termType": "customCategoryField",
      "termData": { "customCategoryField": "content.customCategoryField:brandTagline" }
    },
    {
      "separator": " – ",
      "termType": "freeText",
      "termData": { "freeText": "Jetzt online kaufen" }
    }
  ],
  "metaDescriptionForms": [
    {
      "separator": "",
      "termType": "customCategoryField",
      "termData": { "customCategoryField": "content.customCategoryField:metaIntro" }
    },
    {
      "separator": " ",
      "termType": "categoryField",
      "termData": { "categoryField": "content.categoryField:descr" }
    },
    {
      "separator": " ",
      "termType": "freeText",
      "termData": { "freeText": "Top Auswahl • Schneller Versand" }
    }
  ]
}
```

#### Parameterübersicht

| **Parameter**            | **Typ**       | **Beschreibung**                                                                                                                                                                                                                                                                                                  |
| ------------------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `metaTitleForms`         | list (object) | Liste der “Bausteine” für den Meta-Titel einer Kategorie. <br />Die Einträge werden der Reihe nach mit `separator` aneinandergefügt.                                                                                                                                                                              |
| `separator`              | string        | Trennzeichen, das vor diesem Term eingefügt wird (beispielsweise `-`).                                                                                                                                                                                                                                            |
| `termType`               | enum          | Art des Terms.   <br />Folgende Werte sind möglich:  <br />- `categoryField` - verweist auf Standard-Kategoriefelder (beispielsweise `name`, `descr`) <br />- `customCategoryField` - verweist auf selbst angelegte Kategoriefelder <br />- `freeText` - ein fester Text, der in `termData`definiert werden kann. |
| `termData`               | oneOf         | Daten des Terms - je nach gewähltem `termType`.                                                                                                                                                                                                                                                                   |
| `freeText`               | string        | Selbst definierter, fester Text für `freeText`.                                                                                                                                                                                                                                                                   |
| `categoryField`          | singleAssoc   | Angabe eines Standard-Kategoriefelds aus `content.categoryField`.                                                                                                                                                                                                                                                 |
| `customCategoryField`    | singleAssoc   | Angabe eines benutzerdefinierten Kategoriefelds aus `content.customCategoryField`.                                                                                                                                                                                                                                |
| `generalMetaTitle`       | bool          | Nutzt den Standard-Meta-Title statt den obigen Bausteinen.                                                                                                                                                                                                                                                        |
| `metaDescriptionForms`   | list (object) | Bausteinliste für die Meta-Description - analog zu `metaTitleForms`.                                                                                                                                                                                                                                              |
| `separator`              | string        | Trennzeichen, das vor diesem Term eingefügt wird (beispielsweise `-`).                                                                                                                                                                                                                                            |
| `termType`               | enum          | Art des Terms.   <br />Folgende Werte sind möglich:  <br />- `categoryField` - verweist auf Standard-Kategoriefelder (beispielsweise `name`, `descr`) <br />- `customCategoryField` - verweist auf selbst angelegte Kategoriefelder <br />- `freeText` - ein fester Text, der in `termData`definiert werden kann. |
| `termData`               | oneOf         | Daten des Terms - je nach gewähltem `termType`.                                                                                                                                                                                                                                                                   |
| `freeText`               | string        | Selbst definierter, fester Text für `freeText`.                                                                                                                                                                                                                                                                   |
| `categoryField`          | singleAssoc   | Angabe eines Standard-Kategoriefelds aus `content.categoryField`.                                                                                                                                                                                                                                                 |
| `customCategoryField`    | singleAssoc   | Angabe eines benutzerdefinierten Kategoriefelds aus `content.customCategoryField`.                                                                                                                                                                                                                                |
| `generalMetaDescription` | bool          | Nutzt die Standard-Meta-Description statt den obigen Bausteinen.                                                                                                                                                                                                                                                  |

***

## `seoMetaData.generalSchemes` - Allgemeines SEO-Schema

Der Knoten `seoMetaData.generalSchemes` definiert globale SEO-Texte und Muster. Dazu zählen Standard-Meta-Daten für die Startseite sowie „Formeln“ (Forms), mit denen beispielsweise Tab-Titel oder Snippets automatisch aus Kategorie-/Produktfeldern und freiem Text zusammengesetzt werden.

Die Einträge in `initialTabs` sind die globalen Schemata der einzelnen Bereiche. Unter anderem greifen die [`viewSchemes`](#seometadata-viewschemes-template--cms-seiten-meta-daten) darauf zurück, wenn dort `generalMetaTitle` bzw. `generalMetaDescription` aktiviert ist. Der fünfte Eintrag liefert dann den View-Meta-Title, der sechste die View-Meta-Description.

<KonfigDeeplink node="seoMetaData.generalSchemes" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "initialTabs": [
    {
      "forms": [
        {
          "separator": "-",
          "termData": {
            "categoryField": "content.categoryField.name"
          },
          "termType": "categoryField"
        },
        {
          "separator": null,
          "termData": {
            "categoryField": "content.categoryField.descr"
          },
          "termType": "categoryField"
        }
      ]
    },
    {
      "forms": [
        {
          "separator": null,
          "termData": {
            "categoryField": "content.categoryField.descr"
          },
          "termType": "categoryField"
        }
      ]
    },
    {
      "forms": null
    },
    {
      "forms": [
        {
          "separator": null,
          "termData": {
            "productField": "content.productField.descr"
          },
          "termType": "productField"
        }
      ]
    },
    {
      "forms": [
        {
          "separator": "-",
          "termData": {
            "freeText": "test"
          },
          "termType": "freeText"
        },
        {
          "separator": null,
          "termData": {},
          "termType": "resourceId"
        }
      ]
    },
    {
      "forms": [
        {
          "separator": null,
          "termData": {},
          "termType": "resourceId"
        }
      ]
    }
  ],
  "startPageMetaData": {
    "metaDescription": "",
    "metaTitle": "startseite beschreibung"
  }
}
```

#### Parameterübersicht

| **Parameter**         | **Typ**       | **Beschreibung**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| --------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `initialTabs`         | list (object) | Liste von Bausteinen für Tabs, aus denen der Shop SEO-Texte zusammenstellt.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `forms`               | list (object) | Die einzelnen Textbausteine, aus denen ein Tab zusammengesetzt wird.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `separator`           | string        | Trennzeichen, das vor diesem Baustein eingefügt wird. (beispielsweise “`-`“)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `termData`            | oneOf         | Daten des Terms - je nach gewähltem `termType`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `termType`            | enum          | Art des Terms.   <br />Folgende Werte sind möglich:  <br />- `categoryField` - verweist auf Standard-Kategoriefelder (beispielsweise `name`, `descr`) <br />- `customCategoryField` - verweist auf selbst angelegte Kategoriefelder <br />- `productField` - verweist auf ein Standardfeld eines Produkts (beispielsweise `name`) <br />- `customProductField` - verweist auf selbst angelegte Produktfelder. <br />- `resourceId` - fügt die Kennung der jeweiligen Ressource ein (beispielsweise eine Kategorie-ID, eine Produkt-ID oder den View-Namen). <br />- `freeText` - ein fester Text, frei zu vergebender Text. |
| `categoryField`       | singleAssoc   | Wert aus einem Standard-Kategoriefeld (beispielsweise `name`).   <br />Wert aus `content.categoryField`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `customCategoryField` | singleAssoc   | Wert aus einem benutzerdefinierten Kategoriefeld.   <br />Wert aus `content.customCategoryField`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `productField`        | singleAssoc   | Wert aus einem Standard-Produktfeld. (beispielsweise `descr`).   <br />Wert aus `content.productField`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `customProductField`  | singleAssoc   | Wert aus einem benutzerdefinierten Produktfeld.   <br />Wert aus `content.customProductField`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `freeText`            | string        | Fest vorgegebener, selbst gewählter Text.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `startPageMetaData`   | object        | Standard-Meta-Daten der Startseite.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `metaDescription`     | string        | Meta-Description der Startseite.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `metaTitle`           | string        | Meta-Title der Startseite                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |

***

## `seoMetaData.productSchemes` - Produkt-Meta-Daten

Der Knoten `seoMetaData.productSchemes` steuert, wie Meta-Title und Meta-Description für Produktseiten zusammengesetzt werden.

<KonfigDeeplink node="seoMetaData.productSchemes" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "generalMetaTitle": false,
  "generalMetaDescription": false,

  "metaTitleForms": [
    {
      "separator": " – ",
      "termType": "productField",
      "termData": { "productField": "content.productField.name" }
    },
    {
      "separator": " | ",
      "termType": "customProductField",
      "termData": { "customProductField": "content.customProductField.brand" }
    },
    {
      "separator": null,
      "termType": "freeText",
      "termData": { "freeText": "Offizieller Shop" }
    }
  ],

  "metaDescriptionForms": [
    {
      "separator": "",
      "termType": "productField",
      "termData": { "productField": "content.productField.descr" }
    },
    {
      "separator": " • ",
      "termType": "customProductField",
      "termData": { "customProductField": "content.customProductField.keyFeatures" }
    }
  ]
}
```

#### Parameterübersicht

| **Parameter**            | **Typ**       | **Beschreibung**                                                                                                                                                                                                                                                                                |
| ------------------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `generalMetaTitle`       | bool          | Aktiviert einen globalen Meta-Title nach den definierten Bausteinen, falls am Produkt kein eigener Titel hinterlegt ist.                                                                                                                                                                        |
| `generalMetaDescription` | bool          | Aktiviert eine globale Meta-Description nach den definierten Bausteinen, falls am Produkt keine Beschreibung hinterlegt ist.                                                                                                                                                                    |
| `metaTitleForms`         | list (object) | Reihenfolge von Textbausteinen, aus denen der Meta-Title für Produktseiten generiert wird.                                                                                                                                                                                                      |
| `separator`              | string        | Trennzeichen, das vor diesem Baustein eingefügt wird. (beispielsweise “`-`“)                                                                                                                                                                                                                    |
| `termType`               | enum          | Art des Terms.   <br />Folgende Werte sind möglich:  <br />- `productField` - verweist auf ein Standardfeld eines Produkts (beispielsweise `name`).<br /> - `customProductField` - verweist auf selbst angelegte Produktfelder. <br />- `freeText` - ein fester Text, frei zu vergebender Text. |
| `termData`               | oneOf         | Daten des Terms - je nach gewähltem `termType`.                                                                                                                                                                                                                                                 |
| `metaDescriptionForms`   | list (object) | Reihenfolge von Textbausteinen, aus denen die Meta-Description für Produktseiten generiert wird.                                                                                                                                                                                                |
| `separator`              | string        | Trennzeichen, das vor diesem Baustein eingefügt wird. (beispielsweise “`-`“)                                                                                                                                                                                                                    |
| `termType`               | enum          | Art des Terms.   <br />Folgende Werte sind möglich:  <br />- `productField` - verweist auf ein Standardfeld eines Produkts (beispielsweise `name`). <br />- `customProductField` - verweist auf selbst angelegte Produktfelder. <br />- `freeText` - ein fester Text, frei zu vergebender Text. |
| `termData`               | oneOf         | Daten des Terms - je nach gewähltem `termType`.                                                                                                                                                                                                                                                 |

***

## `seoMetaData.startPage` - Startseite Meta-Daten

Der Knoten `seoMetaData.startPage` definiert die SEO-Texte für die Startseite. Hier können Meta-Title und Meta-Description hinterlegt werden.

<KonfigDeeplink node="seoMetaData.startPage" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "metaTitle": "Willkommen im WEBSALE Demo-Shop – Neuheiten & Bestseller",
  "metaDescription": "Jetzt Neuheiten, Bestseller und attraktive Angebote entdecken. Schneller Versand, sichere Zahlung und erstklassiger Service."
}
```

#### Parameterbeschreibung

| **Parameter**     | **Typ** | **Beschreibung**                                                              |
| ----------------- | ------- | ----------------------------------------------------------------------------- |
| `metaTitle`       | string  | SEO-Titel der Startseite (kurz und prägnant, ideal ca. 50-60 Zeichen).        |
| `metaDescription` | string  | SEO-Beschreibung der Startseite (zusammenfassend, ideal ca. 140-160 Zeichen). |

***

## `seoMetaData.viewSchemes` - Template- & CMS-Seiten-Meta-Daten

Der Knoten `seoMetaData.viewSchemes` definiert, wie Meta-Title und Meta-Description für Views automatisch zusammengesetzt werden. Views sind die statischen Shop-Seiten (Templates), beispielsweise Kontakt, AGB oder Impressum. Als Bausteine stehen hier ein fester Text (`freeText`) und der Name der jeweiligen View (`resourceId`) zur Verfügung.

Die so generierten Werte dienen als Vorbelegung. Im Admin Interface können Meta-Title und Meta-Description zusätzlich je View manuell gepflegt werden. Manuell gesetzte Werte bleiben erhalten und werden nicht durch die generierten Bausteine überschrieben.

<Note>
  <ComingSoon />

  **Gilt auch für CMS-Seiten aus Strapi:** Über Strapi angelegte CMS-Seiten werden im Shop als Views ausgeliefert. Die hier definierten `viewSchemes`-Bausteine greifen daher auch für diese Seiten. Die SEO-Angaben je CMS-Seite (SEO-URL, Meta-Title, Meta-Description, Robots) werden in Strapi über das Meta-Info-Plugin gepflegt.
</Note>

<KonfigDeeplink node="seoMetaData.viewSchemes" />

#### Beispielkonfiguration

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
 {
  "generalMetaDescription": false,
  "generalMetaTitle": false,
  "metaTitleForms": [
    {
      "separator": null,
      "termType": "freeText",
      "termData": { "freeText": "Onlineshop" }
    },
    {
      "separator": " | ",
      "termType": "resourceId",
      "termData": {}
    }
  ],
  "metaDescriptionForms": [
    {
      "separator": null,
      "termType": "freeText",
      "termData": { "freeText": "Infos & Service" }
    },
    {
      "separator": null,
      "termType": "resourceId",
      "termData": {}
    }
  ]
}
```

Mit dieser Beispielkonfiguration entsteht für die View `kontakt.htm` der Meta-Title „Onlineshop | kontakt.htm". Der Baustein `freeText` liefert den festen Text „Onlineshop", der Baustein `resourceId` fügt den View-Namen ein und das Trennzeichen `" | "` verbindet beide.

#### Parameterübersicht

| **Parameter**            | **Typ**       | **Beschreibung**                                                                                                                                                                                                                                                                      |
| ------------------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `generalMetaDescription` | bool          | Bei `true` wird die Meta-Description nicht aus den hier definierten `metaDescriptionForms` gebaut, sondern aus dem globalen View-Schema in [`seoMetaData.generalSchemes`](#seometadata-generalschemes-allgemeines-seo-schema). <br />Bei `false` gelten die Bausteine dieses Knotens. |
| `generalMetaTitle`       | bool          | Bei `true` wird der Meta-Title nicht aus den hier definierten `metaTitleForms` gebaut, sondern aus dem globalen View-Schema in [`seoMetaData.generalSchemes`](#seometadata-generalschemes-allgemeines-seo-schema). <br />Bei `false` gelten die Bausteine dieses Knotens.             |
| `metaTitleForms`         | list (object) | Reihenfolge von Textbausteinen, aus denen der Meta-Title für Templates und CMS-Seiten generiert wird.                                                                                                                                                                                 |
| `separator`              | string        | Trennzeichen, das vor diesem Baustein eingefügt wird. (beispielsweise “`-`“)                                                                                                                                                                                                          |
| `termType`               | enum          | Art des Terms.   <br />Folgende Werte sind möglich:  <br />- `resourceId` - fügt den Namen der jeweiligen View ein (beispielsweise `kontakt.htm`). <br />- `freeText` - ein fester Text, frei zu vergebender Text.                                                                    |
| `termData`               | oneOf         | Daten des Terms - je nach gewähltem `termType`.                                                                                                                                                                                                                                       |
| `metaDescriptionForms`   | list (object) | Reihenfolge von Textbausteinen, aus denen die Meta-Description für Templates und CMS-Seiten generiert wird.                                                                                                                                                                           |
| `separator`              | string        | Trennzeichen, das vor diesem Baustein eingefügt wird. (beispielsweise “`-`“)                                                                                                                                                                                                          |
| `termType`               | enum          | Art des Terms.   <br />Folgende Werte sind möglich:  <br />- `resourceId` - fügt den Namen der jeweiligen View ein (beispielsweise `kontakt.htm`). <br />- `freeText` - ein fester Text, frei zu vergebender Text.                                                                    |
| `termData`               | oneOf         | Daten des Terms - je nach gewähltem `termType`.                                                                                                                                                                                                                                       |


## Related topics

- [Konfigurations-Deeplinks](/admin-interface/konfigurations-deeplinks.md)
- [API-Referenz Konfiguration](/schnittstellen/admin-interface-api/api-referenz-konfiguration.md)
- [Übersicht - strapi CMS](/strapi-cms.md)
- [Grundlagen & Architektur von strapi](/strapi-cms/grundlagen-architektur-von-strapi.md)
- [API-Referenz Meta-Daten](/schnittstellen/admin-interface-api/api-referenz-meta-daten.md)
