Home » SEO » How to Manually Add Review Schema Markup to a Review Article

How to Manually Add Review Schema Markup to a Review Article

Last updated:October 22, 2019

Please note that I may earn a small commission from purchases made through product links in this article at no extra cost to you. I only recommend products that I have personally used and tested.

When you publish reviews of products on your website, it’s crucial to also include structured data markup along with the reviews.

Google will use that schema markup to reward you with the Review Snippet in the search results, which will greatly increase the CTR to your site.

You can either use a WordPress plugin to add that structured data to your content, or you can do it manually. This article explains the manual way, which is my preference.

Update October 2019:
The guidelines around the Review Schema type appear to have changed, causing product review articles on almost all websites to throw errors in the Structured Data Testing Tool.
I have updated this article with new Review Schema code that passes the test and doesn’t throw errors, but there are still warnings related to Product Schema type. Feel free to leave a comment, or email me directly, if you are still seeing errors.

Why Not Use a WordPress Plugin?

There are lots of plugins out there that can do this job for you, with very little hassle. But I personally prefer to do this manually.

Here’s why:

1. Plugins Add Bloat and Risk

Okay, we all need and use plugins. I’m not a plugin hater. I use plugins too. But if I can avoid using a plugin for a specific task, then I will.

With each and every plugin you install, no matter how well-developed and lightweight they are, you are adding some level of bloat to your site. And not just that, you’re also adding risk.

Plugins are the number one reason why WordPress sites get hacked. Losers that hack sites are always looking for vulnerabilities in plugins to find back doors into your site.

This is why I will always say, the less plugins, the better.

2. HTML Issues

Plugins that generate a visual representation of the structured data markup often present this info in HTML that isn’t the cleanest, and often throws in header tags that break the page hierarchy.

I hear you say: “Dude, who cares?”

Well, I care, because I am super picky about the HTML that my content spits out. Some people are obsessed with Moz DA, others are obsessed with Google PSI, and I am obsessed with clean HTML.

I want to have clean HTML, to make it as easy as possible for the search engines to interpret my content. I also don’t want to break the H1/2/3/4/5 header tag hierarchy, because of that very same reason.

So if you prefer to use a plugin to generate and visually display Review Schema markup data, by all means, go ahead. Some plugins do the job really well, but I simply prefer to manage this manually.

Step 1: Create a Simple HTML Table

Once you have completed your review article, manually add a simple HTML table that will include all the data that you want captured in the Structured Data markup output.

To keep things simple, create a table that includes the following:

The name of the product being reviewed

A short summary of the review

The author of the review

The rating of the product

Here’s a screenshot of the HTML that I have added to my review of GeneratePress:

I’ve also added some CSS styling to make the table look a bit prettier. As you can see, pretty basic stuff, but it looks nice and clean. At the end of the day, you’re free to make it look as fancy as you like, entirely up to you.

Note that the rating says “out of 5”. I do this on purpose because this is a required field in the Review Structured Data type and will ultimately be displayed in the SERPs.

The idea is, everything you include in your structured data markup, MUST be displayed somewhere in the content.

Step 2: Write Structured Data Code

The next step is to write a very simple piece of script that will add the Review data elements as Schema markup in the article.

The data elements in the Schema markup need to be the same as the data in the table you created in step 1.

For reference, check out Google’s documentation on the Review snippet with guidelines and several markup code examples.

It’s important to point out that if you violate any of their guidelines, you may end up with a manual penalty. There have been several cases of Review snippet abuse in the past, so make sure you don’t break any rules.

I am using the JSON-LD variant to write the Schema markup as opposed to Microdata, because JSON-LD is the preferred method.

Most WordPress themes will allow you to add script to Blog Posts. I am using the GeneratePress theme in my site, so I am using a Hook Element to insert script into my review post.

Here is a screenshot of that piece of script:

As you can see, it’s not very complicated script at all. And I’ve formatted it such that it’s easy to copy and re-use for future review articles. Simply replace the values of the different data elements and you’re good to go.

It works in a similar way, but this tool also lets you see what the the structured data markup (provided it’s valid) would look like as rich results in the Google SERPs.

As mentioned above, the code still triggers warnings. Some of these warnings can be ironed out by including the missing fields. I will keep monitoring how the Review Schema type evolves, and make adjustments to the code where necessary.

​JOIN BLOG PIONEER

​Subscribe now and learn how to grow your ​blog into a thriving business with effective SEO and monetization strategies.

The Results

To speed things up, I recommend you request a priority indexing of your review article in Google Search Console. This way you’ll see your Review Snippet appear sooner rather than later in Google’s search results.

