A Guide to Structured Data

brolapp
brolapp
M Posted 5 years 10 months ago
t 9 min read

Marketers, developers and search engine optimization specialists have been talking about structured data since before 2011, when Google, Bing, Yahoo! And Yandex decided to collaborate on and support an open source platform to define entities and their attributes.

This collaboration led to the creation of the Schema.org vocabulary, which has become the backbone for most structured data today. Schema is critical to SEO success, especially during a time where 0 click results are increasing rapidly. Check out this report to better understand the importance of schema and SEO.

Why should I care about structured data?

The landscape of a SERP is busy. Not only do you have to compete with your competitors for top organic listings, you also have ads, images, carousels and myriad new search result features that can keep you from getting your listing to appear in those coveted pixels “above the fold” of your audience’s screens.

Even when new features aren’t competing for your audience’s attention, you could still have problems with getting your content to stand out and grab the attention you are seeking.

This is where structured data can help. Google has been awarding enhanced search result listings, which they are now calling “rich results”, for over 10 years. I am sure you’ve all seen review ratings associated with product pages in the search results by now.

Not only does Google rely on structured data to help power those rating results, Google has expanded on the types of rich result you can get to include video snippets that can be played in the search results, recipe cards, how-to instructions, FAQ results, event details, and highlight job listings.

Studies have also shown that listings with rich results typically get more organic impressions, organic clicks, and see increased audience engagement with more time being spent on the pages.

On top of that, structured data can help you control the information presented in your brand’s Google Knowledge Panel and may even help optimize your website for voice search in Google Assistant.

Some Googlers have hinted that structured data is going to become more important to search over the next several years, if not longer – meaning now is a great time to get onboard and become comfortable understanding and speaking about structured data within our own organizations.

Now that we know why you should care about structured data, let’s start defining what it is.

What is structured data?

Simply put, structured data is any set of data that has been organized or categorized in some way.

unorganized books representing unstructured data

Example of Unstructured Data – books in unsorted piles

organized books representing structured data

Example of Structured Data – books arranged on a shelf by category and author

When we talk about structured data for SEO, we usually are referring to the combination of a specific vocabulary for defining entities and attributes (schema.org is the most commonly used) combined with a syntax for expressing the vocabulary as part of a webpage’s HTML code (JSON-LD is Google’s preferred syntax).

How do I get started with structured data on my site?

When looking to incorporate structured data on a page, I use the following workflow to guide my decisions:

  1. Review the page content
  2. Review entity types on schema.org
  3. Check Google’s Structured Data Developer Guide and Rich Result Search Gallery
  4. Create and deploy structured data code

Review the page content

Open the landing page, or draft if reviewing a page in advance of its publication, to identify the following:

  • What page type is it (homepage, recipe page, product page, blog article, FAQ, etc.)?
    • If it is a homepage, does the website have a site search function?
  • Does the page have breadcrumb navigation?
  • What is the page’s main topic or focus (entity)?
    • What are the most important topic attributes to my audience?
  • Is there a secondary page topic and how does it directly relate to the main topic?
    • Is it an offer (product offer, service offer, special discount, event offer, etc.) or reviews that can be associated to the main topic?
    • What are the secondary topics attributes that are most relevant to the main topic?

I like to compile this information into an unordered list nesting in the attribute details, like this:

  • Page type - product
    • name – ACME Anvil
    • description – The pinnacle anvil for all your needs.
    • price - $99 US dollars
    • url – https://www.example.com/acme-anvils
    • image - https://www.example.com/images/acme-anvil.jpg
    • sold by – Acme Anvil Corporation

This will prove helpful later when it comes time to create the structured data code as it will follow a similar pattern.

Now that we’ve identified the most important information we are looking to mark up, it’s time to review what entity type on Schema.org best matches my page’s main topic.

Review entity types on Schema.org

My next step in the workflow is visiting the full hierarchy of Schema.org types. This list displays the relationship between parent and child types, allowing me to quickly find relevant entity types and identify new additions to the hierarchy.

