How to implement Microdata for organization's product or service - schema.org

If my company do it product (website, design, app), what should I apply Microdata to my HTML, if HTML structure look like below:
<div>
<h1>Company name</h1>
<p>Below is our portfolio</p>
<div itemscope itemtype="http://schema.org/???">
<h2>1. Website name</h2>
<p>Website info here...</p>
</div>
</div>

It depends on what this content is exactly about.
If it’s something your Organization offers (so the portfolio item is a placeholder for what your business offers), you could use:
makesOffer → Offer
If it’s something your Organization owns (so the portfolio item is something your business wants to show), you could use:
owns → Product
From the perspective of the CreativeWork, you could link to your Organization using the properties author/creator, contributor, copyrightHolder, provider, or publisher.

1- You can use, Like Unor said, the Organization, but there is some specific types of organizations.
You can use LocalBusiness and in your case, I will use another specific type of LocalBusiness wich calls https://schema.org/ProfessionalService. (provider)
An exemple of use :
<span itemscope itemtype="http://schema.org/ProfessionalService" style="display:none;">
<span itemprop="name">company name</span>
<span itemprop="description" style="display:none;">Description </span>
<img itemprop="logo" src="http://logo-url" alt="">
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">Address</span>,
<span itemprop="addressLocality">Locality</span>
<span itemprop="addressCountry" >Canada</span>
<span itemprop="addressRegion">State_or_province</span>
<span itemprop="postalCode">Postal_code</span>
</span>
<span itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates">
<meta itemprop="latitude" content="45.5354467" />
<meta itemprop="longitude" content="-73.505216" />
</span>
</span>
I advise you to use the GeoCoordinates, because Google should promote your web site in your local area.
You can hide this information for users by an style="display:none".
2- For your portfolio, you have another schema : CreativeWork
3- For the use of offer : you have to indicate the price that could be show directly in search results. But in your case, I don't think you want it :).
Microdata can change the appearance of your page directly in search results. For more information, Google Developers

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?

How to relate unrelated microdata schema types?

I'm trying to show my customers where the nearest CivilStructure is (e.g. railway station or airport) to a particular Product sold by an Organsization.
Here is an example of what I mean
<div itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name"> Name of product </h1>
<p itemprop="brand" itemscope itemtype="http://schema.org/Organization"> Name of company selling product </p>
<ul itemscope itemtype="http://schema.org/CivicStructure">
<li itemprop="name">Name of railway station</li>
</ul>
</div>
Product has a property of brand which can then be used to provide information on an Organization selling that product. However, I can't find an itemprop property within Product or Organization to link a CivilStructure to the Organization. Its basically a related location but I'm struggling to understand how to mark it up correctly. Any suggestions please?

Defining a service offered (sold) by a local business using schema.org

I have a website where people can compare driving schools. I've added alle the details (name, description, location, pricerange, etc.) I know about these schools to their pages on my website, using the schema.org markups.
Since a few weeks, people can also buy (read: book) their first driving lesson offered by the schools on my website, directly on my website. I was searching for a way to add this to the schema.org markup at my pages, but I don't really know what to use in my case.
I think of the two following possibilties. Can you tell me which one I should use? Or that you may think of a better solution?
<div itemscope itemtype="http://schema.org/LocalBusiness">
<div itemprop="name">...</div>
<div itemprop="description">...</div>
<div itemprop="priceRange">...</div>
<div itemprop="makesOffer" itemscope itemtype="http://schema.org/Offer">
<div itemprop="name">...</div>
<div itemprop="price">...</div>
<div itemprop="priceCurrency">...</div>
</div>
</div>
Or
<div itemscope itemtype="http://schema.org/LocalBusiness">
<div itemprop="name">...</div>
<div itemprop="description">...</div>
<div itemprop="priceRange">...</div>
<div itemprop="owns" itemscope itemtype="http://schema.org/Product">
<div itemprop="name">...</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div itemprop="price">...</div>
<div itemprop="priceCurrency">...</div>
</div>
</div>
</div>
At last, I was looking for a better schema type for driving schools, but I don't think they have specified driving schools. Do you think it is better to use ProfessionalService instead of LocalBusiness?
I think both of your examples are possible.
If you don’t have any specific requirements from consumers you expect to make use of your markup, I’d go with the first example: LocalBusiness → makesOffer → Offer.
It seems that you don’t really need the Product item, as you are only using the name property, which could be used on the Offer instead.

