"availability" not showing in Google Rich Snippet - html

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>
Side note: About your 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> €

The http://schema.org/InStock should idealy be defined at the itemscope level and your itemprop can continue to be mentioned in the li tag as before, without the link in it.
Google may not choose to show availability in organic search results depending on how relevant it perceives that information to be for users compared to price, item name etc (remember, there's only a limited amount of space in the results).
Do any of your other competitors' listings show availability?

Related

Schema/Metadata for members of organisation/Team Page

I am building a team page for my client's website.
The team page contains a list of their employees along with following details:
image
Twitter Link
Facebook Link
Full Name
Designation (CEO/Founder, etc).
How can I use metadata from schema.org for adding all of the above fields?
This is what I have come up so far.
<ul>
<li>
<article itemscope itemtype="http://schema.org/Person">
<h1 itemprop="name">Team Member's Name</h1>
<p>CEO</p>
<img src="" alt="" itemprop="image">
Facebook Profile
LinkedIn Profile
</article>
</li>
</ul>
Also, In terms of adding further meta data, I want to even add a additional property to a wrapper <div> with itemscope of the company that I am developing this website for.
So, that I add not only the meta data of each emplyoee, but I also add the company name (which is same for each employee).
You can use
name for the full name (and if you want, givenName, familyName, and honorificPrefix/honorificSuffix in addition),
image for the image,
sameAs for the social media profiles, and
jobTitle for the designation.
To link the persons and the organization, look for appropriate properties that have Person as expected value (from Organization) or Organization as expected value (from Person).
A simple way could be:
<div itemscope itemtype="http://schema.org/Organization">
<ul>
<li itemprop="founder" itemscope itemtype="http://schema.org/Person"></li>
<li itemprop="employee" itemscope itemtype="http://schema.org/Person"></li>
<li itemprop="employee" itemscope itemtype="http://schema.org/Person"></li>
</ul>
</div>
If your markup doesn’t allow this, Microdata’s itemref attribute might be useful (example).
According to schema.org this is how you add properties. You can learn more here. http://schema.org/docs/gs.html#schemaorg_types
<div itemscope itemtype="http://schema.org/Person">
Alice Jones
</div>
<div itemscope itemtype="http://schema.org/Person">
Bob Smith
</div>
Then you can use the available property types from this table. http://schema.org/Person
However, since you're doing team members (employees), you may want to structure the markup around properties from Organization. http://schema.org/Organization

How do I use Schema.org to identify filters on our hotel search site?

I'm working on a site designed to help a user find a hotel. We've got lots of widgets for filtering the hotels we show (e.g. price filters) or else ordering the hotels we show (e.g. by distance).
I can see how to markup our hotels as being a list. And also how to communicate the sort order of the list.
And we're already marking up the hotel's themselves:
<div itemscope itemtype="http://schema.org/Hotel">
<div itemprop="image" style="background-image: url('{{{ imageUrl }}}');"></div>
<h2 class="title" itemprop="name">{{ name }}</h2>
<div itemscope itemtype="http://schema.org/Offer">
<div itemprop="price">{{{ price }}}</div>
</div>
</div>
Is there a way of identifying our filters as being tools for adjusting the list?
To get an idea of how the website works see - http://mapov.com/hotels/the+strip/.
Is there a way of identifying our filters as being tools for adjusting the list?
With an Action type.
See SearchAction or perhaps FindAction (DiscoverAction).
An Action can be used to represent what happened (e.g., "User 3 searched for hotels in Amsterdam"), but also for representing potential actions: use the potentialAction property to specify the possible actions an item can have.
<section itemscope itemtype="http://schema.org/ItemList">
<div itemprop="potentialAction" itemscope itemtype="http://schema.org/SearchAction">
…
</div>
</section>
Side notes about your markup
Your image property won’t work, it can’t have an image specified in the style attribute as value. You have to provide the image property on a "link" element (e.g., img, a, link, …).
Your Offer is not associated with the Hotel. You could use the makesOffer property.
<div itemscope itemtype="http://schema.org/Hotel">
<img itemprop="image" src="http://yourhostel.es/content/124"/>
<meta itemprop="address" content="you street"/>
<h2 class="title" itemprop="name">name </h2>
<div itemprop="priceRange">price</div><div itemprop="telephone">9999999</div>
price

How would one find out how google would sort a webpage?

So I was told that you can set a certain tag in a html page that will tell search engines what kind of page it is (like if the tag was set to game then google would organize it as game). What tag would this be done in and how would it be found?? (I was told this by older brother so If not possible or is false information I will understand)
You can use structured data in your website to tell the search engines what is described on the page and give machine readable details.
This is (at this time) the recommended way by Google.
The format for this is described in great detail on http://schema.org, the types can be found here:
http://schema.org/docs/full.html
To address your example, here is the sample from the type Game (copy&paste):
<section itemscope itemtype="http://schema.org/Game">
<section itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span>Approx. Retail:</span>
<span itemprop="priceCurrency">$</span><span itemprop="price">17.99</span>
Where To Buy
</section>
<span itemprop="audience" itemscope itemtype="http://schema.org/PeopleAudience">
Ages: <span itemprop="suggestedMinAge">8</span> YEARS & UP
</span>
<h4>Game Description:</h4>
<p itemprop="description">Own it all as a high-flying trader in the fast-paced world of real estate. Tour the city for the hottest properties: sites, stations and utilities are all up for grabs. Invest in houses and hotels, then watch the rent come pouring in! Make deals with other players and look out for bargains at auction. There are many ways to get what you want. For really speedy dealers, use the speed die for a quick and intense game of Monopoly. So get on Go and trade your way to success!<br/><br/>Includes <span itemprop="gameItem">gameboard</span>, <span itemprop="gameItem">8 tokens</span>, <span itemprop="gameItem">28 Title Deed cards</span>, <span itemprop="gameItem">16 Chance cards</span>, <span itemprop="gameItem">16 Community Chest cards</span>, <span itemprop="gameItem">money pack</span>,<span itemprop="gameItem"> 32 houses</span>, <span itemprop="gameItem">12 hotels</span>, 2 dice and instructions<br/><br/>•Features a speed die for a faster, more intense game<br/>•Includes the new token that was voted No. 1: the cat<br/><br/>For <div itemprop="numberOfPlayers" itemscope itemtype="http://schema.org/QuantitativeValue">
<span itemprop="minValue">3</span> to <span itemprop="maxValue">5</span> players </div>.<br/><br/>Ages 8 and up.<br/><br/>Monopoly and all related characters are trademarks of <span itemprop="copyrightHolder">Hasbro</span>. <P></p>
</section>
As you can see there are several attributes like itemtype, itemprop etc. added that contain the data that is targeted for search engines. These attributes vary from type to type.
Google does a lot more than read tags to organize pages and rank them. However, there is a tag defined in HTML to describe keywords and other information about your page.
Placed in the head of your HTML document, the meta tag can be used to define your pages character set, add a description, keywords and an author (amongst other things).
For example:
<head>
<meta charset="UTF-8">
<meta name="description" content="Jordan's Homepage">
<meta name="keywords" content="Games, younger brothers, stack overflow">
<meta name="author" content="Jordan 1591">
</head>
Google's ranking algorithms are very complex and not publicly known in their entirety, partly to prevent people from abusing them and being unfairly ranked highly, but any seach engine -including Google - will look at meta tags as a bare minimum.

Rich snippets in Google results

I am looking to include rich snippets into a site I'm building to reflect a musician's upcoming tour schedule. I have done some searching on various musicians and have found a few which seem to follow a similar format. I have uploaded two screen shots below to show as an example of what I mean exactly.
Example 1:
Example 2:
What is puzzling me is the fact that when I enter these sites into Google's Rich Snippet Test Tool, no data shows up. Furthermore, when I check the source for one of the tour pages, there are no rich snippets incorporated into the code. How are these sites managing to get their tour dates listed in this format?
You are correct, these band pages are not implementing rich snippets of any form. What Google is actually doing is showing information pulled from other sites about that band. This information comes from the sites listed on the "More Info" line. These 3rd party sites are the ones implementing rich snippets into their pages.
I don't have enough rep to comment on Oded's "answer" to this question, but he is completely wrong. Microformats are an accepted form of rich snippet markup, just like microdata and RDFa. I would recommend going with Schema.org microdata on your site, though, since Google is presenting it as the future of rich snippet markup
As Johnathon mentioned, the future really belongs to microdata format, because it's the part of the new HTML5. I highly recommend to use this format.
I believe that this is the even rich snippet, which have you showed in your post. You can implement your event rich snippet like this:
<div itemscope itemtype="http://data-vocabulary.org/Event">
​<a href="http://www.example.com/events/spinaltap" itemprop="url" >
<span itemprop="summary">Spinal Tap</span>
</a>
<img itemprop="photo" src="spinal_tap.jpg" />
<span itemprop="description">After their highly-publicized search for a new drummer,
Spinal Tap kicks off their latest comeback tour with a San
Francisco show.</span>
When:
<time itemprop="startDate" datetime="2015-10-15T19:00-08:00">Oct 15, 7:00PM</time>—
<time itemprop="endDate" datetime="2015-10-15T19:00-08:00">Oct 15, 9:00PM</time>
Where:
​<span itemprop="location" itemscope itemtype="http://data-vocabulary.org/​Organization">
​<span itemprop="name">Warfield Theatre</span>
​<span itemprop="address" itemscope itemtype="http://data-vocabulary.org/Address">
<span itemprop="street-address">982 Market St</span>,
<span itemprop="locality">San Francisco</span>,
<span itemprop="region">CA</span>
</span>
<span itemprop="geo" itemscope itemtype="http://data-vocabulary.org/​Geo">
<meta itemprop="latitude" content="37.774929" />
<meta itemprop="longitude" content="-122.419416" />
</span>
</span>
Category: <span itemprop="eventType">Concert</span>
<span itemprop="ticketAggregate" itemscope itemtype="http://data-vocabulary.org/Offer-aggregate">
Tickets from $<span itemprop="lowPrice">10.00</span>-$<span itemprop="highPrice">11.00</span>
<span itemprop="currency" content="USD" />
<span itemprop="offerCount">2,000</span> tickets available
<a href="http://www.example.com/events/spinaltap/alltickets" itemprop="offerurl">
http://google.com/ticket</span>See all available tickets</a>
</span>
<span itemprop="tickets" itemscope itemtype="http://data-vocabulary.org/Offer">
Presale tickets
<span itemprop="price">$10</span><span itemprop="currency" content="USD" />
till <time itemprop="priceValidUntil" datetime="2015-11-10">10 November 2015</time>
(<span itemprop="quantity">1000</span> available)
</span>
<span itemprop="tickets" itemscope itemtype="http://data-vocabulary.org/Offer">
Full-price tickets
<span itemprop="price">$11</span><span itemprop="currency" content="USD" />
</span>
</div>
If you still having problems, then take a look at this Google article http://support.google.com/webmasters/bin/answer.py?hl=en&answer=164506&topic=1088474&ctx=topic.
To know more about rich snippets, what are they, what are they useful for and what type of rich snippets exist, check my article at http://blog.victorlava.com/what-is-a-rich-snippet-everything/.
I also agree that Google not only fetches and displays rich snippet data from the owner website or the querying website, but it also uses third party data to pull the result into the rich snippet friendly search result links.
Recently, Google has been pushing a lot of data using its Knowledge Graph and updated search algorithms. However it depends on many factors to see your site's data into Google search result using the rich snippet format. Factors like your site's authority, popularity, content trustworthy generally play vital role and that's what happening with the above example case.
Thanks

How do you format keywords in Microdata for a CreativeWork?

I'm working with Microdata and I want to use Schema.org’s keywords for CreativeWork.
The schema specifies that it should be text but do I put each keyword in a separate element with itemprop="keywords" or do I put them all in one keywords element? If I put them all in one element do I use commas as a separator?
The definition of Schema.org’s keywords property changed. It now reads:
Keywords or tags used to describe this content. Multiple entries in a keywords list are typically delimited by commas.
So it could look like this in Microdata:
<article itemscope itemtype="http://schema.org/BlogPosting">
<footer>
<ul itemprop="keywords">
<li>foo,</li>
<li>bar</li>
</ul>
</footer>
</article>
(Example taken from my related answer about semantic markup for tags.)
If you don’t want to have commas visible on the page, you could use a meta element in addition to your normal markup for the tags:
<meta itemprop="keywords" content="foo, bar" />
(It’s allowed to place this meta element in the `body´.)
You should create an itemprop element for each keyword as follows:
<div itemscope itemtype="http://schema.org/CreativeWork">
<span itemprop="name">Resistance 3: Fall of Man</span>
by <span itemprop="author">Sony</span>.
Keywords:
<span itemprop="keywords">Game</span>,
<span itemprop="keywords">Adult</span>
</div>
My reading of the specification leads me to the conclusion that you can have just one itemprop attribute per property.
In other words, i don't think that creating an itemprop element for each keyword will create a correct microdata syntax.
I would put each keyword in a space-separated list, and use a single itemprop:
<span itemprop="keywords">
Game,
Adult
</span>
or
<meta itemprop="keywords" content="Game Adult"/>
i am not sure what should be done in case a keyword contains multiple words, since there is nothing in the specification that says how keywords should be separated in the text (i assume by spaces and.or punctuation like comma).
#Lawrence Woodman : could you indicate where you read, in the specification, that it is allowed to have multiple itemprop elements for the same property?
By reading the docs, I'd say you can use meta tags to parse content which is whether hidden or in a bad format. That's the case of priceCurrency and datePublished in the code bellow, taken from schema.org documentation.
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Price: <span itemprop="price">$6.99</span>
<meta itemprop="priceCurrency" content="USD" />
<link itemprop="availability" href="http://schema.org/InStock">In Stock
</div>
Product details
<span itemprop="numberOfPages">224</span> pages
Publisher: <span itemprop="publisher">Little, Brown, and Company</span> -
<meta itemprop="datePublished" content="1991-05-01">May 1, 1991
Language: <span itemprop="inLanguage">English</span>
ISBN-10: <span itemprop="isbn">0316769487</span>
Assuming I am right, I've changed my code to the following.
<div itemscope itemtype="http://schema.org/CreativeWork">
<!-- way too many content -->
<h5>Keywords</h5>
<meta itemprop="keywords" content="Rio de Janeiro, Brazil">
Rio de Janeiro
Brazil
</div>
I'll deploy it in a few days, so sorry I can't tell if it works right now.
UPDATE: After deploying the code, it works like a charm. You can see the results through Google Data Testing Tool and compare to the rich snippets used on the real product.