After identifying an entity type that looks like a good fit for the content I am marking up, I review the entity type documentation to understand how schema.org defines it. Most of the definitions are obvious, but some definitions don’t always align with how we might view our entity.

Credit card, for example, is defined as a specific form of service:

Thing > Intangible > Service > FinancialProduct > LoanOrCredit > CreditCard
Thing > Intangible > Service > FinancialProduct > PaymentCard > CreditCard

Credit card providers might internally refer to a credit card as a product, not as a service offering. This disconnect between how schema.org defines an entity and how we individually or as an organization define the same entity can create confusion and can lead people to select inappropriate entity types that result in less than ideal outcomes.

It also limits some of the attributes that can be used as schema.org defines a “service” differently than a “product” and may provide unique attributes for each entity type.

Remember, it’s a good idea to review the list of available attributes per entity type, even if you are very familiar with the entity type. Schema.org is a “living” vocabulary which means it is constantly growing and getting added to on a regular basis.

Once you have the list of entity attributes for each entity you are defining, it is time to move on to Google’s structured data documentation.

Check Google’s Structured Data Developer Guide and Rich Result Search Gallery

Google’s Structured Data Developer Guide is a useful tool because it gives examples of structured data markup and provides guidelines for rich result eligibility. I want to call out that Google’s documentation only focuses on the attributes used to generate a rich result. On occasion, you may see Google use attribute markup in a different way than on schema.org, which is why I like to review both websites before creating the structured data code.

From here we can also review the search gallery to see what types of content, when properly marked up, can be awarded a rich result. This list is constantly growing as Google adds more support and rich results based off schema.org vocabularies.

Google's Rich Result Search Gallery

Clicking any of the “Get started” buttons in the search gallery will take you to a rich results documentation guide that will show:

  • the required and recommended attributes to be eligible for a rich result
  • JSON-LD code examples for that rich result
  • tips on troubleshooting errors in your code
  • quick links to the Rich Results Testing Tool
  • examples of what the rich results might look like when the structured data is properly implemented.

Before moving onto implementation and writing the code, we need to ask ourselves a question.

Am I creating a “zero-click” listing, and is that okay?

Rich results can be amazing. They make us stand out from the competition, help build a brand’s reputation, and can help improve click-throughs from organic search results.

It’s important to note that there can be a downside to being awarded a rich result – the “zero-click” listing.

This phenomenon is usually a result of being featured in a quick answer at the top of a search result that thoroughly and concisely answers a searcher’s question so well that the searcher decides they don’t need to click on the result to learn more.

As Google expands into Question and Answer and FAQ rich results we could see even more questions being answered in the search result, negating the need to click deeper in the page.

Depending on the type of content your website produces, zero-click results might not be right for you. For example, content publishers could see a reduction in incoming revenue if users no longer need to click into the site to get the information they seek. Likewise, traffic to pages with frequently asked questions about products or services could decrease if people are finding answers in the search result.

Ultimately, your organization will have to determine if the zero-click result could negatively impact business. If the rich result is not a good fit, you should clearly communicate the potential impact to traffic so that everyone involved can make an informed decision.

Create and deploy structured data code

At this point we have:

  • Matched our webpage main topic to an entity on schema.org
  • Reviewed associated attributes and secondary entities
  • Identified the type of rich snippet and required attributes needed to be awarded a rich result

Now we have identified all the entities, attributes and requirements we need to write, test and deploy the structured data into our HTML.

Google’s preferred implementation syntax is JSON-LD. This syntax easy to learn for anyone already familiar with JavaScript, it makes nesting entities easy since it is not interleaved to the page text, it provides a concise block of information for search engines and web agents to consume, is the easiest syntax to troubleshoot for errors, and it is Google’s preferred syntax – so it will be my focus in this article.

JSON-LD, when paired with schema.org vocabularies, can be included in the HTML either in the <head> element of the document (most search engines expect the code to be found here), or near the closing </body> tag if concerned about the extra code negatively impacting page load times.

