US & Canada: 877 849 1850
International: +1 678 648 3113

Accelebrate Blog


Structured Data for SEO (A True Story)

A few months ago we added structured data to all of the course pages on the Accelebrate website. What did we have to lose? Google uses this type of markup to better understand a webpage’s content and, yes, it is good for SEO. A substantial portion of our business comes directly from organic search in Google, so you can imagine my horror when I received this little gem in my inbox:

(I’ve taken the liberty of highlighting the most chilling part and adding my own commentary and explanations.)

Google Search Console

Spammy structured data for might be dropped from search results1

To: Webmaster of,

Google has detected structured markup on some of your pages that violate our structured data quality guidelines. In order to ensure quality search results for users, we display rich search results only for content that uses markup that conforms to our quality guidelines. This manual action has been applied to We suggest that you fix your markup and file a reconsideration request. 3 Once we determine that the markup on the pages is compliant with our guidelines, we will remove this manual action.4

  1. Well, $%*&.
  2. Manual actions are how Google demotes, removes individual pages, or completely removes your website from their index.
  3. Thankfully they give you a chance to fix your errors. More on this later.
  4. Actual humans at Google read your reconsideration request plea and determine whether or not to accept it. I smell a new reality show.

In this article, I will tell you what structured data is, how it is implemented, and which pitfalls to avoid so hopefully you will never be in danger of being dropped from Google’s search results due to structured data errors.

I won’t tell you if we were able to fix the problem just yet. You’ll have to read to find out. Yes, I’m shameless. In the meantime, here’s a little background to build the suspense.

What is structured data?

Structured data is a way of arranging and organizing data by isolating crucial information and formatting it in a way that makes the information easy to read and understand. As humans, we use structured data in our lives every day.

Consider this lovely invitation without structured data:

unicornMary Poppins would like to invite you to a party at the Dairy Queen in Seemore, VA, at 1 pm on Friday. This get-together is to celebrate unicorns and everyone should wear a top hat, naturally. Steel tipped boots are optional. Can’t wait to see you!

The same basic information using structured data:

Who: Mary Poppins

Where: Dairy Queen, Seemore, VA

What: A party

Why: To celebrate unicorns

When: Friday at 1 pm

How: Wear a top hat.

Image: Unicorn.jpg

In SEO terms, structured data is a type of markup on a web page used to provide information that you would like to have displayed in the search engine results page (SERPs). You may have noticed that sometimes additional details (other than name, URL, and Meta description) will pop up in your search results. For example, if you searched for a hair salon, you may see specifics such as hours, pricing, review stars, services, etc.

One way structured data can be displayed is via the Knowledge Graph Panel, which is the box on the right-hand side of the results page shown below.

Starbucks Knowledge Graph Panel

Unfortunately, you can’t be guaranteed that your brand is going to show up in the Knowledge Graph. It will only show up if Google deems it relevant based on the user’s search.

Structured data can also be displayed as a rich snippet, which is a section of your structured data that Google will show as a featured result.

Here is what a rich snippet might look like if I searched for “Butter Cookie Recipe”:


Or “Surfing Lessons.”


In small letters underneath these boxes is a link that says “About this result.” That link will bring you to a page explaining:

“Featured snippets in search

When a user asks a question in Google Search, we might show a search result in a special featured snippet block at the top of the search results page. This featured snippet block includes a summary of the answer, extracted from a webpage, plus a link to the page, the page title and URL…”

Note: you cannot mark any part of your structured data to be featured as a snippet. Google will make that determination based on the user’s search query.

Structured data can be used across a variety of sites, but it is often used for web pages displaying:

  • Articles
  • Books
  • Recipes
  • Products
  • Services
  • Events
  • Music
  • People
  • Courses (lucky for Accelebrate, this is a relatively new schema type!)

Using structured data (CORRECTLY) in your web pages is good for the overall SEO health of your website. This markup helps search engines to understand what your pages are about; therefore, it is much easier for them to determine if your site is a good match for a search query.

What Are The Standards for Structured Data? provides the framework, or vocabulary, for structured data. There are three types:

JSON-LD (recommended) – JavaScript is embedded in a <script> tag in the page.

Microdata – Special structured data HTML tags are embedded in the HTML content.

RDFa – an extension to HTML5 that allows you to publish linked data.

Google’s preferred way to add this markup is via JSON-LD, which uses JavaScript Object Notation (a compact way of expressing structured data) and is relatively simple to implement. Since JSON-LD is the type of markup Google prefers (and the type we used on our site), I will only show a JSON-LD example in this article, but here is more information on the different structured data types.

Let’s look at the course page for our Introduction to React class.


