Correct use of Schema.org "ImageObject" - html

I have doubts about the correct use of schema ImageObject.
I have a small image and a link to view it in larger size, but I don’t know exactly which of these three forms is the right one.
<span itemprop='image' itemscope itemtype='http://schema.org/ImageObject'>
<a href='big_1280x720.jpg' itemprop='contentUrl'><img src='small_90x60.jpg' itemprop='image'></a>
</span>
<span itemprop='image' itemscope itemtype='http://schema.org/ImageObject'>
<a href='big_1280x720.jpg' itemprop='image'><img src='small_90x60.jpg' itemprop='thumbnailUrl'></a>
</span>
<span itemprop='image' itemscope itemtype='http://schema.org/ImageObject'>
<a href='big_1280x720.jpg' itemprop='contentUrl'><img src='small_90x60.jpg' itemprop='thumbnailUrl'></a>
</span>

The third one removing the first occurence of itemprop='image' is the right one.
<div itemscope itemtype='http://schema.org/ImageObject'>
<a href='big_1280x720.jpg' itemprop='contentUrl'>
<img src='small_90x60.jpg' itemprop='thumbnailUrl'>
</a>
</div>

Maybe someone finds this question while searching for "how to use Schema.org ImageObject", as I did, so, just for reference, here is an example from the Schema.org documentation:
Without markup:
<h2>Beach in Mexico</h2>
<img src="mexico-beach.jpg" alt="Sunny, sandy beach."/>
By Jane Doe
Photographed in Puerto Vallarta, Mexico
Date uploaded: Jan 25, 2008
I took this picture while on vacation last year.
Microdata:
<div itemscope itemtype="http://schema.org/ImageObject">
<h2 itemprop="name">Beach in Mexico</h2>
<img src="mexico-beach.jpg"
alt="Sunny, sandy beach."
itemprop="contentUrl" />
By <span itemprop="author">Jane Doe</span>
Photographed in
<span itemprop="contentLocation">Puerto Vallarta, Mexico</span>
Date uploaded:
<meta itemprop="datePublished" content="2008-01-25">Jan 25, 2008
<span itemprop="description">I took this picture while on vacation last year.</span>
</div>
http://schema.org/ImageObject#examples

Related

Errors in Microdata for image/logo as part of a BlogPosting

I am having an issue getting a publisher logo and blog post image to validate using Google's Structured Data Testing Tool.
Some sample markup of what I currently have is:
<article class="post" itemscope itemprop="blogPost" itemtype="http://schema.org/BlogPosting">
<div class="preview">
<h2 itemprop="mainEntityOfPage headline">Improving the Patient Experience through the Revenue Cycle Part 1</h2>
<div class="meta">
<span itemprop="datePublished" class="published-date">Friday, February 19, 2016</span>
<span class="sep">|</span>
<span itemprop="author" class="author"><a title="Posts by Laurie Shoaf" href="/blog/?author=Laurie+Shoaf">Laurie Shoaf</a></span>
<span class="sep">|</span>
<span class="category"><a title="Posts in Revenue Cycle Management" href="/blog/?category=Revenue+Cycle+Management">Revenue Cycle Management</a></span>
<span class="sep">|</span>
<span class="comments"><a title="Improving the Patient Experience through the Revenue Cycle Part 1 Comments" href="/blog/improving-the-patient-experience-through-the-revenue-cycle-part-1#comments">Comments<span class="hide" itemprop="discussionUrl">/blog/improving-the-patient-experience-through-the-revenue-cycle-part-1#comments</span></a></span>
</div>
<p itemprop="description" class="snippet">This three part series will focus on strategies to augment revenue cycle operations in order to improve the patient experience. In the coming weeks we will share methods designed to enhance patient communications and ideas for maximizing performance when using an early-out or extended business offic...</p>
<a itemprop="url" class="btn blue" href="/blog/improving-the-patient-experience-through-the-revenue-cycle-part-1">Continue Reading »</a>
<span class="hide" itemscope="" itemprop="publisher" itemtype="http://schema.org/Organization"><span itemprop="name">CCi</span><img itemprop="logo" src="/media/cci-small.png" alt="CCi Logo" title="CCi | Power on the Inside" /></span>
<span class="hide" itemprop="dateModified">2/19/2016</span>
<img itemprop="image" src="/media/blog featured/blog-post.png" class="hide" alt="Blog Post Graphic" title="Improving the Patient Experience through the Revenue Cycle Part 1" />
</div>
</article>
The errors I am receiving on the testing side are:
publisher -> logo : The attribute itemtype has an invalid value.
image: A value for the image field is required.
What is the proper way to nest these properties in a "blogPost" schema to pass validation?
In both cases, Google wants to see an ImageObject item (for displaying their Article Rich Snippet).
<div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject">
<!-- … -->
</div>
<div itemprop="image" itemscope itemtype="http://schema.org/ImageObject">
<!-- … -->
</div>

