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
Click to copy

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
Click to copy

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
Click to copy

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
Click to copy

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
Click to copy

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
Click to copy

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
Click to copy

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
Click to copy

*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:

  1. Generate or prepare your custom JSON-LD structured data.
  2. In Continuum, navigate to the home.structured.data EC area.
  3. Switch the EC editor to HTML mode.
  4. 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.
  5. Publish and Save the EC area.
  6. 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:

  1. Navigate to your System Settings in Continuum.
  2. Search for the setting: google.enable.structured.data.
  3. Set the value to true.
  4. 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.