How do I fix missing Filed "id" error from Google? missing data - breadcrumbs

I use Structured Data on my site including breadcrumbs. I received multiple warning emails from Google Webmadter tools stating the following errors were found:
Missing Filed "id"
Missing Filed "position"
On review of the structured data, both tags are present. Has anyone encountered these errors and, if so, what was your resolution?

An initial visual check of the structured data suggested all markup was correct.
I then double checked using Googles Structured data testing tool https://search.google.com/structured-data/testing-tool, this flagged odd errors.
The error is generated due to old markup code. The structured data needs to be updated. Specifically, in for these errors:
Change the "property" tag to "itemprop"
This resolved the errors for me: https://us.icalculator.info/salary-comparison-calculator/south-dakota.html
I thought I would share as I know many will wake up to those notifications and, like me, panic. I actually noticed a drop in traffic in relation to this so there are likely SEO components that suggest a quick fix is necessary, I hope it helps.
for info, I use Microdata:
<ol itemscope itemtype="http://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope
itemtype="http://schema.org/ListItem">
<a itemprop="item" href="https://example.com/dresses">
<span itemprop="name">Dresses</span></a>
<meta itemprop="position" content="1" />
</li>
<li itemprop="itemListElement" itemscope
itemtype="http://schema.org/ListItem">
<a itemprop="item" href="https://example.com/dresses/real">
<span itemprop="name">Real Dresses</span></a>
<meta itemprop="position" content="2" />
</li>
</ol>
See the structure here: https://schema.org/BreadcrumbList
I dont claim to be an expert on Structured data, in fact I believe this should be automated by the search engines really, its just another layer of code that slows sites. Anyway, I put as a question so that those with more knowledge etc can expand on the info as needed. I have split this to a separate question and answer as suggested.

Related

It seems schema.org/Review is not recognized by Google Search anymore or I made a mistake

I have received a message a couple of days ago that Google Search Engine has a problem identifying my ObjectType 'ItemReviewed'.
I am a collaborator on a moviesite and implement schema.org to my reviews.
<div itemprop="review" itemscope itemtype="http://schema.org/Review">
<span itemprop="reviewBody">
<span itemprop="itemreviewed">Title of the movie</span>
<IMG>itemprop="image"</IMG>
<img border="0" src="https://example.com/wp-content/img/30star.png" alt="rating" />
<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"><meta itemprop="worstRating" content = "0"/>Rating: <span itemprop="ratingValue">3</span> / <span itemprop="bestRating">5</span></div>
Review by <span itemprop="author">Selina</span> op <meta itemprop="datePublished" content="2020-02-13">13 februari 2020<p></div>
Can anybody help me. It worked fine for years up until a few days ago.
NOTE: I know google has recently changed the markup for businesses so the rating is not something self-serving, but this a movieblog and the ratings are rating the movie not the website. Should I use another markup?
We are talking about genuine, independent, and unpaid editorial reviews
Google recently started to report on reviews.
In your case you have marked up itemprop="review" outside the scope of an item. Which is invalid unless you did not share all the code?
You've also marked up itemreviewed. It should be itemReviewed with capital R. You should not place the review in another item and use itemReviewed at the same time. They are different ways to do the same thing.
Your itemReviewed is just some text. This is interpreted as it being a 'Thing'. Google only supports reviewing a very restricted list of types, where a basic Thing is not included:
https://developers.google.com/search/docs/data-types/review-snippet
Movie is on the list, which I suspect is what you are reviewing. So you need to mark up your Movie and either place the review inside that with the property review, or place the Movie inside your review with the property itemReveiwed.
does this code looks 'ok' to you or should I add something else, cause there are a lot properties and I would like to have a minimum amount of them, cause I will have to make changes to up to 1000 movie reviews.
<div itemscope itemtype="http://schema.org/CriticReview">
<div itemprop="itemReviewed" itemscope itemtype="http://schema.org/Movie">
<span itemprop="name">movie title</span>
<span itemprop="director">Alfred Hitchcock</span>
<meta itemprop="datePublished" content="2020-02-19">19 februari 2020</meta>
<img itemprop="image" src="https://example.com/wp-content/img/img_2004_blu-ray.2.jpg"/>
</div>
<span itemprop="author">name of the author of the review</span>
<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
<meta itemprop="worstRating" content = "0"/>
Rating: <span itemprop="ratingValue">1</span> / <span itemprop="bestRating">5</span>
</div>
Second question, should I use meta tags or span tags, or doesn't it matter?