Google Rich Snippets JobPosting not displaying

I have added the necessary Schema markup for the JobPosting schema to my job board website. However, the rich snippets are not showing up in SERPs unlike one of my competitors.
Am I missing any mandatory fields?
I have checked the webmaster tools Structured Data tool and everything looks fine.
Here is an example screenshot:
Any helps greatly appreciated.
My URL: http://www.backpackerjobboard.com.au/jobs-in/sydney/
EDITED: acode snippet added
<ul class="jobs-list">
<li class="group" itemscope itemtype="http://schema.org/JobPosting">
<div class="inner">
<span class="status"><span>·</span> New</span>
<h3><span itemprop="title">Qualified Joiners and Cabinet Makers wanted Immediate start</span></h3>
<span class="company-name" itemprop="hiringOrganization" itemscope itemtype="http://schema.org/Organization"><span itemprop="name">NSW Joinery Pty Ltd</span></span>
<span class="location"><i class="icon"> </i>
<span itemprop="jobLocation" itemscope itemtype="http://schema.org/Place">
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="addressRegion">Sydney</span>
</span>
</span>
</span>
<span class="time-posted" itemprop="datePosted">Job posted: 21st November 2014</span>
</div>
<span class="category" itemprop="employmentType">Full-time</span>
</li>
...
</ul>

How to specify category for a product in HTML5 Microdata

I'm improving the markup for the Products section of a site of mine by using Microdata. Everything is doing just fine, as the info is being showed in the Google results as expected.
But I think it would be nice to specify a category to a given product. I've searched everywhere and rode every attribute spec found in http://Schema.org/Product but it seems there is nothing there I can use to spec a "Category".
I tried to set itemprop="category" but Google's Rich Snippet Tool gives me this warn: "Page contains property "category" which is not part of the schema.", which is true.
Does anyone knows which property should I use to designate the Category for a Product? Any thoughts on this would be nice.
schema.org/Offer has category property.
A category for the item. Greater signs or slashes can be used to
informally indicate a category hierarchy.
So smth like that will work.
<div itemscope itemtype="http://schema.org/Product">
<span itemprop="name">Kenmore White 17" Microwave</span>
<img src="kenmore-microwave-17in.jpg" alt='Kenmore 17" Microwave' />
<div itemprop="aggregateRating"
itemscope itemtype="http://schema.org/AggregateRating">
Rated <span itemprop="ratingValue">3.5</span>/5
based on <span itemprop="reviewCount">11</span> customer reviews
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span itemprop="price">$55.00</span>
<link itemprop="availability" href="http://schema.org/InStock" />In stock
<span itemprop="category">LargeCategory > SmallCategory</span>
</div>
</div>
OR
Another option is to use data-vocabulary.org which has category property in its Product class. OK for Google, NOT OK for other Search Engines though. But for Google it will work. Smth like that:
<div itemscope itemtype="http://data-vocabulary.org/Product">
<span itemprop="brand">ACME</span> <span itemprop="name">Executive
Anvil</span>
<img itemprop="image" src="anvil_executive.jpg" />
<span itemprop="description">Sleeker than ACME's Classic Anvil, the
Executive Anvil is perfect for the business traveler
looking for something to drop from a height.
</span>
Category: <span itemprop="category" content="Hardware > Tools > Anvils">Anvils</span>
Product #: <span itemprop="identifier" content="mpn:925872">
925872</span>
<span itemprop="review" itemscope itemtype="http://data-vocabulary.org/Review-aggregate">
<span itemprop="rating">4.4</span> stars, based on <span itemprop="count">89
</span> reviews
</span>
<span itemprop="offerDetails" itemscope itemtype="http://data-vocabulary.org/Offer">
Regular price: $179.99
<meta itemprop="currency" content="USD" />
$<span itemprop="price">119.99</span>
(Sale ends <time itemprop="priceValidUntil" datetime="2020-11-05">
5 November!</time>)
Available from: <span itemprop="seller">Executive Objects</span>
Condition: <span itemprop="condition" content="used">Previously owned,
in excellent condition</span>
<span itemprop="availability" content="in_stock">In stock! Order now!</span>
</span>
</div>
You can find out more about this vocabulary here.
I don't get it
On http://schema.org/Product there is category mentioned ( under brand ), still in https://developers.google.com/structured-data/testing-tool/ it apears as an error.
Have they added this attribute recently?

