Schema.org aims to provide structured data on the web for search engines so they can better understand the content. It helps search engine crawlers understand the context of your website. And when you use it properly, you can earn certain rich features within Google SERPs. In the latest episode of Hack My Growth, we're going to be taking a look at common schema markup issues and how they can impact our websites.
Schema markup is used to help crawlers better understand the context of a web page, and in some cases, it can be used to earn rich features. A lot of people have started adding this to their website hoping that they'll get better rankings. And if done correctly, it definitely can assist in improving your rankings because it's going to help the search engines understand the page context. In some cases, it's going to give you that added advantage of a possible rich feature.
The problem is that a lot of people add incorrect markup or just start adding markup to the page without thinking about the process or the impact. It leads to confusion for the crawlers because you're giving them all of this information. You're saying, "The page is this, but it's also that, but it's also this".
And a computer is not going to be able to think through the information as a human would. It's going to look at the data and it's going to try to make sense of the data.
And when you have conflicting data, it's going to minimize trust, instead of improving it. It won't help the context. It gives the impression that these people don't know what their site is about, and they're going to move on.
1. The Wrong Type of Markup
What are some of the common issues that I typically see? Many times I'll see the wrong type of markup. For instance, somebody puts product markup on a service page or a service markup on a product page. Sometimes they'll use local markup as well as organizational markup on the same page. That could create complications.
2. Conflicting Markup
The second type is where you add markup that's not working together or helping to improve it. Instead, it's saying two different things at the same time.
3. Too Many Markup Types
Another big problem is adding too many markup types. More is not always better. Often, when it comes to adding structured data, less is better. Make sure that you have just the right markup and no more.
4. Misconfigured Markup Types
And then the last type is just misconfigured and errors created by maybe not building your JSON correctly or not defining certain types of markup.
Using the validate tool from schema.org:
This first one is an AutoNation site. It's a car site where they're selling new and used vehicles. This is their homepage. And on their homepage, they've got a postal address, which is showing up twice. They have two different types of the same information. This is redundant.
It isn't going to help them because they are doing it twice. It doesn't make sense.
They also have geo-coordinates showing up twice as well. They've also got 24 different items of cars and here they're marking up the different types of cars that are on the home page. I understand why they would want to do that. It's probably doing it from some sort of a plug-in.
What is this page about? Is it about these different cars or is it about the auto dealer? And then instead of using "auto dealer" (which makes a lot of sense, because they've got their postal address, their geo-coordinates, and information about the business), they've got it under "auto dealer," and then they've marked it as "standalone items" as well.
It could be nested under auto dealer. "Service" doesn't make a lot of sense on this page because this isn't a service page. Here we've got a number of different issues showing up on this page. There are conflicting markup and incorrect markup types on this page. We have pages that are just adding too much markup.
We've got review and aggregate review here. They've got multiple reviews, and it looks like they're just using a review plug-in. When sites use a lot of plug-ins, and each of these plug-ins is running in their own markup, you get something that looks like this. This can create a lot of confusion for the crawlers.
We don't need any of these postal- geo-coordinates. I wouldn't have these car ones. I would only have the car markup on the specific car page because that's what that page is about. For this one, I would have "auto dealer," and then I would have their address, geo-coordinates, and hours of operation, all nested in here because this type, "auto dealer," is a type of business or organization.
It's a local business markup. We could nest all of that information under here, clean this up and make it easier. We could even add reviews into this as well, especially the aggregate review here. This is one example with a number of issues that could be cleaned up and could improve the crawling of the whole site as well as the context of the site.
This is a TripAdvisor website. And as you can see, they've got both organization and local markup. And with this local markup, they've got tons of warnings here because they don't have an address. In order to be a local markup, you ought to have an address. It needs to make sense. They're getting all of these warnings here because Google's saying, "What are you trying to do?"
And what they're trying to do is tag all of these different localities that they may serve. But that's not the purpose of local markup. Local business markup is used for local businesses serving a specific local area. TripAdvisor is not a local business. In this case. They're a national business serving the entire country of Canada. And they should just have organization markup because that's the only one that makes sense, at least on their homepage.
If they've got a Toronto-based location or one of these other localities and they have a specific business location or headquarters there, then it might make sense to put that information out here. But as we see right now, they're adding a lot of confusion to the crawling of their site, because they're misusing schema.org.
This is a website that does training and subscriptions to workouts. On WordPress sites, I see many times where you've got a Web page and Web site. Here we've got the Web site, which is giving the context of the site itself and lots of information about it. And this one isn't terrible. A lot of this information could be less and under the organization, because it's talking more about the who, why, and where of the corporation itself. It's all nested under here.
And then we've got "WebSite" where we're giving some redundant information here as well. But this is typically injected using something like Yoast or another SEO plug-in. It's going to put website markup on there. You don't need "Webpage" and "Website." Pick one.
"Organization" is fine. Typically we'll either have this on the home page or the about page. The other ones are fine except for "person" because, again, this is the home page of the website, and it isn't promoting a person. You want this "person" markup nested in "organization" where it's applicable (like a CEO or a founder), or on that specific person's profile page, where you're giving information about an individual.
This is BestBuy.com. Best Buy always seems to have a lot of schema errors. It's one that I use a lot. And here we have "breadcrumbs" which is working perfectly fine for them. But then over here we've got errors when it comes to the formation of the creation of the schema.org JSON-LD file. And if we go down here, you can see here's where these issues are coming from.
I'm not exactly sure what the issues are because I haven't been able to pinpoint it deeply, but it looks like they're missing brackets. It looks like they have a poorly formulated JSON-LD code, which is causing it to break. The developers need to go take a look at this and figure out how that's being created and fix it because it's not letting this information get passed through. They've got their website here that's being impacted.
They've got their "organization" markup, their contact point. All of this is pretty important information for Best Buy so people are able to contact them and make a clear relationship between their knowledge graph entity and their website. This is a missed opportunity for Best Buy and it's something that can be cleaned up by just looking again at the code.
This is a public school system that is using markup. What they're trying to do is to have some website markup or possibly organizational markup, and they have added markup to their site, but they haven't declared the type of markup that it should be. Right now, the crawlers have no idea what they're trying to do.
They've got this markup here injected on the page. It's not technically wrong, but it is ambiguous. It's not helpful. And again, the purpose of schema.org and structured data, in general, is to provide context. Here we got in markup without context. It pretty much has no impact whatsoever on the site.
And then here is another one. It's a site that is selling a product, but this is its main page. Here we've got the web page, and it looks like this is injected from Yoast. This Web page markup looks pretty good. They've got everything that they need. It's part of the website as a whole.
Again, a web page is attached to a website. That's the correct nesting, as you can see here. It's part of a website.
The problem that comes in here is the "product." They are putting their product here and this is not necessarily the product page.
The problem that comes in here is the "product." They are putting their product here and this is not necessarily the product page. This home page is an entry page about the website. It should not be the product page because this site does have product pages and you should put the product markup on the product page. Not putting the right markup on the right page.
Again, if the whole purpose of schema and structure data is to provide context for the crawlers then we need to:
We are a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites.