Understanding Google’s Updated Structured Data Guidelines

Last March, Google revised their Structured Data Policies. While most changes were relatively straightforward and clear, a few were not. In fact, some policy changes are still not obvious no matter how many times you read over the guidelines. Fortunately, I was able to get some clarification on a few items recently during a meeting with a couple of folks from Google including one who is a member of Google’s structured data team. If you’ve ever tried implementing structured data markup on a website for yourself or for a client, I think you’ll find these two following policy changes good news.

The Use of Meta Tags

For the past few years, Google has dangled the proverbial carrot in front of us by telling us that we could get rich snippets for our content by marking it up. But we had to mark up the content in-line. We had to place the microdata tags around the actual content where it sat on the page.

But that’s not always easy. Sometimes it’s really tricky. And with so many different content management systems out there—WordPress, Joomla, Drupal, Shopify, Magento and on and on--you practically have to be a coding genius if you want to do any markup work for yourself and especially for clients.

Of course, you might be thinking that there’s always JSON-LD. After all, you can create the block of script, add it to the head section of the page and you’re done--no painful in-line marking up required. JSON-LD is a great option for many websites and Google has been recommending the use of it more and more lately. But not everyone understands how to properly create JSON-LD markups. Setting it up to automatically extract values from code such as PHP and incorporate them into the block of JSON-LD is very difficult, even for the average web developer. And as of this writing, Google does not support all rich snippet types for JSON-LD, most notably product rich snippets. So the only option in some cases is to use microdata, and now we’re back to marking up the content in-line.

Thankfully, Google heard our cries of pain. They understood that marking up content in-line was difficult at times and maybe sometimes even impossible. They saw a lot of markup errors due to improper nesting, which in turn affects if and how much data they can extract from a webpage. So to make our lives easier, it is now acceptable to use meta tags to add structured data markup to a page.

What does that mean, exactly? It means that when using microdata, instead of having to painstakingly place the tags around the actual content on the page, you can now simply create the entire markup, add it to the head or body of the page and be done. (For the record, they would still love it if we placed the microdata tags in-line, but it’s not absolutely necessary.)

However, one very important caveat—your markup must correlate with what is visible on the page. The information that you include in your markup must match the content that you’re displaying to visitors (There are a few exceptions to this rule, which are found here). If you don’t abide by that rule, then you’re leaving yourself open to a manual penalty, and the Structured Data Team does look for and take action against such deceptive tactics. So as a general rule, regardless if you’re using microdata or JSON-LD, whatever you mark up must be visible on the page.

Marking Up Third-Party Reviews and Ratings

One of the, if not THE most desired rich snippet in Google is the rating rich snippet. You know the one, the pretty orange stars under your name that makes your listing stand out. To qualify for them, you had to of course add review and rating markups to your page (but the algorithm ultimately decides if you get rich snippets or not). But you couldn’t mark up just any reviews or ratings. Google’s previous guidelines stated that the review must "be of original content that you and your users have generated and is fully contained on your page." So basically, you had to include a system on your website where your customers or clients could leave a review directly. Those were the only reviews and ratings that Google allowed you to mark up. So much for marking up and showing off your awesome rating on Yelp
But obtaining reviews from customers through any platform is hard, and who has a review system directly on their website besides ecommerce stores (and GetFiveStars clients)?

Thankfully, Google now allows us to mark up third-party reviews and ratings. So if your business has some great reviews on Google+, Yelp, Angie’s List or one of the other many review sites out there and you display the reviews and ratings on your site, you can mark them up. Of course, Google has a few stipulations if you want to do this.

First, Google wants you to show “proof” that those third-party reviews actually exist. What kind of proof? Well, for one thing, you should display at least some of those reviews on the page. You can accomplish this by, for example, using a widget that displays some of the reviews in your sidebar. Second, you also must include a link to your third-party profile where your visitors can go and read the original reviews.

What Google does NOT want to see is a small sentence in tiny text placed in your footer that states “Rated 4.9 out of 5 by 100 customers”, placed there simply for the sake of the aggregate rating markup. That’s a bad user experience and Google doesn’t like it. And as a side note, keep in mind that if you add review and rating markup to any page, it must be about a specific product, service or business. So adding the same markup to every page of your site in hopes of getting the rating rich snippet for every page is frowned upon, not to mention that’s just spammy markup.