<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@type": "WebSite",
 "url": "https://www.brightedge.com/",
 "potentialAction": {
  "@type": "SearchAction",
  "target": "https://www.brightedge.com/search/node/{search_term_string}",
  "query-input": "required name=search_term_string"
 },
 "mainEntity": {
  "@type": "Organization",
  "name": "BrightEdge Technologies, Inc.",
  "@id": "https://brightedge.id.com",
  "logo": "https://www.brightedge.com/sites/all/themes/custom/brightedge_theme/logo.svg",
  "url": "https://www.brightedge.com/",
  "contactPoint": [{
   "@type" : "ContactPoint",
   "telephone": "1 (800) 578-8023",
   "name": "BrightEdge US & Corporate HQ",
   "contactOption" : "TollFree",
   "areaServed" : ["US", "CA"]
   },{
   "@type" : "ContactPoint",
   "telephone": "+44 203 884 0370",
   "name": "BrightEdge Europe",
   "areaServed" : ["UK", "BE", "BG", "CZ", "DK", "DE", "EE","IE", "EL","ES", "FR", "HR", "IT", "CY", "LV", "LT", "LU", "HU", "MT", "NL", "AT", "PL", "PT", "RO", "SI", "SK", "FI", "SE", "IS", "NO", "LI", "CH"]
   },{
   "@type" : "ContactPoint",
   "telephone": "+81 3 5847 8233",
   "name": "BrightEdge Japan",
   "areaServed" : "JP"
   },{
   "@type" : "ContactPoint",
   "telephone": "+61 (0) 289737441",
   "name": "BrightEdge Australia",
   "areaServed" : "AU"
  }]
 }
}
</script>

Example JSON-LD syntax with Schema.org vocabulary

It should be clear now why you should format the entity data before writing the JSON-LD code – it is very easy to create templates that allow me to copy and paste the pertinent information into the code block.

If you aren’t comfortable writing your own code, there are free online generators and third-party vendor pay tools that may be of help to you. If you’ve written your own code, or used a tool to generate the code block for you, your next step is to head over to one of Google’s structured data testing tools:

  • Google’s Structured Data Testing Tool (SDTT)
    This was the first testing tool Google released are still supporting for the time being. The tool allows you to inspect a specific URL or to copy and paste the code directly into the tool, and will highlight any missing required fields, missing recommended fields, and highlight when the code has errors.
  • Google’s Rich Results Testing Tool (RRTT)
    While not officially set to replace the SDTT yet, this tool has received most of the recent updates including providing examples of the rich results your structured data could be awarded. Much like the SDTT, you can inspect an individual URL, or you can copy and paste the code into the tool directly.

*Tip – while both tools do their best to identify syntax errors and tell you where the errors are, they are usually one line off. For example, if the tool is reporting an error on line 38 try looking for the error starting with line 37 and work your way backwards until you find it.

It is worth noting that for organizations using a CMS with plugins it is still a good idea to test your code before publishing if possible.

If you are using a CMS like WordPress or Drupal and you want to test your structured data before publishing live, you can copy and paste the HTML directly into tool. This allows you to test for errors before publishing the page.

Once you are satisfied with the test results it’s time to publish your page and track the performance. Search Console has structured data reports to let you know how many pages and how many structured data errors Google has encountered.

Since Google updates guidelines and attributes often, routinely checking the GSC rich results and structured data reports will help you stay up to date on new features, requirements and opportunities to earn rich results.

Recap

The best way to get started with structured data on your website is to:

  • Review the content on your website you want to:
    • Identify the important entities to define
    • Identify the most important attributes those entities have for your audience
  • Review the entity types on schema.org to find as close a match to your content entities as possible
  • Check Google’s Structured Data Developer Guide and Rich Result Search Gallery to identify what attributes will make your content eligible for rich results
  • Create and deploy your structured data code in JSON-LD syntax and publish your page to the internet
  • Monitor results in GSC

Though structured data is not a silver bullet that will zap you to the top of any search result, it will help search engines better understand your offerings by providing more information about your organization and the products and services you offer. ­­­

