Skip to main content

Schema piece - WebSite

Describes a WebSite. Parent to WebPage.

Triggers

Should be output on all public pages.

Required properties

A valid WebSite must have the following properties.

  • @type: WebSite.
  • @id: The site's home URL appended by #/schema/WebSite/{{ID}}, where {{ID}} is a globally unique, stable identifier.
    • If the WebSite is the website being viewed/consumed (i.e., "this website"), then the value of {{ID}} should be 1.
  • url: The site's home URL (excluding a trailing slash).
  • name: The name of the website.

Failure scenarios

If any of the required fields are missing or invalid, the node should not be output.

Optional properties

The following should be added whenever available and valid:

  • publisher: A reference-by-ID to the node representing the entity which publishes the WebSite.
  • potentialAction: A SearchAction object describing the site's internal search.
  • inLanguage: The language code for the WebSite; e.g., en-GB.
  • If the website is available in multiple languages, then output an array of inLanguage values.
  • description: A description of the website (e.g., the site's tagline).
  • alternateName: An alternate (usually shorter) name for the website.

Examples

Minimum criteria

{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://www.example.com/#/schema/WebSite/1",
"url": "https://www.example.com",
"name": "Example website"
}
]
}

Extended criteria

{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://www.example.com/#/schema/WebSite/1",
"url": "https://www.example.com",
"name": "Example website",
"alternateName": "Example.com",
"inLanguage": "en-US",
"potentialAction": {
"@type": "SearchAction",
"target": "https://www.example.com/?s={search_term_string}",
"query-input": "required name=search_term_string"
},
"publisher": {
"@id": "https://www.example.com/#/schema/Organization/1"
}
}
]
}

WordPress API: Change Website Schema output

To make changes to the Website schema that Yoast SEO outputs, you can use our wpseo_schema_website filter. Here is an example:

add_filter( 'wpseo_schema_website', 'example_change_website' );

/**
* Changes Website Schema data output, overwriting the name and alternateName.
*
* @param array $data Schema.org Website data array.
*
* @return array Schema.org Website data array.
*/
function example_change_website( $data ) {
$data['name'] = 'Yoast';
$data['alternateName'] = 'Yoast.com';

return $data;
}

To change the SearchAction output, please see its API documentation.

To make more changes to our Schema output, see the Yoast SEO Schema API.