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.)
Spammy structured data for http://www.accelebrate.com/ might be dropped from search results1
To: Webmaster of http://www.accelebrate.com/,
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 accelebrate.com/.2 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
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.
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:
Mary 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.
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:
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.
Schema.org 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": "http://schema.org/", "@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" } } </script>
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.
A 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:
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.
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:
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 Schema.org
Schemas for Course – from Schema.org, 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.
Written by Anne Fernandez
Our live, instructor-led lectures are far more effective than pre-recorded classes
If your team is not 100% satisfied with your training, we do what's necessary to make it right
Whether you are at home or in the office, we make learning interactive and engaging
We accept check, ACH/EFT, major credit cards, and most purchase orders
Alabama
Birmingham
Huntsville
Montgomery
Alaska
Anchorage
Arizona
Phoenix
Tucson
Arkansas
Fayetteville
Little Rock
California
Los Angeles
Oakland
Orange County
Sacramento
San Diego
San Francisco
San Jose
Colorado
Boulder
Colorado Springs
Denver
Connecticut
Hartford
DC
Washington
Florida
Fort Lauderdale
Jacksonville
Miami
Orlando
Tampa
Georgia
Atlanta
Augusta
Savannah
Hawaii
Honolulu
Idaho
Boise
Illinois
Chicago
Indiana
Indianapolis
Iowa
Cedar Rapids
Des Moines
Kansas
Wichita
Kentucky
Lexington
Louisville
Louisiana
New Orleans
Maine
Portland
Maryland
Annapolis
Baltimore
Frederick
Hagerstown
Massachusetts
Boston
Cambridge
Springfield
Michigan
Ann Arbor
Detroit
Grand Rapids
Minnesota
Minneapolis
Saint Paul
Mississippi
Jackson
Missouri
Kansas City
St. Louis
Nebraska
Lincoln
Omaha
Nevada
Las Vegas
Reno
New Jersey
Princeton
New Mexico
Albuquerque
New York
Albany
Buffalo
New York City
White Plains
North Carolina
Charlotte
Durham
Raleigh
Ohio
Akron
Canton
Cincinnati
Cleveland
Columbus
Dayton
Oklahoma
Oklahoma City
Tulsa
Oregon
Portland
Pennsylvania
Philadelphia
Pittsburgh
Rhode Island
Providence
South Carolina
Charleston
Columbia
Greenville
Tennessee
Knoxville
Memphis
Nashville
Texas
Austin
Dallas
El Paso
Houston
San Antonio
Utah
Salt Lake City
Virginia
Alexandria
Arlington
Norfolk
Richmond
Washington
Seattle
Tacoma
West Virginia
Charleston
Wisconsin
Madison
Milwaukee
Alberta
Calgary
Edmonton
British Columbia
Vancouver
Manitoba
Winnipeg
Nova Scotia
Halifax
Ontario
Ottawa
Toronto
Quebec
Montreal
Puerto Rico
San Juan