This course page, like every course page on our website, has standard features: each course page has its own course name, overview, course number, prerequisites, rating starts, etc. Here is an example of the structured data (JSON-LD) we use for this page now:

<script> type="application/ld+json">
  "@context": "",
  "@type": "schema:Course",
  "courseCode": "RCT-100",
  "name": "Introduction to React",
  "description": "React is a popular, high-performance JavaScript library for building rapidly responsive user interfaces.
  Accelebrate’s Introduction to React course teaches experienced JavaScript developers the skills they need to implement React in their applications immediately.
  "timeRequired": "3 Days",
  "coursePrerequisites": "All attendees must be experienced JavaScript developers with a fairly advanced understanding of JavaScript, including prototypes and functions as first class citizens. If your group doesn’t yet have this experience, we could readily add one or two days to the beginning of your course to appropriate prepare them.
  "aggregateRating": {
    "@type": "AggregateRating",
    "bestRating": "5",
    "ratingCount": "78",
    "ratingValue": "4.62"

Structured Data Rules and Where We Went Wrong

Now for some fun: how we messed up our structured data and how we fixed it! If you would like to wait for the movie, I would suggest you skip this section.

After receiving the email that Google had found spammy structured data on our site, I poured over the Structured Data Guidelines from Google and looked at our code.

Then this caught my eye on the guidelines page:

Some of our content was coming from our Meta tags, which of course are NOT in the HTML body or visible to the user on the page. Our course, description property was being pulled right from our Meta <title> tags.

We fixed this error so the course description in the structured data would come from the overview paragraph in the body of the HTML. This was not a very easy fix for us, but my colleague, Jason, was able to do it.

I quickly submitted the reconsideration request. I was fully expecting that Google would accept us back into the circle of trust and stop manual action against our site.

frustrationA dramatic reenactment of my reaction after the reconsideration request was rejected. I am not sure yet where I will display my Oscar.

It only took about two days for Google to send an email saying our reconsideration request had been rejected.

I knew our syntax was correct and could not find any other violations in our structured data. However, when I looked at the code in the page overall, I discovered that we had a second schema for structured data on each course page – a service schema! – which held the information we needed to display review stars at the top of each course page. The course schema is relatively new, so when we posted our structured data to show the ratings a while ago, we used the service schema. It was still there.

You do not want to have two completely different schemas on one page. No wonder Google was confused or thought we were trying to pull one over on them. We removed the service schema and made sure the rating property was properly embedded in our course schema.

This time our reconsideration request was accepted, no manual action taken.

So in a nutshell, the two rules we were violating were:

  1. Issue: The text in the structured data that was not displayed on the page (the description was coming from the Meta description).
    Fix: Made sure the description text was coming from the text displayed in the body of the web page.
  2. Issue: Had a service schema in our course pages to display our star ratings; however, we also had a course schema in those pages.
    Fix: Removed the service schema and moved the rating information to the course schema.

And They Lived Happily Ever After.

Google Search longs to understand you, and by you, I mean the structure of the pages in your website. After all, Google is obsessed with making sure that the precise, desired information gets to the searcher.

Structured Data Tips and Resources

There is no doubt that websites with structured data benefit from enhanced results in the SERPs. Structured data is THE way to classify page content and let Google know who you are and what you do. Just don’t mess it up.

Here are some structured data tips from Google:

  • Add your markup to the page it describes (so Product markup would be added to the individual product page, not the homepage).
  • For duplicated pages with a canonical version, add the same markup to all versions of the page (not just the canonical).
  • Don’t block your marked-up pages from search engines.
  • Be as specific as possible when choosing a Type to add to a page.
  • Multiple entities on the same page must each be marked up individually (so for a list of products, each product should have its own Product markup added).
  • As a rule, you should only be adding markup for content which is being shown on the page to which you add it.

As structured data has grown in popularity, there are many resources out there, but I found these to be the most helpful:

Structured Data General Guidelines – from Google

Tips to build, test, and release structured data – from Google

Structured data Testing Tool – from Google

Getting Started with Microdata – from

Schemas for Course – from, but here is the full list of schemas so you can find the one that you need.

Keywords are still important for SEO, and that will probably always be the case. However, structured data will likely have an even greater impact than keywords on search engine results going forward. I would recommend adding structured data to your web pages if appropriate for your type of website. I have faith that you will do it correctly, and so does my friend below.


Categories: SEO Articles
Tags: , , , , ,

8 Responses to "Structured Data for SEO (A True Story)"

Leave a Reply to Richard A Banks Cancel reply

Your email address will not be published. Required fields are marked *

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Please contact us for GSA pricing.
Contract #GS-35F-0307T

Please see our complete list of
Microsoft Official Courses