Google Structured Data Testing Tool doesn't recognize 'organizer' as a property of 'schema.org/Event'

I'm trying to mark up an Event with schema.org Microdata, but when I test with Google's Structured Data Testing Tool I get told:
Error: Page contains property "organizer" which is not part of the schema.
But organizer is part of the schema: http://schema.org/organizer
Here's a simple example of the markup:
<div itemscope itemtype="http://schema.org/Event">
<p><span itemprop="name">My Birthday</span>
on <span itemprop="startDate">17 September 2014</span></p>
<div itemprop="organizer" itemscope itemtype="http://schema.org/Person">
<p>Organized by <span itemprop="name">ME</span></p>
</div>
</div>
Is it a Google error? Am I making a stupid mistake?
Discovered that 'organizer' is a feature of schema.org 1.7 from circa Jul 2014 : http://lists.w3.org/Archives/Public/public-vocabs/2014Jul/0012.html
It seems Google isn't keeping up...

Blog Posts Optimized by Schema

I am quite new to these approach in optimizing my HTML with Rich Snippets. I am not sure what is the differences of each of the list items below:
http://schema.org/Article
http://schema.org/BlogPosting
http://schema.org/Blog
I got this code below example below, and I want to know what are the missing items or codes that could optimized a simple blog post that search engines can understand. I'd like to know all the rich snippets available for a blogpost.
<div id="blog_post" itemscope="" itemtype="http://schema.org/BlogPosting">
<h2 itemprop="name headline">Post Title</h2>
<div class="byline">
Written by
<span itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<span itemprop="name">
Author
</span>
</span>
on
<time datetime="2011-05-17T22:00" itemprop="datePublished">Tuesday May 17th 2013</time>
</div>
<div class="content" itemprop="articleBody">Content...</div>
</div>
http://schema.org/Blog can be used on the front page, where you typically find a list of several blog posts (and maybe also for blog-wide things on every page, like the blog name).
http://schema.org/BlogPosting represents a single blog post.
http://schema.org/Article is just more general than http://schema.org/BlogPosting (every BlogPosting is a Article, but not every Article is a BlogPosting). If you have a typical blog, you want to use http://schema.org/BlogPosting.

how to use schema.org metadata on a review for multiple ratings?