So there it is—proof that Google doesn’t always want to make our lives difficult. They have listened and made what I feel are some positive changes in their structured data guidelines and will hopefully make your markup work a little easier.

If you have any questions, please post them below and I’ll do my best to answer them.

David Deering is the owner of Touch Point Digital Marketing Agency in New Orleans. Most of his time is spent as a web designer and SEO consultant but his interest/unique obsession is with structured data. He has helped numerous companies around the world implement markups on their websites and he can also sometimes be found on Google's Webmaster Central Forum assisting users with their structured data and rich snippet questions. Any opinions expressed are his own.

Hi David, quick question –
The idea with these markups is for online review ratings, yes? So if someone has a written review system but it’s paper based or email based and not going onto an online review system, then aggregating those reviews and adding them to the markup isn’t OK?
Or, is it OK if you then do extracts of some of those offline/email reviews and put them on your page.

Hi Margaret. Well, if you collect the reviews directly from customers such as through emails, it would be fine to post those on your site and mark them up (as long as you included all of the required properties and values, of course).

I would suggest creating a page on the website specifically for reviews where all of them could be posted and marked up. If you use the aggregate rating markup on any other page, I would recommend displaying at least a few of the reviews on the page and including a link to the page where visitors could read all of the reviews.

Something else that I would suggest doing (and this is my suggestion, not Google’s, nor is it a requirement) is to link the reviewer’s name or business name to their website or online profile. That might help Google and your visitors trust your reviews a little more because they can see that the reviewer and the business are both real. And really, that’s what it comes down to–trust. So anything you can do to establish trust in your reviews will definitely help.

Thanks so much for writing this post! It has been a hot topic of mine to figure out/dive into this past month. What I’m most curious about, and hoping you could help me with, is the data you are allowed to include in a JSON file that is not written on your website. I’m having a hard time understanding that Google Developer link in your post.

I’d love to put geo coordinates and hasMap info in my client’s JSON file, but I don’t necessarily think this is the type of information someone needs to see when visiting their website. My gut tells me that the safest bet is to put this info visible in the footer somewhere, but am hoping you will tell me differently? 🙂

Hi Rachel. Good question. When it comes to data like geo-coordinates, you don’t necessarily have to display those on the page. That type of data is provided more for the benefit of search engines and machines than for people.

I would say that including a map link within your JSON-LD block would be fine too as long as your site does display the map and/or a link to the map somewhere. And if you’re able to, it might be a good idea to include a link of the map in your footer. But even if you didn’t, I doubt that Google would ding your markup because it’s not as if you’re including the map in your JSON-LD in a sneaky attempt to get rich snippets. So I think it would be fine either way.

I’m still not convinced that marking up product/review items via meta tags will work anywhere near as consistently as inline markup.

The documentation states not to use json-ld yet, and I believe it is because they are struggling to verify the hidden markup relates to visible content. They would have the same issue if meta tags were used.

I’m often updating markup from meta tags to inline, and in the process rich snippets are shown. I will keep an eye out to see if any meta tag based pages are actually working.

Hi Tony. Well, as I mentioned in the article, there are still some instances where microdata would be the preferred choice over JSON-LD. But when implementing microdata markup, the use of meta tags is perfectly acceptable, too. If you prefer and feel more comfortable to mark up content in-line, then by all means you should continue doing so. But I myself have marked up many websites using meta tags and have seen many get rich snippets for the markups. Several factors come into play for rich snippets, but meta tags can also certainly work for them.

Thanks for the great write up! Towards the end you mention that review markup should be about a specific product, service or business. So what’s wrong with the same review snippet on every page if it’s about the business? Reviews for local businesses are not always specific to a particular service but rather for the business as a whole, and people are often satisfied that the business is trustworthy, not necessarily one specific service. And I definitely see this being done, i.e., placed in the footer to appear on every page. Are you saying Google will eventually get around to filtering it?

Hi Tony. I hear what you’re saying and you’re right–for some businesses such as restaurants, the reviews will generally be about the business itself and not specifically about a product or service. But if a business offers various products or services, best practice is to gather reviews directly about those as opposed to combining all reviews and ratings into one.

I think a common mistake many businesses (and SEOs) make is that they use the same markup on every page. Markup should be different on every page, just as the content is different. So if done correctly, the business entity won’t be the primary entity on every page; it might be one of their products or services or something else. So in that case, the business’ aggregate rating rich snippet may never appear in the SERPs for that page.