Schema.org setup for multiple events on one page

Is there a proper way to show multiple events on one page in Schema.org? Ideally, we don't want a page for each event. Here is a sample structure of what we want:
<div itemscope itemtype="http://schema.org/Event">
<div itemprop="name"><h2>Chili Cookoff</h2></div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<h3><span itemprop="addressLocality">Manhatten</span>, <span itemprop="addressRegion">New York</span> - <span itemprop="addressCountry">US</span></h3>
</div>
<div>
May, 1st 2014 - May 4th, 2014
<meta itemprop="startDate" content="2014-05-1:00.000">
<meta itemprop="endDate" content="2014-05-4:00.000">
</div>
<div itemprop="description">An awesome chili cookoff you won't want to miss!.</div>
</div>
<div itemscope itemtype="http://schema.org/Event">
<div itemprop="name"><h2>Dinner on the River</h2></div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<h3><span itemprop="addressLocality">Brooklyn</span>, <span itemprop="addressRegion">New York</span> - <span itemprop="addressCountry">US</span></h3>
</div>
<div>
<meta itemprop="startDate" content="2014-05-1:00.000">May, 1st 2014 -
<meta itemprop="endDate" content="2014-05-2:00.000">May 2nd, 2014
</div>
<div itemprop="description">A dinner to remember forever.</div>
</div>
Using the Google Rich Snippits tool, it doesn't want to respect there being multiple events, but I am not sure if that means the crawlers will not notice them.
Your usage of Microdata and the Schema.org vocabulary is valid.
Every conforming parser will understand this. See for example http://linter.structured-data.org/, which shows snippets that could result from markup.
However, actual search engine providers decide for themselves if, when or how to use your annotations, for example for enhancing search results. It may be the case that some providers decide that they don’t "support" multiple items on a single webpage, where "support" only means that they, for example, don’t show an enhanced snippet on their SERPs.
This is different from provider to provider, their behaviour may change over time and it may depend on many other factors of your site, too. (Discussing such SEO-related things is typically off-topic on Stack Overflow, but Webmasters SE may be an appropriate place.)
Example: Google recommends to mark up all entities on a page:
When you have multiple entity types on a page, we recommend you mark up all entities on that page to help Google algorithms better understand and index your content.

Rich-snippets for Offline Products and Services

We are developing a new site and I'm keen to implement rich snippets and more descriptive meta data for our products and services pages in the form of Rich Snippets.
My problem is that our products and services cannot be purchased directly from the website as they are bespoke and custom built based upon users requirements. As a result they don't have a price and stock level.
I notice from the Google guidelines that they state:
The product should be available for purchase directly on the page
My question is, what is the best and most appropriate way to use rich snippets to describe these products and services? Can I use rich snippets at all to describe these products and services?
Consider using schema.org/AggregateOffer for Product Rich Snippets. Although main use case for it is marking one product available from different sellers, it seems suitable for you as well. It allows to indicate lowest and highest price - I guess you have some price limits even for bespoke products.
If you have reviews for those products on your site Review Rich Snippets are applicable for you. Use schema.org/Review or schema.org/AggregateRating for this.
Example for both:
<div itemscope itemtype="http://schema.org/Product">
<img itemprop="image" src="cute_dress.jpg" />
<span itemprop="name">Very Cute Dress</span>
<div itemprop="aggregateRating"
itemscope itemtype="http://schema.org/AggregateRating">
<span itemprop="ratingValue">87</span>
out of <span itemprop="bestRating">100</span>
based on <span itemprop="ratingCount">24</span> user ratings
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/AggregateOffer">
<span itemprop="lowPrice">$1250</span>
to <span itemprop="highPrice">$1495</span>
</div>
</div>
will give you
Breadcrumbs is another option for you. Use data-vocabulary.org for this purpose since breadcrumbs in schema.org are messy and incomplete.
Example:
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="http://www.example.com/dresses" itemprop="url">
<span itemprop="title">Dresses</span>
</a> ›
</div>
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="http://www.example.com/dresses/real" itemprop="url">
<span itemprop="title">Real Dresses</span>
</a> ›
</div>
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="http://www.example.com/clothes/dresses/real/green" itemprop="url">
<span itemprop="title">Real Green Dresses</span>
</a>
</div>
will give you