How do I properly format these rich snippets?

So, I have the code below which works fine when entered into Google's Rich Snippet Testing Tool. The problem is that I don't need the Venue Name linked to any url. However, when I take out the a tag and simplify that line to just <span itemprop="name">Venue Name</span>, the test tool tells me that the page doesn't contain any rich snippet markup. Furthermore, it gives off a warning like this:
Warning: Event urls are pointing to a different domain than the base url.
Is there a way to not have the name of the venue linked to anything?
Basically, I just want the result to look like this (with only the 'buy tickets' part linked):
Feb 2 — Phoenix, AZ - Crescent Ballroom - Buy tickets
I have uploaded the html file that I am testing with and entering into the test tool here.
<div itemscope itemtype="http://schema.org/MusicGroup">
<h1 itemprop="name">Name</h1>
<div itemprop="events" itemscope itemtype="http://schema.org/Event">
<meta itemprop="startDate" content="2012-02-02">Date —
<span itemprop="location">City, State</span> -
<a href="/tour" itemprop="url">
<span itemprop="name">Venue Name</span>
</a> -
Buy tickets
</div>
</div>
2/16 - updated code
<div itemscope itemtype="http://schema.org/MusicEvent">
<h1 itemprop="name">Name</h1>
<div itemprop="events" itemscope itemtype="http://schema.org/Event">
<meta itemprop="startDate" content="2012-02-02">Date —
<span itemprop="location" itemscope itemtype="http://schema.org/Place">
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="addressLocality">City</span>,
<span itemprop="addressRegion">State</span>
</span>-
<span itemprop="name">Venue Name</span> -
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Buy tickets
</div>
</span>
</div>
</div>
2/17 - updated code
<div itemscope itemtype="http://schema.org/MusicGroup">
<h1 itemprop="name">Name</h1>
<div itemprop="events" itemscope itemtype="http://schema.org/MusicEvent">
<meta itemprop="startDate" content="2012-02-02">Date —
<span itemprop="location" itemscope itemtype="http://schema.org/Place">
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="addressLocality">City</span>,
<span itemprop="addressRegion">State</span>
</span>-
<span itemprop="name">Venue Name</span> -
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Buy tickets
</div>
</span>
</div>
</div>
2/17 - new updated code
<div itemscope itemtype="http://schema.org/MusicGroup">
<h1 itemprop="name">Name</h1>
<div itemprop="events" itemscope itemtype="http://schema.org/MusicEvent">
<meta itemprop="startDate" content="2012-02-02">Date —
<span itemprop="location" itemscope itemtype="http://schema.org/Place">
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="addressLocality">City</span>,
<span itemprop="addressRegion">State</span>
</span>-
<span itemprop="name">Venue Name</span> -
</span>
<div itemprop="offers">
Buy tickets
</div>
</div>
</div>
There a few things I am noticing here.
Unless, I misunderstand, this is a music event, so you should probably use the more specific itemtype="http://schema.org/MusicEvent".
The "location" itemprop also needs to be an itemtype of http://schema.org/Place or http://schema.org/PostalAddress. This will also solve your name itemprop issue. So for example:
<span itemprop="location" itemscope itemtype="http://schema.org/Place>
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress>
<span itemprop="addressLocality">City</span>,
<span itemprop="addressRegion">State</span>
</span>
<span itemprop="name">Venue Name</span>
</span>
See my next point on why I left out the url itemprop.
The offers property is another itemtype, so you'll want something like this:
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer>
Presale tickets
</div>
However, I'm not entirely sure that you can have a link to another domain in a url itemprop. This is undocumented but I've yet to see an example of one that does. You may need to leave out the offer itemprop and just let Google bring in ticket information from ticketlink themselves.
Please see my answer to your other question about how these rich snippet links you're trying to reproduce are actually being populated in search results.
UPDATE: Here is the final code snippet that passes the Testing Tool
<div itemscope itemtype="http://schema.org/MusicGroup">
<h1 itemprop="name">Name</h1>
<div itemprop="events" itemscope itemtype="http://schema.org/MusicEvent">
<meta itemprop="startDate" content="2012-02-02">Date —
<span itemprop="name">Event Name</span>
<span itemprop="location" itemscope itemtype="http://schema.org/Place">
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="addressLocality">City</span>,
<span itemprop="addressRegion">State</span>
</span>-
<span itemprop="name">Venue Name</span> -
</span>
Buy tickets
</div>
</div>
I had the same problem as you. The formatting looks okay to me; however, it appears that Google is somehow "flagging" event listings where the URL is different from the domain the page is hosted on. I just noticed this problem in a site I manage as well.
I have contacted Google about this to see what the problem is. In the exceedingly unlikely chance that an actual human replies to my query, I will update my answer here with more information.

