> From the [Strife developer docs](https://strife.app/docs/reference/field-reference/fields.serp). Every page is listed in [llms.txt](https://strife.app/docs/llms.txt).

# fields.serp()

SEO metadata block (title, keywords, description). No searchable or filterable option, unlike most other fields.

SEO metadata block. `compile()` maps it to a single `str-serp` editor, so the content index returns one object under the field's property. Output is the canonical `Serp` from `@strifeapp/types` — `{ title, keywords, description }`.

SERP fields are typically per-locale, so `localizable: true` is the common case — each locale gets its own title/description.

## Example

```ts
fields.serp({
  label: 'SEO',
  localizable: true,
})
```

## Options

| Option         | Type      | Required | Description                                                                                     |
| -------------- | --------- | -------- | ----------------------------------------------------------------------------------------------- |
| `label`        | `string`  | Yes      | Label shown to editors in Strife Studio.                                                        |
| `description`  | `string`  | No       | Tooltip shown to editors.                                                                       |
| `localizable`  | `boolean` | No       | When `true`, output is `Record<string, Serp>` instead of `Serp`. Usually `true` for this field. |
| `protected`    | `boolean` | No       | Restrict editing to users with the appropriate permission.                                      |
| `propertyName` | `string`  | No       | Override the stored property name.                                                              |

> [!WARNING]
> Unlike almost every other builder, `SerpOptions` has **no `searchable` or `filterable` option**. This isn't an oversight to work around — it's simply not implemented — but it does mean you can't make SEO title/description searchable or filterable from the DSL today.

When **Strife Intelligence** is enabled on the team, the Studio editor auto-generates title/description suggestions from the document's content. This is Studio-UI behavior with no corresponding DSL option — it's automatic based on team configuration, not something you toggle per-field.

## Output type

`Serp` (`{ title, keywords, description }`), or `Record<string, Serp>` when `localizable: true`.

## See also

* [Serp](https://strife.app/docs/reference/fields/serp.md) — the same editor, documented from the Strife Studio UI side.
