> ## 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 data & SEO texts

> The seoMetaData node controls how meta title and meta description are built for categories, products, the home page, custom templates and CMS pages from Strapi via building blocks.

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}) => <>
    You can open this setting directly in the Admin Interface via the following link:{" "}
    <code>{`https://<shop-domain>/admin/config/${node}`}</code>{" "}
    (<a href="/en/admin-interface/konfigurations-deeplinks">Deeplink overview</a>)
  </>;

The `seoMetaData` node controls how the meta title and meta description are built in the shop — for categories, products, the home page and freely defined templates. Instead of maintaining every text manually, building blocks can be combined including separators and order.

<Note>
  <ComingSoon />

  The `seoMetaData` node applies not only to categories, products and the home page, but also to CMS pages created via Strapi. CMS pages are delivered in the shop as views (templates) and therefore use the same `viewSchemes` building blocks for meta title and meta description.

  The SEO details of a CMS page (SEO URL, meta title, meta description, robots) are maintained in Strapi via the meta info plugin. It is present on every CMS page and provides fixed, predefined fields for this purpose. The values entered are passed on to the shop and treated there in the same way as the SEO data of products and categories. See [Overview - Strapi CMS](/en/strapi-cms).
</Note>

***

## `seoMetaData*` - Basic structure

The basic structure of the `seoMetaData` node is shown below:

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

#### Parameter description

| **Parameter**     | **Description**                                                            |
| ----------------- | -------------------------------------------------------------------------- |
| `categorySchemes` | Building blocks for meta title and description of categories.              |
| `generalSchemes`  | Defines the global SEO scheme.                                             |
| `productSchemes`  | Building blocks for meta title and description of products.                |
| `startPage`       | Building blocks for meta title and description of the home page.           |
| `viewSchemes`     | Building blocks for meta title and description of templates and CMS pages. |

***

## `seoMetaData.categorySchemes` - Category meta data

The `seoMetaData.categorySchemes` node provides building blocks for the meta title and meta description of categories.

<KonfigDeeplink node="seoMetaData.categorySchemes" />

#### Example configuration

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

| **Parameter**            | **Type**      | **Description**                                                                                                                                                                                                                                                                        |
| ------------------------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `metaTitleForms`         | list (object) | List of "building blocks" for the meta title of a category. <br />The entries are concatenated in order using `separator`.                                                                                                                                                             |
| `separator`              | string        | Separator inserted before this term (for example `-`).                                                                                                                                                                                                                                 |
| `termType`               | enum          | Type of the term.   <br />The following values are possible:  <br />- `categoryField` — references standard category fields (for example `name`, `descr`). <br />- `customCategoryField` — references custom category fields. <br />- `freeText` — a fixed text defined in `termData`. |
| `termData`               | oneOf         | Data of the term — depending on the chosen `termType`.                                                                                                                                                                                                                                 |
| `freeText`               | string        | Custom-defined, fixed text for `freeText`.                                                                                                                                                                                                                                             |
| `categoryField`          | singleAssoc   | Reference to a standard category field from `content.categoryField`.                                                                                                                                                                                                                   |
| `customCategoryField`    | singleAssoc   | Reference to a custom category field from `content.customCategoryField`.                                                                                                                                                                                                               |
| `generalMetaTitle`       | bool          | Uses the standard meta title instead of the building blocks above.                                                                                                                                                                                                                     |
| `metaDescriptionForms`   | list (object) | Building block list for the meta description — analogous to `metaTitleForms`.                                                                                                                                                                                                          |
| `separator`              | string        | Separator inserted before this term (for example `-`).                                                                                                                                                                                                                                 |
| `termType`               | enum          | Type of the term.   <br />The following values are possible:  <br />- `categoryField` — references standard category fields (for example `name`, `descr`). <br />- `customCategoryField` — references custom category fields. <br />- `freeText` — a fixed text defined in `termData`. |
| `termData`               | oneOf         | Data of the term — depending on the chosen `termType`.                                                                                                                                                                                                                                 |
| `freeText`               | string        | Custom-defined, fixed text for `freeText`.                                                                                                                                                                                                                                             |
| `categoryField`          | singleAssoc   | Specifies a standard category field from `content.categoryField`.                                                                                                                                                                                                                      |
| `customCategoryField`    | singleAssoc   | Specifies a custom category field from `content.customCategoryField`.                                                                                                                                                                                                                  |
| `generalMetaDescription` | bool          | Uses the standard meta description instead of the building blocks above.                                                                                                                                                                                                               |