If the item you’ve reviewed is a product, you will see it listed in Search Console under Enhancements – Products, like so:

And this is what it looks like in the Google search results:

Awesome!

Final Thoughts

Hopefully this article has motivated you to add structured data to your review articles. You’re selling yourself short if you don’t, as it’s becoming standard practice.

Whether you want to use a plugin to do this, or do it manually, that is of course entirely up to you. I prefer the manual way, which requires a bit more maintenance, but is the cleaner solution in my opinion.

Fun fact:
I’ve added HowTo Schema markup to this article. Manually, of course. Check it out in the Google Structured Data Testing tool!

I’m using GP and have some questions about implementing Schema Markup.
I read in GP forum that GP adds basic Microdata by default, but you can turn it off with a PHP function.
Do you did that before implementing the Review Schema Markup?
If I’m talking nonsense, I apologize in advance. I just want to understand it (I’m very noob).

I would like to know whether we can add JSON-LD schema markup code to blog post in Thesis Framework and Effectus Skin. If the theme allows adding “script” to blog posts, can we add JSON-LD code without errors. BTW, how to display JSON-LD mark up code in the front end, in general.

Unique post here explaining manual process for schema markup. I have not seen anything like this before and is as usual, high quality for explaining the process and reasons behind the method. Thank you AJ

How did you turn the default generate press schema markup off manually?
I am using rank math, it is also offering Schema markup, I want to turn off schema markup.

And can you please guide me. I am getting an error in Schema testing tool.
I was using other MyThemeShop theme earlier with Schema Pro plugin and Rich Snippets was coming in Google search, but suddenly after migrating to generate press, I am getting Error in google structured data testing tool:
“Thing is not a known valid target type for the item reviewed property.”

First I was happy that I found the HTML code for Review articles here.
But then I implemented on my review article and during the testing boom, I see ERROR:
“One of offers or review or aggregateRating should be provided.”

Actually when I tested this Structured Markup on your GeneratePress review article you got the same ERROR which should be visible also in your Search Console.

Yes, you’re right Mario.
It seems that the guidelines have changed this month, because that very same error is popping up on most sites that use the Review Schema type.
This problem is on my todo-list to fix, so stay tuned.

Question: Can I skip the step of creating the HTML table, and just paste the script at the bottom of article? I tested skipping the first step and it works, but ain’t sure if Google will be happy in the long run.

BTW This article of yours is quite unique, no one on the web has published this and I searched up to Google page 10 in SERPs. 🙂

Could you write another article how to add script manually for HOW TO schema and ARTICLE schema please?

I may write an article about manually creating HowTo Schema. The issue is though that HowTo Schema code is a lot more complicated than Review Schema, so it doesn’t lend itself very well for a manual approach.

But I’ll see what I can do.

In regards to your question about skipping the first step, you can certainly skip creating that table, but the problem is that all the information in your Schema code needs to be present in the content somewhere, for people to see.

Hi AJ,
Another question/s from me today. Is using a table plugin OK for adding HTML tables, or should it only be manual? Not looking for a plugin vs manual discussion as I understand the need for less plugins etc, just more about the output of HTML and whether it is the same. Also, just wanting to make sure I understand this…. if I add review schema, I DON’T need to adjust anything else on my site anywhere? Thanks.

Yes it’s perfectly fine to use a plugin to add tables to your content. I have a tech background, so I don’t mind doing a bit of coding, but for the average blogger it’s probably easier to use a plugin. However, if you’re asking this in the context of adding a review table + schema markup, the plugins that do this for you don’t actually generate proper HTML tables, rather they generate a set of DIVs and other HTML elements to present the review info. Nothing wrong with that, but I much prefer to have a clean HTML table.

In regards to your last question, you don’t need to adjust anything. Just add the code as per above, or use a plugin, and the Schema markup will be generated for you. One thing to keep in mind though is that with the changes to Review schema markup Google has implemented in the last months, some of these plugins don’t actually generate valid Schema, and as a result Google won’t show rich snippets in the search results.

Thanks AJ, all makes perfect sense. I have a business background, with some tech (but not coding) so have tried to teach myself as much as I can when I started working in this world. I originally started out doing my own tables but then got lazy 🙂 . The info you’ve spelled out re table + schema is what I was trying to ask so that answer makes sense and I suspected as much. Noted re latest changes also.

Hi there, I’m AJ, a corporate IT nerd turned digital marketing pro, specializing in SEO and content strategy. I am using Blog Pioneer to help you achieve success online by sharing some of my knowledge and experience.Read more…