I’m using Schema.org properties to provide product data of my webshop to search engines. It includes stuff like the image, product name and price. All works great, and as a result, the price shows up nicely in Google’s search results.
However, the availability (In stock) for some reason doesn’t make it into the results, even after waiting a few weeks.
My products are on number 1 in the SERPs, just without the availability. I validated my page with Google's Structured Data Testing Tool and it looks great.
Does anyone know why Google doesn’t bother to show the availability?
A snippet of my source:
<div itemscope itemtype="http://schema.org/Product">
<img itemprop="image" src="/media/product.jpg" alt="Product image">
<h2 itemprop="name">Product name</h2>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<meta itemprop="priceCurrency" content="EUR">
<span itemprop="price">€ 12,95</span>
<ul>
<li itemprop="availability" href="http://schema.org/InStock">Op voorraad</li>
</ul>
</div>
</div>
I don’t know if this is the reason why Google Search does not pick it up, but your markup is not valid.
The li
element can’t have a href
attribute.
So instead of this
<li itemprop="availability" href="http://schema.org/InStock">Op voorraad</li>
you should use, for example, this
<li><link itemprop="availability" href="http://schema.org/InStock"/>Op voorraad</li>
price
The value of the price
property should not contain the currency symbol, so you might want to use this instead:
<span itemprop="price">12,95</span> €
As Schema.org recommends to use the .
as decimal separator, you could use the data
element or the meta
element to still how ,
to your visitors:
<data itemprop="price" value="12.95">12,95</data> €
<span><meta itemprop="price" content="12.95" />12,95</span> €