So again, adding some small text in the footer regarding the business’ aggregate rating for the purpose of marking it up is also not something that Google likes to see. And they very well may get more strict about that in the near future. So my advice to others is try to always stay away from those gray areas so that you don’t have to worry about changing the markups later on or worse, getting penalized because of them.

Thanks David, that’s good advice about staying away from gray areas for future proofing. But what sort of penalties result? Does Google just filter the rich snippets, and if you corrected the problem, would they be unfiltered?

Tony, one possible penalty is that Google will manually disable your rich snippets for the entire website. Getting them back won’t be as simple as changing the markup because now they may not trust you and it may take some time to earn their trust again. I’ve seen some sites lose their rich snippets and never get them back.

Hi Haribabu. When you do a site search, Google is simply showing you the pages it has indexed for your site and also how it interprets your markups. But if you do not see rich snippets in regular search results, the underlying reason is usually algorithmic. In short, Google may not feel that your site meets the quality guidelines that it’s looking for in order to display rich snippets. Of course, I’m only providing you with a general answer to your question and I haven’t closely examined your markups, but working on improving the quality of your website will likely help.

Great writeup, and thanks for sharing the intel. There’s a lot of disinformation about this topic out there, especially from review solution providers who want to puff up the value of their “proprietary” review content.

Now we have a resource–this article–to point to to counter the disinformation. Thank you!

We’ve offered a product for years that lets you collect reviews from around the Web and publish them to your site in structured data markup via a WordPress plugin (called “Review Stream”).

And we’ve always included links to the original review/publisher as a matter of being good Internet citizens. Good to know that matters to Big G, too!

Not only do clients love having all of their reviews from around the Web in one place, Google has historically loved it too–these pages have often earned stars in the SERPs and are still going strong after the recent changes.

Mike, in the past Google wanted any marked up content to be original to the site and more or less self-contained. But they recently lightened up on those restrictions. So for example, it’s now also permissible to mark up products that are not directly available for sale on your site. That used to be against the guidelines as well.

Thanks very much for this article. I have embedded the basic markup for Products in my e-commerce site using the JSON-LD script code.

I have a question about ratings & reviews. I know of a service that will write a Product Review of any product on my website and then post it to my website with a rating. If I buy that service for 1 or more products on my site and include the ratings & reviews markup in my JSON-LD script will Google have any problems that I have paid a service to write me a rating and review?

I know of a service that will write a Product Review of any product on my website and then post it to my website with a rating. If I buy that service for 1 or more products on my site and include the ratings & reviews markup in my JSON-LD script will Google have any problems that I have paid a service to write me a rating and review?

Glenn – if this is pay to play ie you are paying for reviews then while Google may see them as legit reviews the FTC and the State Attorney General would see them as undeclared advertising and thus illegal.

I have another questions about the Product type Brand, Name & Logo markup.

I am including the Brand Name and Brand Logo in all of my product markup. Are there any Google restrictions involved in what I choose for the Brand Name & Logo image (.JPG) ?

Also, do you know what size the Brand Logo image size should be? I am right now using a thumbnail type image in the markup in which most images are 150px wide, but I have another wider image I can use instead.

Great article – Thank you! I have a question more specific to “Articles”. How critical does Google look at the markup for Articles. On the Google Develops site, they say “a news articles should be marked up as a News Article or Blog Posting.

My company has a blog, but we post informative and educational “articles”. I used JSON-LD with our eCommerce website (3DCart) under Meta tags and for some reason the rich snippets are not showing in google searches. It’s been several weeks. I’ve tested the markup using Google’s tool and the markup comes back all good.

Hi Jennifer. It’s hard to say if Google will get picky about which Article type you use, but for the most part, NewsArticle really applies to up-to-date news stories, the ones found on, say, the New York Times’ website or CNN. If it’s an informative article, I’d probably go with simply Article. But you could always test both and see if it makes any difference in any way.

I’d be happy to try to help you figure out your markup issues, but I would need to take a look at the pages in question.

The 5 most recent posts all have rich snippets in place (including the required 700px image). But when you google search terms related to the titles, no rich snippets appear. In fact, we don’t even show up on any of the first 15 pages on a google search (when you search “What to do with ashes” – which is the exact title of one of our posts). I’m definitely confused. Any advice would be appreciated.

Hi Jennifer. Well at the moment, Google doesn’t really display rich snippets for articles with the exception of news articles, so you’re not likely to see anything in the SERPs for yours. But just a couple of suggestions…

