Ask AI

Structured Data for SEO

Structured Data is data that represents the content of a web page in a format that adheres to international standards. For instance, events adhere to the Event schema: https://schema.org/Event. Some of the properties of an event are itself also standardized. Take for instance the actor in a play, that’s a Person: https://schema.org/Person.

This data is inserted in the <head> element of a page, in a type="application/ld+json” script tag:

Notion image

This data is not visible, or useful, for visitors of the website. Instead it’s intended for what we broadly call “robots”: spiders, crawlers, etc. These are systems that add feed search engines and other systems with data on the web pages they crawl. This data can be used to enhance web search results, or to create new websites that for instance link to events they found on your website. The fact that the data is structured according to a standard means that it’s unambiguous and can be reliably interpreted automatically by such systems.

We follow Google’s guidelines for what data to provide since not all properties in those standards are required or even useful:

Google also provides a tool to validate the structured data on a given URL. Note that it’s not a problem if that tool gives warnings for missing data. Not all data is required and if required data is missing it will give an error instead of a warning. Some data is simply not available or does not apply in all cases. Those warnings are just there to motivate you to provide as much data as you can.

Notion image
 

We provide various sets of structured data throughout our websites, we’ll go through all of them one by one in detail.

WebSite

This data is present on every page of the website. We provide:

  • url - the website homepage URL
  • name - the organisation name configuration value, which is also the title of the homepage

The url and name properties of course don’t provide anything the robot can’t figure out on their own, but it’s explicit and unambiguous. More potentially valuable is the potentialAction, which exposes the site’s search feature. In theory this could allow a search engine to provide a search field in their search results, or redirect users to the website’s search (e.g. if the engine can’t find a result). Note however that Google stopped providing this feature in 2024.

Organization

This data requires a PNG logo file, and therefore only works if a logo_schema.png file is present in the HTML/images directory of a site repository.

This data is present on every page of the website. We provide:

  • url - the website homepage URL
  • logo - path to the aforementioned PNG logo file

Note that Google will most likely use the information provided via the Search Console etc.. And other search engines are also not know to use this data at all. So consider this structured data, and providing the logo image optional.

Breadcrumbs

On most pages we provide simplified breadcrumbs to indicate the position of the page in the website structure. This is the breadcrumbs data on an example event page:

Notion image

This allows search engines to indicate not just the page itself (2 in the screenshot below) but also it’s parent in the breadcrumb structure (1). This is that same page but rendered in Google results:

Notion image

For themes, events and courses the parent breadcrumb is the overview page for that content. For stories the website homepage is simply provided as the parent breadcrumb. Note that Google is likely to use the actual URL structure instead of the provided structured data, as in this example:

Notion image

Course

We provide name and description, matching the name and description also used for OpenGraph data.

Page/Story

Only breadcrumbs are provided.

News (legacy)

News is will not be supported going forward, please use Stories instead.

People

People can be either an individual, or a group (e.g. a band or ensemble). For all name fields on multi-lingual sites we use the transliterated name (e.g. Tchaikovsky vs. Tsjaikovski) if applicable.

Individual person: Link iconPerson - Schema.org Type

We provide:

  • name - title, first name and surname combined
  • familyName - surname
  • givenName - first name
  • image - the OpenGraph image
  • description - the people’s description as processed for use in OpenGraph (ie. limited in length and stripped of HTML markup)

We provide:

  • name - just the name field
  • legalName - same as name
  • image - the OpenGraph image
  • description - the people’s description as processed for use in OpenGraph (ie. limited in length and stripped of HTML markup)

Theme

Only breadcrumbs are provided.

Theme Group

Only breadcrumbs are provided.

Event

We provide:

  • name - OpenGraph title of the page (a combination of title and subtitle)
  • startDate - the start date and time
  • organizer - the name of the website, and the url of the homepage
  • doorTime - the “doors open” date and time
  • eventAttendanceMode - the attendance of the production (ie. online, offline or mixed)
  • performer - requires the performer to be set on the production
  • endDate - the end date and time, if specified
  • image - the OpenGraph image
  • description - the OpenGraph description
  • location - https://schema.org/Place:
    • at minimum we provide both name and address using the value of the name of the website, e.g. “Parktheater Eindhoven”
    • if the event is linked (via the hall) to a location with a name, we use that name instead of the website’s name (while keeping that name as the address)
    • if that location also has at least both a city and a street, we replace the address with a https://schema.org/PostalAddress:
      • streetAddress - street and number
      • addressLocality - city
      • postalCode - postal code, if available
  • offers - if we have prices for the event, we also provide one https://schema.org/Offer:
    • price - the lowest price for the event (the same we use for the price range visible on the website)
    • priceCurrency - the money format currency configured in the control panel
    • validFrom - the start of sale for this event (based on the group and pre-sale settings)
    • availability - if the status of the event is “visible and bookable” then https://schema.org/InStock, otherwise https://schema.org/SoldOut
    • url - the generated direct order link for the event (may be an internal, integrated, purchase link, or an external order link), or when that’s not available the detail page of the production
Did this answer your question?
😞
😐
🤩