This additional information can better connect you with your target audiences by helping you stand out in search results with rich results, better control your brand’s Knowledge Graph listing, and help you optimize your site for voice search which could result in improved organic performance for your brand.

Live Event Structure Data Markup

ajenkins
ajenkins
M Posted 6 years ago
t 9 min read

Offline events have had no other option than to cancel due to COVID-19, and with good reason. In this time of crisis, safety and social distancing are of the utmost importance. However, there may still be an opportunity for event creators to "go online."

Events held exclusively online are becoming more common and perhaps you're thinking of hosting your own. If so, do yourself a favor and add this line item to your event plan - markup event pages with structured data. As you’re likely aware, using structured data helps Google understand the content of your site and may enable special search result features.

So, what structured data types do I advise? For your virtual event, consider adding both Event and Video structured data to your website. Let's review the benefits of each, confirm Google’s requirements, and then look at what implementation may look like for you:

Event Structured Data

What’s in it for you and your attendees?Event structured data following COVID-19 - BrightEdge

The event experience makes it easier for people to discover and attend events through Google Search results and other Google products. This feature brings some key benefits:

  • More interactive results: Your events can be eligible to be displayed in the event experience on Google, featuring your logo, description of the event, and more.
  • Increased chances of discovery and attendance: People have a new way to interact with your event posting and click through to your site.

