> ## 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 — in particular `viewSchemes` — applies not only to categories, products and the home page, but also to CMS pages created via Strapi. Such pages are delivered in the shop as views (templates) and therefore use the same `viewSchemes` building blocks for meta title and meta description.

  In addition, a meta info plugin is available by default in Strapi for CMS pages. Through it, SEO-relevant fields (SEO URL, meta title, meta description, robots) can be maintained directly per page and passed on to the shop — independently of the individual content-type modelling. 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.

#### 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   | Reference to a standard category field from `content.categoryField`.                                                                                                                                                                                                                   |
| `customCategoryField`    | singleAssoc   | Reference to 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.

#### 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` — references a category or product ID. <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.

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

#### 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, for example, templates are assembled automatically.

<Note>
  <ComingSoon />

  CMS pages created via [Strapi](/en/strapi-cms) are delivered in the shop as views, which is why the `viewSchemes` building blocks defined here also apply to those pages. In addition, SEO fields (SEO URL, meta title, meta description, robots) can be maintained per CMS page via the meta info plugin in Strapi.
</Note>

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

#### Parameter overview

| **Parameter**            | **Type**      | **Description**                                                                                                                                                                 |
| ------------------------ | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `generalMetaDescription` | bool          | Enables a global meta description built from the defined building blocks if the page does not have its own description.                                                         |
| `generalMetaTitle`       | bool          | Enables a global meta title built from the defined building blocks if the page does not have its own title.                                                                     |
| `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` — references a category or product ID. <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` — references a category or product ID. <br />- `freeText` — a fixed text, freely assignable. |
| `termData`               | oneOf         | Data of the term — depending on the chosen `termType`.                                                                                                                          |
