Google Rich Snippets JobPosting not displaying - html

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>

Related

Google rich snippets code div

I checked many different sites (official one also) and all the examples display the google snippets code itemscope/itemtype inside a div and the itemprop inside a span.
I'm wondering if this is just a simple way to show samples code or is the only way yo display it.
I have my address in a list so i wrote like this:
<li itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<i class="fa fa-map-marker fa-lg"></i> <p class="labelSocial">Address:</p>
<a href="https://www.google.com/maps/place/Glogauer+Stra%C3%9Fe+21/#52.49226,13.4369,17z/data=!3m1!4b1!4m2!3m1!1s0x47a84fb24234006b:0x36dfe942fb2b5f97" target="_blank">
<p class="addressText">
<span itemprop="streetAddress"> Glougauerstrasse 21, </span> </br>
<span itemprop="postalCode"> 12435 </span>
<span itemprop="addressLocality"> - Berlin </span>
<span itemprop="addressCountry"> (DE) </span>
</p></a>
</li>
is that also correct?
Your Code is fine but you'll have to nest schema.org/PostalAddress under some main category but use of <li> tag is correct. Here is what Google Structured Data testing tools shows for the code you mentioned above-
http://www.google.com/webmasters/tools/richsnippets?q=uploaded:800501214b811a6b2bbfb52e2d77f96d
In order to tell Google and other search engines that address is related to what, we must specify a category and nest postal address inside it. Please see the example, schema.org/PostalAdsress is nested inside LocalBusiness schema:
<div itemscope itemtype="http://schema.org/LocalBusiness">
<h1><span itemprop="name">Beachwalk Beachwear & Giftware</span></h1>
<span itemprop="description"> A superb collection of fine gifts and clothing
to accent your stay in Mexico Beach.</span>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">3102 Highway 98</span>
<span itemprop="addressLocality">Mexico Beach</span>,
<span itemprop="addressRegion">FL</span>
</div>
Phone: <span itemprop="telephone">850-648-4200</span>
</div>

Correct use of Schema.org "ImageObject"

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

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.

Can I combine two itemscopes to describe a single item?

I would like to add microdata to a page, but the data for an item is broken up into a couple discontinuous parts of the page. If I have two span elements with an itemscope attribute, is it possible to get search engines to merge the two itemscopes and interpret them as a single item?
For example*:
<span itemscope itemtype="http://schema.org/Person">
Hello, my name is <span itemprop="name">Glinda</span>.
</span>
I like to fly around in a giant bubble.
<span itemscope itemtype="http://schema.org/Person">
I live in the <span itemprop="location">Land of Oz</span>.
</span>
Is there a way to add something like an itemid attribute to tell a web spider that the two Person itemscopes should be consumed as one item, instead of two?
Maybe something like this.
<span itemscope itemtype="http://schema.org/Person" itemid="7f6ba1">
Hello, my name is <span itemprop="name">Glinda</span>.
</span>
I like to fly around in a giant bubble.
<span itemscope itemtype="http://schema.org/Person" itemid="7f6ba1">
I live in the <span itemprop="location">Land of Oz</span>.
</span>
* I understand that in this example I could just use one big span, but I can't do that with the actual page I have to work with.
Edit: Perhaps I need a better example. It's a bit contrived, but demonstrates the problem I have. Remember, reorganizing the page is not an option.
<h1>Locations</h1>
<ul>
<li itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Bob</span> lives in <span itemprop="location">Berkeley</span>
</li>
<li itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Carol</span> lives in <span itemprop="location">Cupertino</span>
</li>
</ul>
<h1>Jobs</h1>
<ul>
<li itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Bob</span> works at <span itemprop="affiliation">Borders</span>
</li>
<li itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Carol</span> works at <span itemprop="affiliation">Capitol One</span>
</li>
<ul>
Is there a way to make this microdata result in two Person items, rather than four?
I want to have Bob, who lives in Berkeley, and works at Borders, and Carol who lives in Cupertino and works at Capitol One.
If I'm reading the W3 itemref properly, you can use the itemref property for this purpose:
<h1>Locations</h1>
<ul>
<li itemscope itemtype="http://schema.org/Person" itemref="bob">
<span itemprop="name">Bob</span> lives in
<span itemprop="homeLocation">Berkeley</span>
</li>
<li itemscope itemtype="http://schema.org/Person" itemref="carol">
<span itemprop="name">Carol</span> lives in
<span itemprop="homeLocation">Cupertino</span>
</li>
</ul>
<h1>Jobs</h1>
<ul>
<li itemprop="affiliation" itemscope itemtype="http://schema.org/Organization" id="bob">
Bob works at <span itemprop="name">Borders</span>
</li>
<li itemprop="affiliation" itemscope itemtype="http://schema.org/Organization" id="carol">
Carol works at <span itemprop="name">Capitol One</span>
</li>
<ul>
Yes it is possible if you use the itemref property.
Have a look at this website: IJzerfront 14-18
They link up the information (description and image are separated and are added to the Museum Place).

