Adding Structured Data to Content
What is Structured Data?
Structured Data is a standardized format for providing information about a page and classifying the page content. Google uses structured data that it finds on the web to understand the content of the page, as well as to gather information about the web and the world in general.
The goal of adding Structured Data to your pages is to improve your search result ranking in Google.
What does it look like on a website?
Structured Data is a block of code that appears in the <head> of certain web content pages. You can see it if you look at the HTML source code of a page where it is rendered. It looks something like the following screen shot.
Which page types does it appear on?
Structured Data blocks will appear on:
- Articles
- Blog Posts
- Events
- Videos
- Podcasts
- Products
- Authors
- Topics
- Homepage*
Attributes - Articles
The current attributes available are:
@context
@graph
@type
@id
mainEntityOfPage
@type
@id
headline
description
image
datePublished
dateModified
author
@type
name
url
@id
publisher
@id
isPartOf
@id
articleSection
keywords
isAccessibleForFree
hasPart
@type
isAccessibleForFree
cssSelector
inLanguage
url
Note: Regarding isAccessibleForFree and hasPart, you will only see these attributes on articles that are:
- Gated
- Manually tagged with Require Registration
- Manually tagged with Require Subscription
- Tagged to a paid newsletter
- Tagged to a paid publication
Attributes - Blog Posts
The current attributes available are:
@context
@graph
@type
@id
mainEntityOfPage
@type
@id
headline
description
image
datePublished
dateModified
author
@type
name
url
@id
publisher
@id
isPartOf
@id
articleSection
keywords
isAccessibleForFree
hasPart
@type
isAccessibleForFree
cssSelector
inLanguage
url
Note: Regarding isAccessibleForFree and hasPart, you will only see these attributes on blog posts that are:
- Gated
- Manually tagged with Require Registration
- Manually tagged with Require Subscription
- Tagged to a paid newsletter
- Tagged to a paid publication
Attributes - Events
The current attributes available are:
@context
@type
name
startDate
endDate
description
location
@type
name
address
@type
streetAddress
addressLocality
postalCode
addressRegion
addressCountry
image
url
keywords
offers
@type
availability
priceCurrency
price
url
Attributes - Videos
The current attributes available are:
Videos Landing Page Template (/media/videos):
@context
@type
name
description
url
about
@type
name
logo
@type
url
mainEntity
@type
name
logo
@type
url
Video Player Template (/media/videos/play/:id:):
@context
@type
name
url
embedUrl
uploadDate
author
@type
name
logo
@type
url
interactionCount
description
thumbnailUrl
publication
@type
name
isLiveBroadcast
startDate
url
Video Galleries Template (/media/videos/:id:):
@context
@type
name
url
numberOfItems
itemListElement
@type
position
item
@type
name
url
description
thumbnailUrl
uploadDate
duration
Attributes - Podcasts
The current attributes available are:
Podcasts Landing Page Template (/media/podcasts):
@context
@type
name
description
url
mainEntity
@type
name
numberOfItems
itemListElement
@type
position
item
@type
name
url
Podcast Series Template (/media/podcasts/:id:):
@context
@type
name
description
url
hasPart
@type
name
url
Podcast Episode Template (/media/podcasts/:id:/play/:id:):
@context
@type
name
datePublished
associatedMedia
@type
contentUrl
author
@type
name
logo
@type
url
url
dateCreated
description
partOfSeries
@type
name
url
creator
@type
name
logo
@type
url
Attributes - Products
The current attributes available are:
@context
@type
name
description
brand
@type
name
image
@type
url
sku
url
keywords
dateCreated
creator
offers
@type
priceCurrency
price
availability
seller
@type
name
logo
@type
url
itemOffered
priceValidUntil
shippingDetails
@type
shippingRate
@type
price
currency
shippingDestination
@type
addressCountry
deliveryTime
@type
handlingTime
@type
minValue
maxValue
Attributes - Authors
The current attributes available are:
@context
@graph
@type
@id
name
url
image
jobTitle
description
affiliation
@type
@id
name
url
sameAs
worksPublished
@type
@id
name
@type
@id
url
name
mainEntity
@id
isPartOf
@id
inLanguage
Attributes - Topics
The current attributes available are:
@context
@graph
@type
@id
url
name
isPartOf
@id
inLanguage
description
mainEntity
@type
name
itemListOrder
itemListElement
@type
position
item
@type
@id
url
name
@type
@id
itemListElement
@type
position
name
item
*Adding Custom Structured Data to Your Homepage
You can add custom JSON-LD structured data directly to your homepage using the Editable Content (EC) area home.structured.data.
Important: Clients are responsible for generating and providing their own valid JSON-LD structured data code for this section. There are resources online for free visual schema generators, or you can prompt an AI service to generate the code. We recommend validating your code by testing it in Google's Rich Results Test or the validator at Schema.org to ensure there are no syntax errors or missing required fields.
How to Implement:
- Generate or prepare your custom JSON-LD structured data.
- In Continuum, navigate to the home.structured.data EC area.
- Switch the EC editor to HTML mode.
- Paste your code block into the EC body. Note: Continuum inserts the opening (
<script type="application/ld+json">) and closing (</script>) script tags, so don't include them in your paste. - Publish and Save the EC area.
- Clear the cache in Continuum and your web browser to view the changes in your site’s source code (the code will render inside the homepage's
<head>tag).
What about paywalled vs. non-paywalled content?
You may have read the info on this page: https://developers.google.com/search/docs/data-types/paywalled-content
ePublishing can definitely incorporate that into your Structured Data implementation. The reason it is not part of the standard solution is that paywall logic is nearly always customized for client websites. We must adapt the structured data tagging to match the rules of the particular site.
Please note that since part of this solution involves allowing the Google content bot to index paywalled content (via turning the search.engine.request.policy.enabled system setting to true after implementing the paywalled piece), we are not confident that Google will hide content in the Google cache under all circumstances. In the past, crawled paywall content has made it into the Google cache and been available through cache viewing websites.
How do I turn it on?
If you'd like to use our system-generated Structured Data templates across your site, you can turn this feature on yourself:
- Navigate to your System Settings in Continuum.
- Search for the setting: google.enable.structured.data.
- Set the value to true.
- Clear the cache in Continuum and your web browser to view the changes in your site’s source code
While enabling the setting is self-service, please keep in mind:
- Template Conflicts: Structured Data code blocks rely on site templates. If your site has custom templates or existing code modifications, the automated tags may not populate automatically or could conflict with existing markup.
- Project Manager Verification: We strongly recommend having your Project Manager review the output after enabling this setting to verify that all tags are populating correctly and no script conflicts exist.