What is correct rich snippet microdata for an Event?

I'm trying to implement microdata for events on my site. When I use the Google Rich Snippet Testing tool I keep getting the error "Insufficient data to generate the preview".
Does anybody know of a definitive list of what data they want?
Is this stuff just too buggy to be spending time implementing now? My goal is to get better SEO results.
Thanks
This :
<div>
Spinal Tap
<img src="spinal_tap.jpg" />
After their highly-publicized search for a new drummer,
Spinal Tap kicks off their latest comeback tour with a San
Francisco show.
When: Oct 15, 7:00PM—9:00PM
Where: Warfield Theatre, 982 Market St, San Francisco, CA
Category: Concert
</div>
Would become :
<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>
</div>
Just make sur you html works in a similar way.
Even with a well formatted page with schema.org markup, I've found that Google still relies on some of their older snippet requirements. You can find these requirements for Events at http://support.google.com/webmasters/bin/answer.py?hl=en&answer=164506&topic=1088474&ctx=topic . Scroll down to the "Properties" heading and you'll see some marked in bold. Make sure your markup includes those properties
This is a pretty simple example:
<div itemscope itemtype="http://schema.org/Event">
<a itemprop="url" href="nba-miami-philidelphia-game3.html">
NBA Eastern Conference First Round Playoff Tickets:
<span itemprop="name"> Miami Heat at Philadelphia 76ers - Game 3 (Home Game 1) </span>
</a>
<meta itemprop="startDate" content="2016-04-21T20:00">
Thu, 04/21/16
8:00 p.m.
<div itemprop="location" itemscope itemtype="http://schema.org/Place">
<a itemprop="url" href="wells-fargo-center.html">
Wells Fargo Center
</a>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="addressLocality">Philadelphia</span>,
<span itemprop="addressRegion">PA</span>
</div>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/AggregateOffer">
Priced from: <span itemprop="lowPrice">$35</span>
<span itemprop="offerCount">1938</span> tickets left
</div>
</div>
For more details and examples go here http://schema.org/Event , scroll to "Examples", select "Microdata".