I need to markup the review metadata for a product, but the review will have multiple ratings like service, satisfaction, quality, lifetime etc in the original schema.org documentation for review (http://schema.org/Review) there is only property/field: reviewRating using this i can only use it for one field but i need to provide metadata for all the fields, is there a solution for that?
Thanks.
Actually one property isn't an issue here since it can be used multiple times. There were a lot of discussions around cardinality of schema.org properties. You can dive into details here (issue at open tracker) and here (W3C Wiki page).
I personally follow the rule stated by Guha:
Right now, it is always allowed to have multiple values.
Another part of your question is how to describe different ratings. You can use mechanism of "multiple inheritance" like in "serious" programming language. That is one entity may have several types. In your case one type will be http://schema.org/Rating and another (quality, service, etc) you can get from any external to schema.org vocabulary. E.g., productontology is a good candidate (you can use http://www.productontology.org/id/Quality_philosophy, http://www.productontology.org/id/Customer_service accordingly). With RDFA you can just go with it - language itself provides all the necessary mechanisms to say that. But for microdata (and I bet you're using this one) you need to do "dirty hack" and use additionalType property.
So simple example of what you need is smth like this:
<div itemscope itemtype="http://schema.org/Review">
<span itemprop="name">Not a happy camper</span> -
by <span itemprop="author">Ellie</span>,
<meta itemprop="datePublished" content="2011-04-01">April 1, 2011
<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
<meta itemprop="additionalType" content="http://www.productontology.org/id/Quality_philosophy">
<meta itemprop="worstRating" content = "1">
<span itemprop="ratingValue">1</span>/
<span itemprop="bestRating">5</span>stars
</div>
<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
<meta itemprop="additionalType" content="http://www.productontology.org/id/Customer_service">
<meta itemprop="worstRating" content = "1">
<span itemprop="ratingValue">5</span>/
<span itemprop="bestRating">5</span>stars
</div>
<span itemprop="description">The lamp burned out and now I have to replace
it. </span>
</div>
And Google validator sees all the data.

RDFa with schema.org Blog schema

I'm having trouble figuring out if I've done things right with RDFa and the schema.org Blog type. My blog used to have a list of posts that looked like this:
<h2>Why ORM Divides Us</h2>
<h2>A Heretical Calculus</h2>
In trying to augment it with RDFa information, specifically the Blog and BlogPosting types, I have come up with this:
<div vocab="http://schema.org/" typeof="Blog">
<h2 property="blogPosting" typeof="BlogPosting" resource="essays/why-orm-divides-us.html">
<a property="url" href="essays/why-orm-divides-us.html">
<span property="name">Why ORM Divides Us</span>
</a>
</h2>
<h2 property="blogPosting" typeof="BlogPosting" resource="essays/heretic-calculus.html">
<a property="url" href="essays/heretic-calculus.html">
<span property="name">A Heretical Calculus</span>
</a>
</h2>
...
As far as I can tell with Google Rich Snippets Testing Tool, this looks like it parses right, but I can't really tell. I have two other tries:
<div vocab="http://schema.org/" typeof="Blog">
<h2 property="blogPosting" typeof="BlogPosting" resource="essays/why-orm-divides-us.html">
Why ORM Divides Us
</h2>
<h2 property="blogPosting" typeof="BlogPosting" resource="essays/heretic-calculus.html">
A Heretical Calculus
</h2>
...
<div vocab="http://schema.org/" typeof="Blog" rel="blogPosting">
<h2 typeof="BlogPosting" resource="essays/why-orm-divides-us.html">
<a property="url" href="essays/why-orm-divides-us.html">
<span property="name">Why ORM Divides Us</span>
</a>
</h2>
<h2 typeof="BlogPosting" resource="essays/heretic-calculus.html">
<a property="url" href="essays/heretic-calculus.html">
<span property="name">A Heretical Calculus</span>
</a>
</h2>
...
So I'm asking for several pieces of information:
How do you tell if you've achieved conformance with one of these schemas?
Which one of my alternatives is right, and why?
Why do I seem to need to specify the resource directly when I'm on a link?
Why does the <a> tag parse so differently in the RDFa demo tool and the Google Rich Snippets Testing Tool?
Your first snippet is correct and I'd recommend to use it. The second one is incorrect, as the property="name" will target the href value, so don't use that one. The third one is also correct, and uses a more advanced feature of RDFa called chaining (via the rel attribute). It's perfectly valid to use that one if you prefer, Google understands it too.
I'm not aware of any official schema.org validator, but Google Rich Snippet will sometimes tell you if something is wrong (not always though). You can also validate your HTML + RDFa markup with http://validator.w3.org/nu/ and http://www.w3.org/2012/pyRdfa/Validator.html.
your first and third are correct, the second one is wrong (see above). I'd recommend the first one.
well, the url of the link is used for two purposes, first it is used to identify you object on the web, and it's also explicitly used for the 'url' property that schema.org requires. Although the second is a schema.org specific property.
That's something that Google adds on top of the RDFa syntax itself, a pure RDFa parser would not return the value and href grouped like that. I guess Google does that for convenience, but I agree it can possibly be confusing.