What is the most semantic way to display a street address in HTML?

I have an address that is going to be displayed on a webpage, but it is not the address for the author of the page. How should this be coded to be semantic given the w3c recommendation of:
The ADDRESS element may be used by authors to supply contact information for a document or a major part of a document such as a form. This element often appears at the beginning or end of a document.
You could use the hCard Microformat to describe your address. The advantage of Microformats is that you can use them in your existing documents to enrich them.
Here’s an example derived from the example from the Microformats wiki:
<address class="vcard">
<span class="adr">
<span class="street-address">169 University Avenue</span>
<span class="locality">Palo Alto</span>,
<abbr class="region" title="California">CA</abbr>
<span class="postal-code">94301</span>
<span class="country-name">USA</span>
</span>
</address>
The answer by Gumbo is missing an ingredient. An hcard/vcard is required to have a name (fn).
http://microformats.org/wiki/hcard#Property_List
Also the address tag should not be used in this case as it is specifically used to relate to the author of the page it is displayed on.
<div class="vcard">
<span class="fn">Tristan Ginger</span>
<span class="adr">
<span class="street-address">169 University Avenue</span>
<span class="locality">Palo Alto</span>,
<abbr class="region" title="California">CA</abbr>
<span class="postal-code">94301</span>
<span class="country-name">USA</span>
</span>
</div>
Most business wanting to display their address on their website should use the following:
<address class="vcard">
<span class="fn org">Tristan Ginger Inc</span>
<span class="adr">
<span class="street-address">69 University Avenue</span>
<span class="locality">Great Bookham</span>,
<span class="region">Surrey</span>
<span class="postal-code">KT22 9TQ</span>
<span class="country-name">UK</span>
</span>
</address>
you can use RDFa, eg:
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:address="http://schemas.talis.com/2005/address/schema#"
xml:lang="fr" lang="fr"
>
<head>...</head>
<body>
<div typeof="foaf:Person" about="http://you.openid.com#me">
<span id="name" property="foaf:name">First Name, Last Name</span>
<address property="address:streetAddress">My Street, My City</address>
</div>
</body>
</html>
You can use the Schema.org vocabulary's PostalAddress item for this. It can be used via Microdata, RDFa, or JSON-LD.
For example, using RDFa:
<div vocab="http://schema.org/" typeof="PostalAddress">
<span property="name">Google Inc.</span>
P.O. Box<span property="postOfficeBoxNumber">1234</span>
<span property="addressLocality">Mountain View</span>,
<span property="addressRegion">CA</span>
<span property="postalCode">94043</span>
<span property="addressCountry">United States</span>
</div>
AFAIK, this should also be valid with <address> in place of the enclosing <div>:
<address vocab="http://schema.org/" typeof="PostalAddress">
<span property="name">Google Inc.</span>
P.O. Box<span property="postOfficeBoxNumber">1234</span>
<span property="addressLocality">Mountain View</span>,
<span property="addressRegion">CA</span>
<span property="postalCode">94043</span>
<span property="addressCountry">United States</span>
</address>