> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# Resource: Item Seo Tags V1

# Type: Item Seo Tags Object

# Link: https://dev.wix.com/docs/api-reference/business-management/seo/item-seo-tags-v1/item-seo-tags-object.md

## Description: The SEO tags of a single item on a site, such as a page, a blog post, a store product,
or a bookings service.

An item is addressed by an item type and an item ID together. Item SEO tags always
exist for a valid item: when the item has no tags of its own, it inherits them, and
`resolvedTags` reports the tags the item is expected to render with.

## Schema:

```json
 Type: Item Seo Tags Object | type: ItemSeoTags
 Description: The SEO tags of a single item on a site, such as a page, a blog post, a store product,
or a bookings service.

An item is addressed by an item type and an item ID together. Item SEO tags always
exist for a valid item: when the item has no tags of its own, it inherits them, and
`resolvedTags` reports the tags the item is expected to render with.
       - name: id  | type: string | description: Item SEO tags ID, in the format `{itemType}:{itemId}`.
           - name: value  | type: string | description: 
       - name: itemType  | type: string | description: Type of item the tags belong to. For example, `STATIC_PAGE`, `BLOG_POST`, or `STORES_PRODUCT`.  For an item on a page built from a Wix Data collection, the item type takes the form `WIX_DATA_PAGE_ITEM-{pageId}`.
       - name: itemId  | type: string | description: ID of the item the tags belong to. For a static page, this is the page ID.
       - name: tags  | type: Array<Tag> | description: Tags set for this item alone, which take precedence over the tags it would otherwise inherit.  Empty when the item has no tags of its own.
           - name: type  | type: string | description: SEO tag type.   Supported values: `title`, `meta`, `script`, `link`.
           - name: props  | type: Struct | description: A `{"key": "value"}` pair object where each SEO tag property (`"name"`, `"content"`, `"rel"`, `"href"`) contains a value. For example: `{"name": "description", "content": "the description itself"}`.
               - name: fields  | type: object | description: 
           - name: meta  | type: Struct | description: SEO tag metadata. For example, `{"height": 300, "width": 240}`.
           - name: children  | type: string | description: SEO tag inner content. For example, `<title> inner content </title>`.
           - name: custom  | type: boolean | description: Whether the tag is a [custom tag](https://support.wix.com/en/article/adding-additional-meta-tags-to-your-sites-pages) — i.e. an entry from the site's Advanced/Custom Tags list.  This flag is scoped to that feature only. It is NOT an indicator of whether a standard tag (`title`, `description`, Open Graph, etc.) reflects a manually configured value versus a computed default/pattern — standard tags always resolve with `custom: false`, even when their content comes from a page's manually saved SEO title/description override. Don't use this field to verify whether a live page reflects a manual per-page SEO edit.  Limitation: when `ResolveStaticPageSeoTags` is called without `seoData`, the per-page SEO data is read only from the Vibe/Wix-managed-headless override store. That store holds nothing for classic Wix Editor or Wix Studio pages, so even genuine Advanced/Custom Tags saved on those pages are missing from the response entirely — there, `false` means this API could not tell, not that no custom tag exists. Pass `seoData` explicitly to resolve against a known set of tags.
           - name: disabled  | type: boolean | description: Whether the tag is disabled. If the tag is disabled, people can't find your page when searching for this phrase in search engines.
       - name: focusKeywords  | type: Array<Keyword> | description: Keywords the item's content is intended to rank for. Used by Wix's SEO tools to assess the item's content; they aren't rendered on the page.  Mark the item's main keyword with `isMain` rather than relying on its position in the list.
           - name: term  | type: string | description: Keyword value.
           - name: isMain  | type: boolean | description: Whether the keyword is the main focus keyword.
           - name: origin  | type: string | description: The source that added the keyword terms to the SEO settings.
       - name: hasOverride  | type: boolean | description: Whether the item has tags of its own, as opposed to inheriting them.  `false` doesn't mean the item shows Wix's built-in tags: it may inherit from the pattern for its item type, from the site's tags, or from the page that hosts it. See `resolvedTags` for the tags the item is expected to render with.
       - name: resolvedTags  | type: Array<ResolvedTag> | description: The tags the item is expected to render with, each marked with where it came from.  Derived by combining every source Wix manages, so it reflects inherited tags as well as the item's own. Tags that site code, apps, or page components add while the page renders aren't included, so this isn't a literal copy of the page's rendered head.  If a tag's source can't be determined, the tag is still exact but its `source` is `TAG_SOURCE_UNSPECIFIED`.
           - name: tag  | type: Tag | description: Resolved SEO tag.
           - name: source  | type: string | description: Where the tag came from.
               enum: TAG_SOURCE_UNSPECIFIED, TAG_SOURCE_SITE, TAG_SOURCE_DEFAULT_PATTERN, TAG_SOURCE_USER_PATTERN, TAG_SOURCE_HOST_PAGE, TAG_SOURCE_ITEM
       - name: hostPageId  | type: string | description: ID of the page that displays the item, for items shown on a shared page, such as a blog post or a store product.  Informational: the hosting page can't be addressed through this API.
       - name: publishStatus  | type: string | description: Whether the item's SEO tags are live on the published site.
           enum: PUBLISH_STATUS_UNSPECIFIED, PUBLISH_STATUS_PUBLISHED, PUBLISH_STATUS_NOT_PUBLISHED
       - name: language  | type: string | description: Language the tags apply to, as an IETF BCP 47 language tag. For example, `en-US` for U.S. English.  Tags can currently be written only for the site's primary language, so leave this unset on a write. Sending a language fails with `LANGUAGE_NOT_SUPPORTED`.
       - name: origin  | type: string | description: What made the most recent change to the item's tags, for example a user or the site migration flow. Derived from the caller, not from the request.  `ORIGIN_UNSPECIFIED` when the caller isn't one Wix identifies as a specific origin. Origin isn't stored with the tags either, so Get Item SEO Tags and List Item SEO Tags always return `ORIGIN_UNSPECIFIED`.
           enum: ORIGIN_UNSPECIFIED, ORIGIN_USER, ORIGIN_MIGRATION, ORIGIN_AI

```