(source: https://developers.google.com/search/docs/data-types/event)

NOTE: If you need to convince stakeholders of the importance of structured data, lead with this – beyond our own website, Google will also crawl/gather event details from 3rd party event websites. If their details are outdated and inaccurate (which occasionally happens), and you’re not sharing current and accurate event details via structured data, attendee experience and overall attendance may be negatively impacted due to conflicting dates and times, inaccurate pricing information, poorly written event descriptions, etc.

What are the requirements?

To be eligible for display in Google’s enhanced search results, the following properties are required:

  • location
  • name
  • startDate

The recommended properties below can be added as well. They enable a higher degree of customization within rich results and may provide a better overall user experience:

  • description
  • endDate
  • eventAttendanceMode (although not required to appear in enhanced results, for events held exclusively online, consider this a property required)
  • eventStatus
  • image
  • offers
  • offers.availability
  • offers.price
  • offers.priceCurrency
  • offers.validFrom
  • offers.url
  • organizer
  • organizer.name
  • organizer.url
  • performer
  • performer.name
  • previousStartDate

How do I implement event structured data?

Implementation is quite easy thanks to JSON-LD (Google’s preferred structured data over Microdata and RDFa). Once you’ve selected the applicable properties for your event, incorporate JSON-LD structured data snippet into the <head> section of your event page. If you’re hosting a free online event, it may look something like this:

<html>
  <head>
    <title>Our Big Event</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Event",
      "name": "The Big Company Event 2020",
      "startDate": "2020-07-21T09:00:00-07:00",
      "endDate": "2020-07-21T17:00-07:00",
      "eventStatus": "https://schema.org/EventScheduled",
      "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
      "location": {
        "@type": "VirtualLocation",
        "url": "https://theurlwhereattendeescanjoin.com/"
        },
      "image": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "description": "Join us for our big 2020 event!",
      "isAccessibleForFree": true,
      "organizer": {
        "@type": "Organization",
        "name": "Your company name",
        "url": "https://www.companyhomepage.com"
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

 

NOTE: Be sure to test the accuracy of your code snippet with Google’s Structured Data Testing Tool prior to implementation and post launch.

 

Video Structured Data

What’s in it for you and your attendees?

Livestream example for structured event data - BrightEdgeThe LIVE Badge! Google GA’d this feature in December 2018, and if you haven’t adopted, now is the time.

What are the requirements?

To be eligible for Google’s LIVE badge, nest the following properties in your VideoObject:

  • publication
  • publication.endDate
  • publication.isLiveBroadcast
  • publication.startDate

Google also clarifies that if you're adding BroadcastEvent to livestream videos, you’ll need to follow these guidelines:

  • Don't use vulgar or potentially offensive language in the structured data.
  • To make sure Google crawls your livestream video at the right time, use the Indexing API. Call the API for the following events:
    • When the video goes live
    • When the video has stopped streaming, and the page's markup has been updated to indicate the endDate
    • Whenever a change has happened in the markup and Google needs to be notified

(Source: https://developers.google.com/search/docs/data-types/video#livestream-guidelines)

To use the Indexing API, follow the steps below.

  • Complete the prerequisites by enabling the Indexing API, creating a new service account, verifying ownership in Search Console, and getting an access token to authenticate your API call.
  • Send requests to notify Google of new, updated, or deleted web pages.

(Source: https://developers.google.com/search/apis/indexing-api/v3/quickstart)

 

How do I implement video structured data?

Once again, we’ll write the JSON-LD structured data snippet and incorporate into the <head> section of our livestream video pages. The result would look something like this:

<html>
  <head>
    <title>Our Big Event 2020 Keynote - Livestream</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "VideoObject",
      "name": "Keynote Presentation",
      "description": "Tune in to hear the latest about our company!",
      "thumbnailUrl": [
        "https://example.com/photos/1x1/photo.jpg",
        "https://example.com/photos/4x3/photo.jpg",
        "https://example.com/photos/16x9/photo.jpg"
       ],
      "uploadDate": "2020-07-21",
      "duration": "T1H20M35S",
      "contentUrl": "https://www.example.com/video/123/file.mp4",
      "publication": {
        "@type": "BroadcastEvent",
        "name": "Keynote Presentation by XYZ",
        "isLiveBroadcast": true,
        "startDate": "2020-07-21T09:00:00-07:00",
        "endDate": "2020-07-21T10:20:35-07:00"
      },
      "interactionStatistic": {
        "@type": "InteractionCounter",
        "interactionType": { "@type": "http://schema.org/WatchAction" },
        "userInteractionCount": 150
      }
    }
    </script>
  </head>
  <body>
  </body>
</html>

 

That’s a wrap

I look forward to a time when mixed online/offline events are once again permitted. But in the meantime, take advantage of these structured data opportunities to boost event engagement and livestream views.

Discover the Changes in Search Due to COVID-19

gregalbuto
gregalbuto
M Posted 6 years 1 month ago
t 9 min read

As coronavirus continues to spread around the world, it has impacted how people work, socialize, and shop. In the presence of these changes, marketers want to make sure they stay abreast of the latest developments in the world of search. We encourage all members of our community to pay attention so that they can be confident that they’re creating the best possible impression with their marketing efforts and take advantage of new opportunities as they arise. Here are some interesting changes that we have seen over the past few days.

Changes from Google due to COVID-19

Intense focus on quality information

The changes we see from Google are immediately apparent when you search for anything related to COVID-19. The SERP focuses on the latest news and information from the WHO and the CDC and purposely ensures the low-quality results, such as conspiracy sites, remain off the first page of results.learn about how search has changed due to coronavirus - brightedge

Google has taken similar steps for YouTube search results, focusing on promoting top news results to ensure that users receive accurate information.

Google has also partnered with government agencies to create high-authority websites to help communicate accurate and helpful information directly to people making relevant searches.

Google’s carefully selected coronavirus SERP demonstrates the importance of high-quality information, particularly as it pertains to this disease. If your industry has been directly impacted by the closures and quarantines, make sure that any information you post related to the crisis will pass Google’s standard for high-quality relevant information.

As search continues to mature, the search engine appears to increasingly rely on authority, expertise, and trustworthiness when ranking content. We encourage our community to make sure their content meets these standards, and this shift in Google’s SERP presents a clear demonstration of their importance. As brands look to build a strong digital presence during and after the coronavirus crisis, they should continue to increase their focus on providing this level of dependability.

Adjustments in Google Ads

In addition to its efforts to steer information towards high-quality data and news, Google has also continued to uphold its ad quality guidelines. This includes making sure that people do not profit from the crisis, limiting people’s ability to create ads related to the virus or products commonly associated with the pandemic, including masks or hand sanitizer.

Google has guidelines to prevent people from ‘capitalizing on sensitive events’, and they have been enforcing this regulation during the coronavirus situation. They claim to have blocked tens of thousands of ads already since they began to enforce these rules. Brands cannot make ads that promote medical content or that might mislead customers.

discover the changes in search due to the 2020 COVID-19 pandemic - brightedge

-       Google’s Sundar Pichai on March 6, 2020

New schema markups for events and announcements

Structured data helps search engines better understand the content on a website so that information can be accurately portrayed in the search results. Recent updates have targeted the pandemic and the resulting need for information.

Improving communication with event attendees

In the face of the movement restrictions and to comply with social distancing, many organizations have canceled or otherwise modified their events. Schema.org has added properties to help these organizations inform people about rescheduled dates, the canceling of the event, or the movement of the event online.

If you need to update the status of an event because of the coronavirus, you should not make any changes to other properties of the event. Instead, simply update the status to make sure people can connect the updated event information to the original event. For example, if the event is canceled, you would write:

{
“@context”: “https://exampleevent.org”,
“@type”: “Event”,
“eventStatus”: “https://exampleevent.org/EventCancelled”,
“startDate”: “2020-05-25T20:00”
}

If the event will be postponed, remember not to change the start date. Most of the schema will look the same as the canceled example above, except the status:

“eventStatus”: “https://exampleevent.org/EventPostponed”,

When you have an official start date, then you will go back and update your start and end date information within the schema, letting people know it has been rescheduled.

On the other hand, if your event has moved online, you can use the markup to make it clear where users should go. The schema will read:

{
"@context": "https://exampleevent.org",
"@type": "Event",
"eventStatus": "https://exampleevent.org/EventMovedOnline",
"eventAttendanceMode": "https://exampleevent.org/OnlineEventAttendanceMode",
"location": {
  "@type":"VirtualLocation",
  "url": "https://livestream.webinar.com/"
 },
"startDate": "2020-05-25T20:00"
}

New announcement markups

Schema.org has also taken steps to promote markup designed to get more helpful information out to citizens regarding the pandemic and how it impacts local populations.

Specifically, they want relevant websites to use schema for special announcements related to the coronavirus that come from:

  • Government health agencies regarding updates on the disease
  • News coming from local businesses, hospitals, schools, and government offices related to the pandemic
  • Announcements about risk assessments and testing centers
  • Information regarding travel restrictions from government agencies, airlines, and hotels

You can find the Schema.org markup for special announcements here.

If you had planned on hosting an event or fall into one of the categories listed as having important, highly relevant information about the pandemic, take note of these markups. They will help you communicate more effectively with the general population.

Restrictions from online retailers

In addition to the limitations and guidelines from the major search engines, we have also seen other retailers take steps to navigate the times of the pandemic. Specifically, retailers like eBay have placed restrictions on the ability of sellers to list items related to the pandemic, such as masks, hand sanitizer, and wipes. Costco, in response to the large amounts of panic buying seen in the days and weeks leading up to the quarantines, has also placed limitations on the ability of people to return items, such as toilet paper and soap.

Continue to engage users online

We also recommend for our partners to remember that just because businesses are closing does not mean that consumers have stopped engaging with brands online. Although people might not have the buying power they once did, they are still interacting with each other and organizations through social media and internet searches. You'll want to be sure you're keeping up the right amount of online engagement with customers.

Whether you can offer free shipping, temporarily free subscriptions to a service, or simply commiseration and opportunities for people to keep themselves entertained while stuck at home, finding ways to help you connect with your customers will provide you with the strongest marketing strategy for right now.

As people across the country and around the world work to understand how to navigate this current health crisis and what it means for them moving forward, the world of search has experienced some changes. Understanding the changes we have seen from major search engines and retailers can help brands make the best possible decisions about their engagement with consumers and building a positive future for their brand.

,