***

## `seoMetaData.generalSchemes` - General SEO scheme

The `seoMetaData.generalSchemes` node defines global SEO texts and patterns. This includes default meta data for the home page and "forms" with which, for example, tab titles or snippets are assembled automatically from category / product fields and free text.

The entries in `initialTabs` are the global schemes for the individual areas. Among other things, the [`viewSchemes`](#seometadata-viewschemes-template--cms-page-meta-data) fall back on them when `generalMetaTitle` or `generalMetaDescription` is enabled there. The fifth entry then provides the view meta title, the sixth the view meta description.

<KonfigDeeplink node="seoMetaData.generalSchemes" />

#### Example configuration

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

| **Parameter**         | **Type**      | **Description**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| --------------------- | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `initialTabs`         | list (object) | List of building blocks for tabs from which the shop composes SEO texts.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `forms`               | list (object) | The individual text components that make up a tab.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `separator`           | string        | Separator inserted before this component (for example "`-`").                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `termData`            | oneOf         | Data of the term — depending on the chosen `termType`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `termType`            | enum          | Type of the term.   <br />The following values are possible:  <br />- `categoryField` — references standard category fields (for example `name`, `descr`). <br />- `customCategoryField` — references custom category fields. <br />- `productField` — references a standard field of a product (for example `name`). <br />- `customProductField` — references custom product fields. <br />- `resourceId` — inserts the identifier of the respective resource (for example a category ID, a product ID or the view name). <br />- `freeText` — a fixed text, freely assignable. |
| `categoryField`       | singleAssoc   | Value from a standard category field (for example `name`).   <br />Value from `content.categoryField`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `customCategoryField` | singleAssoc   | Value from a custom category field.   <br />Value from `content.customCategoryField`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `productField`        | singleAssoc   | Value from a standard product field (for example `descr`).   <br />Value from `content.productField`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `customProductField`  | singleAssoc   | Value from a custom product field.   <br />Value from `content.customProductField`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `freeText`            | string        | Fixed, custom text.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `startPageMetaData`   | object        | Default meta data of the home page.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `metaDescription`     | string        | Meta description of the home page.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `metaTitle`           | string        | Meta title of the home page.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |

***

## `seoMetaData.productSchemes` - Product meta data

The `seoMetaData.productSchemes` node controls how the meta title and meta description for product pages are assembled.

<KonfigDeeplink node="seoMetaData.productSchemes" />

#### Example configuration

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

| **Parameter**            | **Type**      | **Description**                                                                                                                                                                                                                                                              |
| ------------------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `generalMetaTitle`       | bool          | Enables a global meta title built from the defined building blocks if the product does not have its own title.                                                                                                                                                               |
| `generalMetaDescription` | bool          | Enables a global meta description built from the defined building blocks if the product does not have its own description.                                                                                                                                                   |
| `metaTitleForms`         | list (object) | Order of text components from which the meta title for product pages is generated.                                                                                                                                                                                           |
| `separator`              | string        | Separator inserted before this component (for example "`-`").                                                                                                                                                                                                                |
| `termType`               | enum          | Type of the term.   <br />The following values are possible:  <br />- `productField` — references a standard field of a product (for example `name`).<br /> - `customProductField` — references custom product fields. <br />- `freeText` — a fixed text, freely assignable. |
| `termData`               | oneOf         | Data of the term — depending on the chosen `termType`.                                                                                                                                                                                                                       |
| `metaDescriptionForms`   | list (object) | Order of text components from which the meta description for product pages is generated.                                                                                                                                                                                     |
| `separator`              | string        | Separator inserted before this component (for example "`-`").                                                                                                                                                                                                                |
| `termType`               | enum          | Type of the term.   <br />The following values are possible:  <br />- `productField` — references a standard field of a product (for example `name`). <br />- `customProductField` — references custom product fields. <br />- `freeText` — a fixed text, freely assignable. |
| `termData`               | oneOf         | Data of the term — depending on the chosen `termType`.                                                                                                                                                                                                                       |

***

## `seoMetaData.startPage` - Home page meta data

The `seoMetaData.startPage` node defines the SEO texts for the home page. Here you can store the meta title and meta description.

<KonfigDeeplink node="seoMetaData.startPage" />

#### Example configuration

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

#### Parameter description

| **Parameter**     | **Type** | **Description**                                                             |
| ----------------- | -------- | --------------------------------------------------------------------------- |
| `metaTitle`       | string   | SEO title of the home page (short and concise, ideally \~50–60 characters). |
| `metaDescription` | string   | SEO description of the home page (summary, ideally \~140–160 characters).   |

***

## `seoMetaData.viewSchemes` - Template & CMS page meta data

The `seoMetaData.viewSchemes` node defines how the meta title and meta description for views are assembled automatically. Views are the static shop pages (templates), for example Contact, Terms & Conditions or Imprint. The available building blocks here are a fixed text (`freeText`) and the name of the respective view (`resourceId`).

The values generated in this way serve as a default. In the Admin Interface, meta title and meta description can additionally be maintained manually per view. Manually set values are preserved and are not overwritten by the generated building blocks.

<Note>
  <ComingSoon />

  **Also applies to CMS pages from Strapi:** CMS pages created via Strapi are delivered in the shop as views. The `viewSchemes` building blocks defined here therefore also apply to those pages. The SEO details per CMS page (SEO URL, meta title, meta description, robots) are maintained in Strapi via the meta info plugin.
</Note>

<KonfigDeeplink node="seoMetaData.viewSchemes" />

#### Example configuration

```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": {}
    }
  ]
}
```

With this example configuration, the view `kontakt.htm` results in the meta title "Onlineshop | kontakt.htm". The `freeText` building block provides the fixed text "Onlineshop", the `resourceId` building block inserts the view name, and the separator `" | "` joins them.

#### Parameter overview

| **Parameter**            | **Type**      | **Description**                                                                                                                                                                                                                                                         |
| ------------------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `generalMetaDescription` | bool          | If `true`, the meta description is not built from the `metaDescriptionForms` defined here, but from the global view scheme in [`seoMetaData.generalSchemes`](#seometadata-generalschemes-general-seo-scheme). <br />If `false`, the building blocks of this node apply. |
| `generalMetaTitle`       | bool          | If `true`, the meta title is not built from the `metaTitleForms` defined here, but from the global view scheme in [`seoMetaData.generalSchemes`](#seometadata-generalschemes-general-seo-scheme). <br />If `false`, the building blocks of this node apply.             |
| `metaTitleForms`         | list (object) | Order of text components from which the meta title for templates and CMS pages is generated.                                                                                                                                                                            |
| `separator`              | string        | Separator inserted before this component (for example "`-`").                                                                                                                                                                                                           |
| `termType`               | enum          | Type of the term.   <br />The following values are possible:  <br />- `resourceId` — inserts the name of the respective view (for example `kontakt.htm`). <br />- `freeText` — a fixed text, freely assignable.                                                         |
| `termData`               | oneOf         | Data of the term — depending on the chosen `termType`.                                                                                                                                                                                                                  |
| `metaDescriptionForms`   | list (object) | Order of text components from which the meta description for templates and CMS pages is generated.                                                                                                                                                                      |
| `separator`              | string        | Separator inserted before this component (for example "`-`").                                                                                                                                                                                                           |
| `termType`               | enum          | Type of the term.   <br />The following values are possible:  <br />- `resourceId` — inserts the name of the respective view (for example `kontakt.htm`). <br />- `freeText` — a fixed text, freely assignable.                                                         |
| `termData`               | oneOf         | Data of the term — depending on the chosen `termType`.                                                                                                                                                                                                                  |


## Related topics

- [Configuration deep links](/en/admin-interface/konfigurations-deeplinks.md)
- [API reference configuration](/en/schnittstellen/admin-interface-api/api-referenz-konfiguration.md)
- [Overview - Strapi CMS](/en/strapi-cms.md)
- [Basics & architecture of Strapi](/en/strapi-cms/grundlagen-architektur-von-strapi.md)
- [API reference meta data](/en/schnittstellen/admin-interface-api/api-referenz-meta-daten.md)
