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
Related
I have just started trying to get my head around using Schema.org. I have customised a bit of schema into the text in my website footer (on WordPress).
When I test my page with Google Structured Data Testing Tool, it's coming back as errors and I need to figure out why.
I live in Wareham, Dorset, UK but the Google tool doesn't seem to recognise my location?
My Microdata is as follows:
<div itemscope itemtype=”http://schema.org/ProfessionalService“>
<link itemprop=”additionalType” href=”http://www.productontology.org/doc/Wedding_photography” />
<b><span style="color:#88cccf; font-size: 15pt" itemprop="member" itemscope itemtype="http://schema.org/Organization">Velvet Bliss Photography</span></b><br>
<em>Photography by <span itemprop="name">Brett McNally</span></em><br> <br>
<div>
I am a professional freelance <span itemprop="jobtitle">photographer</span> based in <span itemprop=”address” itemscope itemtype=”http://schema.org/PostalAddress”>
<span itemprop=”addressLocality”>Wareham</span>,
<span itemprop=”addressRegion”>Dorset</span>. I provide <span itemprop=”name”>Wedding Photography</span> & <span itemprop=”name”>Portrait Photography</span> services in Dorset and I take on commissions for wedding photography all over the <span itemprop="addressCountry">UK</span>, as well as internationally for destination weddings.
</div><br>
<div>Contact me: <span itemprop=”telephone”>07470 201325</span>
</div>
<link rel="author" href="https://plus.google.com/u/0/117967472486546237170">
<link rel="publisher" https://plus.google.com/u/0/114441860370278522542">
<br>
<em><span style="font-size: 9pt">You can also find me on these social media websites:</span></em>
Here in the UK, my address is:
Town / City: Wareham
County: Dorset
but schema doesn't seem to recognise that we are on the map?
I see! It was not obvious first, but I think I have found the issue it was non standard quotation marks. I replaced them and then tested in Google testing tool and now it is showing all green (just one tag i.e. jobtitle not part of professional entity) otherwise all schema recognized, test this please:
<div itemscope itemtype="http://schema.org/ProfessionalService">
<link itemprop="additionalType" href="http://www.productontology.org/doc/Wedding_photography" />
<b><span style="color:#88cccf; font-size: 15pt" itemprop="member" itemscope itemtype="http://schema.org/Organization">Velvet Bliss Photography</span></b><br>
<em>Photography by <span itemprop="name">Brett McNally</span></em><br> <br>
<div>
I am a professional freelance <span itemprop="jobtitle">photographer</span> based in <span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="addressLocality">Wareham</span>,
<span itemprop="addressRegion">Dorset</span>. I provide <span itemprop="name">Wedding Photography</span> & <span itemprop="name">Portrait Photography</span> services in Dorset and I take on commissions for wedding photography all over the <span itemprop="addressCountry">UK</span>, as well as internationally for destination weddings.
</div><br>
<div>Contact me: <span itemprop="telephone">07470 201325</span>
</div>
<link rel="author" href="https://plus.google.com/u/0/117967472486546237170">
<link rel="publisher" https://plus.google.com/u/0/114441860370278522542">
<br>
<em><span style="font-size: 9pt">You can also find me on these social media websites:</span></em>
I've had structured markup set up on a website now for around a week and Google has indexed about 20% of it however it's still not displaying. After checking the markup was correct in the validating tool I noticed this:
Everything looks fine other than the
offers [Offer]: http://www.website.co.uk/price-excluding-tax-990
Now take a look at the source code:
<div class="product-view" itemscope itemtype="http://schema.org/Product">
<span itemprop="sku">PM90-0100</span>
<div class="product-name">
<h1 itemprop="name">Basket PM90-0100</h1>
</div>
<p class="availability in-stock">Availability: <span>In stock</span></p>
<div class="price-box">
<span class="price-excluding-tax">
<span class="label">Excl VAT: </span>
<span itemprop="offers" itemscope itemtype="http://schema.org/Offer" class="price" id="price-excluding-tax-990">
<link itemprop="availability" href="http://schema.org/InStock"/>
<meta itemprop="priceCurrency" content="GBP" />
<span itemprop="price">£30.00</span>
</span>
<div itemprop="description" class="std">This is a brand new basket to fit various Freerider mobility scooters.</div>
[code continues...]
Does this all look symantically correct? Somehow in Webmaster Tools it is grabbing the price-excluding-tax-990 ID and using it in the offers [Offer]: - which seems odd.
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
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.
I have a website that has pages with reviews for beauty centers, but I can't quite understand how aggregate reviews work.
So I first put in:
<div itemscope itemtype="http://data-vocabulary.org/Review-aggregate">
<span itemprop="itemreviewed">Beauty Center Name</span>
<img itemprop="photo" src="beauty-center.jpg" />
<span itemprop="rating" itemscope itemtype="http://data-vocabulary.org/Rating">
<span itemprop="average">4</span> out of <span itemprop="best">5</span>
<span itemprop="count">3</span> user reviews.
</div>
That worked fine when I tested it in the Structured Data Testing Tool. But I know I have to put mark-up on each review now.. so I start marking them up like so:
<div itemprop="reviews" itemscope itemtype="http://data-vocabulary.org/Review">
<b itemprop="author">Juliana</b>
<span itemprop="datePublished" datetime="2013-01-12">12 January 2013</span>
<div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">
<span itemprop="ratingValue">4</span> / <span itemprop="bestRating">5</span> stars
</div>
<span itemprop="reviewBody">I loved it!</span>
</div>
Again, no errors on these reviews in the Structured Data Testing Tool. But now, the Tool says that I have to specify a "http://schema.org/product" with contents about the product. There is no product, it's a beauty center.
Can anyone help me understand what I did wrong?