> 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

# GetSiteSeoTags

# Package: seo

# Namespace: SiteSeoTagsService

# Method link: https://dev.wix.com/docs/api-reference/business-management/seo/site-seo-tags-v1/get-site-seo-tags.md

## Permission Scopes:
View SEO Settings: SCOPE.PROMOTE.VIEW-SEO

## Introduction

Retrieves a site's site-wide SEO tags.

Returns the tags you can change in `tags`, and any site verification tags added
through the dashboard in `embedTags`.

---

## REST API

### Schema

```
 Method: getSiteSeoTags
 Description: Retrieves a site's site-wide SEO tags.  Returns the tags you can change in `tags`, and any site verification tags added through the dashboard in `embedTags`.
 URL: https://www.wixapis.com/promote/seo/v1/site-seo-tags
 Method: GET
 Return type: GetSiteSeoTagsResponse
  - name: siteSeoTags | type: SiteSeoTags | description: Retrieved site SEO tags.  
     - name: id | type: string | description: Site GUID.  | read-only: true | validation: format GUID
     - name: tags | type: array<Tag> | description: Site-wide tags that apply to every page of the site.  Supported tags:  - `og:image`: Default social share image for the site. - `robots` with a `noindex` or `none` directive: Stops search engines indexing the site. - Site verification tags, such as `google-site-verification`, `msvalidate.01`, `p:domain_verify`, and `yandex-verification`. A site supports a single tag per verification provider. - Other site-wide meta tags, specified as a `name` and `content` pair.  Tags that belong to a single page, such as titles, descriptions, and canonical links, aren't site-wide. Set those with the [Item SEO Tags API](https://dev.wix.com/docs/api-reference/business-management/seo/item-seo-tags-v1/introduction.md).  | validation: maxItems 100
        - name: type | type: string | description: SEO tag type.   Supported values: `title`, `meta`, `script`, `link`.  
        - name: props | type: object | 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: meta | type: object | 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: embedTags | type: array<Tag> | description: Site verification tags that were added through the site's SEO settings in the dashboard, which stores them as HTML embeds rather than as site tags.  Returned so that a read reflects every verification tag on the site. These tags are never included in `tags`. Empty when the site has none, and also when they can't be retrieved.  | read-only: true | validation: maxItems 500
     - name: language | type: string | description: Language the tags apply to.  Site SEO tags aren't language specific: one set of tags applies to every language version of a site. Currently always empty.  | read-only: true | validation: maxLength 100
     - name: origin | type: Origin | description: What made the most recent change to the site'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 Site SEO Tags always returns `ORIGIN_UNSPECIFIED`.  | read-only: true 
         - enum:
         -     ORIGIN_UNSPECIFIED: Unknown origin. Returned by read methods, because origin isn't stored alongside the data it describes.
         -     ORIGIN_USER: A user, working in the dashboard or editor, or calling the API on their own behalf.
         -     ORIGIN_MIGRATION: The flow that imports an existing site into Wix.
         -     ORIGIN_AI: An AI agent or an automated suggestion flow.


```

### Examples

### Retrieve a site's SEO tags
The site has no verification tags added through the dashboard, so `embedTags` is empty.

```curl
curl -X GET \
'https://www.wixapis.com/seo-metatags-server/v1/site-seo-tags' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.seo.siteSeoTags.getSiteSeoTags()
 Description: Retrieves a site's site-wide SEO tags.  Returns the tags you can change in `tags`, and any site verification tags added through the dashboard in `embedTags`.
 Return type: PROMISE<GetSiteSeoTagsResponse>
  - name: siteSeoTags | type: SiteSeoTags | description: Retrieved site SEO tags.  
     - name: _id | type: string | description: Site GUID.  | read-only: true | validation: format GUID
     - name: tags | type: array<Tag> | description: Site-wide tags that apply to every page of the site.  Supported tags:  - `og:image`: Default social share image for the site. - `robots` with a `noindex` or `none` directive: Stops search engines indexing the site. - Site verification tags, such as `google-site-verification`, `msvalidate.01`, `p:domain_verify`, and `yandex-verification`. A site supports a single tag per verification provider. - Other site-wide meta tags, specified as a `name` and `content` pair.  Tags that belong to a single page, such as titles, descriptions, and canonical links, aren't site-wide. Set those with the [Item SEO Tags API](https://dev.wix.com/docs/api-reference/business-management/seo/item-seo-tags-v1/introduction.md).  | validation: maxItems 100
        - name: type | type: string | description: SEO tag type.   Supported values: `title`, `meta`, `script`, `link`.  
        - name: props | type: object | 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: meta | type: object | 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: embedTags | type: array<Tag> | description: Site verification tags that were added through the site's SEO settings in the dashboard, which stores them as HTML embeds rather than as site tags.  Returned so that a read reflects every verification tag on the site. These tags are never included in `tags`. Empty when the site has none, and also when they can't be retrieved.  | read-only: true | validation: maxItems 500
     - name: language | type: string | description: Language the tags apply to.  Site SEO tags aren't language specific: one set of tags applies to every language version of a site. Currently always empty.  | read-only: true | validation: maxLength 100
     - name: origin | type: Origin | description: What made the most recent change to the site'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 Site SEO Tags always returns `ORIGIN_UNSPECIFIED`.  | read-only: true 
         - enum:
         -     ORIGIN_UNSPECIFIED: Unknown origin. Returned by read methods, because origin isn't stored alongside the data it describes.
         -     ORIGIN_USER: A user, working in the dashboard or editor, or calling the API on their own behalf.
         -     ORIGIN_MIGRATION: The flow that imports an existing site into Wix.
         -     ORIGIN_AI: An AI agent or an automated suggestion flow.


```

### Examples

### Retrieve a site's SEO tags
The site has no verification tags added through the dashboard, so embedTags is empty.

```javascript
import { siteSeoTags } from "@wix/seo";

async function getSiteSeoTags() {
  const response = await siteSeoTags.getSiteSeoTags();
  return response;
}

/* Promise resolves to:
 * {
 *   "siteSeoTags": {
 *     "tags": [
 *       {
 *         "type": "meta",
 *         "props": { "name": "description", "content": "Handmade ceramics from a small studio in Lisbon." },
 *         "children": "",
 *         "custom": false,
 *         "disabled": false
 *       },
 *       {
 *         "type": "meta",
 *         "props": { "property": "og:image", "content": "https://static.wixstatic.com/media/a1b2c3_9f8e7d6c5b4a3210.jpg" },
 *         "children": "",
 *         "custom": false,
 *         "disabled": false
 *       }
 *     ],
 *     "embedTags": [],
 *     "origin": "ORIGIN_UNSPECIFIED",
 *     "_id": "118f445d-6b84-4268-821d-7d2b9f40ac60"
 *   }
 * }
 */

```

### getSiteSeoTags (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { siteSeoTags } from '@wix/seo';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { siteSeoTags },
  // Include the auth strategy and host as relevant
});


async function getSiteSeoTags() {
  const response = await myWixClient.siteSeoTags.getSiteSeoTags();
};
```

---