You really should mark up the article text with the articleBody property. And from an SEO standpoint, I would recommend using the term “cremation ashes” in your title, as “ashes” is not really specific. Beyond that, just employ the usual SEO tactics–create great content and help the site become an authority in your niche and don’t forget about getting good backlinks to the site and various pages.

David, we messaged back and forth about geo-location of projects last year with no resolution. I even contacted the Schema.org peeps (volunteers) about a definition but they had now solution. To me, this is a significant “hole” in the Semantic Web – no?

Do you know of any current or future definition for geo-locating something like a kitchen remodeling or driveway paving job in a different city from the service business?

I’ve seen people hacking the basic NAP for the service delivery location but that’s a kludge.

Hi David. So would you be marking up the geo-location of a service offered or of a finished project itself? Do you maybe have an example that I can see so I can understand your goal a little bit better?

Hi, great post!
I have a question about your sentence: “What Google does NOT want to see is a small sentence in tiny text placed in your footer that states “Rated 4.9 out of 5 by 100 customers”, placed there simply for the sake of the aggregate rating markup.”

Do you have a Google source for this statement?

Also when using aggr. reviews for business from Yelp, where to place it when its not possible sitewide? The homepage usually don’t get stars in Google….

Hi Keesjan. Regarding the statement, no, I don’t believe that you will find it anywhere in Google’s guidelines or structured data documents. That came directly from someone on the structured data team as I mentioned above, so I wanted to be sure to share that with everyone here.

Generally speaking, your markup should reflect the content on the page. So if the page does not display reviews and ratings about the business, then you shouldn’t include them in your markup. The same is true if the page is not directly about the business itself. Be particularly selective where you use the aggregate rating markup, since Google is particularly keen to sniff out what they consider spammy markup when it comes to aggregate ratings.

Our website got a manual penalty after panda for spam links from a black hat seo company we had hired. (We hired them not knowing they’re tactics were bad)

Although we did get that manual penalty removed, we then lost our rich snippets at the same time… And haven gotten them back… It’s been a long time with out them! We have very good reviews marked up correctly, but they don’t show in SERP. We can’t contact Google about it, as our “reconsideration request” option was removed after they removed the penalty. I think we may need to move to a new domain. What do you think?

Hi J. Sorry to hear about your issues with a previous SEO company and your rich snippets. Glad to hear that you were able to get the penalty removed, though. But as a general rule, anytime a website gets penalized by Google, it does take a little time to regain their “trust”. Eliminating the cause of the penalty is important of course but it’s just the first step. Regaining their trust, however, may take a little time.

There are other possible reasons why your site might have lost its rich snippets. The most common reason is that the algorithm feels that your site does not meet its quality standards to qualify for rich snippets. Another reason is that the markup is not correct from a technical standpoint, although that doesn’t sound like that’s the problem in your case. But at the very least, test your markup with Google’s testing tool and make sure there are no errors. Review their guidelines so that you can make sure that your markups are meeting them. Then continue to work on improving the quality of your site. That last item is by far the most important thing you can do to help with rich snippets and with Google in general.

And I can’t say for sure without researching your domain name, but most likely abandoning your domain name and switching to another one is not the answer and it might make things even worse for you.

I have been following review rich snippets for quite some time and what I have seen is that periodically Google seems to recalibrate whose snippets shows. This has the affect that over time the percentage of results showing review stars stays about the same as some are dropped and others are added. My sense is that it is a prominence calculation and that the sites that don’t meet their prominence threshold are dropped.

That’s likely the case, Mike. As we all know, Google is constantly tweaking their algorithm. Sometimes websites are on the “borderline” in Google’s eyes when it comes to quality and authority. So those sites are the first to lose their rich snippets while other sites might gain them if the algorithm feels that they are sending more or better quality signals.

I am very new to schema and was hoping you could please give me some advice and direction regarding implementation as its not very clear on many of the sites i have been reading.

I have marked out some elements on a page that I want to markup with schema. I have written the code for these and when I test them in the structured data testing tool, i am experiencing problems. The problem I am seeing is that the schema is not being detected although the implementation looks perfect.

On the webpage I have added a WPHeader to a div which surrounds a common header for all pages. Nested within this div there is then a menu, I have applied a SiteNavigationElement tag to this. For each of the individual links within the menu I have then applied a relatedLink. Please see a code snippet below:

Is it the case that i need to apply a property to each item before Google and the structural data test tool will recognise it? I notice that if i add a div with an item property (e.g. testing) under the tag the data test tool that detects it.

To be able to add a property if using a div or span I would essentially be adding visible content to the page unless i was hiding the div and this would seem a bit dodgy. However again as you suggested i used a meta tag and applied that and it work.

Hi Mark. I can understand why you might want to mark up the main menu links, but to be honest, I’ve never seen that help a site in any way. A better option would be to mark up the breadcrumb trail using schema.org/BreadcrumbList. If you really want to mark up the main menu links, you could use ItemList and then mark up each menu item with SiteNavigationElement (each link is a SiteNavigationElement, not a relatedLink). But again, there may be little to no value in doing it that way.

What a GREAT article! Here’s my situation, perhaps you can suggest a remedy: I am a private music teacher for over 30 years. My little website is prominent, and until recently dominant among the various search engines, including Google. My single web page simply describes my services and experience, along with numerous handwritten student reviews, first published about 15 or so years ago. So, I’ve been around longer than just about anyone in my niche. To this day, it is all I need, and until recently I’ve routinely received local inquiries for my services consistently.

I’ve also been fortunate to accumulate many online reviews in more recent years, all genuinely earned from my students. I’ve maintained a true five-star rating online so far. But I now find myself competing with well-funded corporate sites, which is fine, but in the last six months or so, I now see countless five-star ratings suddenly appearing for those large and much more recent competitors. Perhaps they are legitimate reviews, but it does seem surprising (if not impossible) that they have suddenly appeared, and cannot be readily verified by any reputable third-party. Instead, these “internal” reviews are all generally created from within their own closed systems as you’ve discussed. In fact, the two primary large-scale competitors in my particular niche actually use identical review systems for self-generating their internal reviews. If one of those sites shows two hundred aggregate reviews, then the other site magically begins to show more, and so on, and so it seems these guys keep trying to out maneuver the other. For what it’s worth, in my own opinion based on decades of teaching in this geographical area, it does not even seem possible that there are enough potential students in my local area to come close to the number of reviews claimed, and particularly in such a compressed timeframe.

Meanwhile, I’m quite content with my own handful of third-party online reviews that I’ve earned (say, around 30 or so five-star reviews) posted locally on the web around my city by Google / YP/ Yelp, etc. over six years or longer, and these are all posted by my students, and easily verifiable. I now worry about the “prominence calculation” that you mention. My concern is about being dropped or lowered by Google and others, if my online activity becomes impeded or if the true market is potentially skewed by unrealistic numbers of reviews from others. So, I suppose it’s time for me to level the playing field the best I can, because since the sudden boon of these internal mega-reviews now appearing in recent months out of nowhere, inquiries for my services have diminished significantly in proportion.

So, for my single-page website that cleanly advertises a simple service along with reviews to actually appear in organic SERPs showing the aggregate rating and stars, what is the best technical method for attaching my legitimate hard-earned third-party-validated reviews from either Google or Yelp, etc. to my page, along with the aggregate rating? I would have thought that a simple link from my website to the review pages would be the most accurate and verifiable to satisfy any guidelines, or Google’s own knowledge of their reviews posted about my website would suffice for their organic search algorithm, but is that not the case? I’m not familiar with the schema.org aspect at all, so does that do any actual verification, or is it merely a recognized format? I’ve seen lot’s of HTML markup that is available online, along with all of the disinformation that comes with it, but I haven’t found any example script that shows the preferred method for attaching true third-party Google/yelp reviews (or true third-party aggregate ratings) to my page in a manner that may satisfy Google guidelines, so that the aggregate rating shows up on the various SERPs. Do you have any suggestions or links to recommend, so that I might code my pages accurately?

do you have any idea about Google’s usage of the image property in a product markup? I’ve seen screenshots from the past that show product images in SERPs but I cannot see such myself. Is this still working or Google has stopped showing product images?

And if it is still working… Do you have any idea whether only one image property should be provided in the markup or there can be more?

Hi Mihail. At this time, Google does not display images for marked up products. They did display them in the past, though, as you mentioned.

But we all know how fickle Google can be. They may very well begin displaying them again in the near future. So my advice is to include them in your product markup and be as thorough as possible with your markups so that you can be ready to take advantage of any rich snippets and features that Google decides to display in the future.