Using Google Rich Snippet to present my business as ChildCare ("A Childcare center.") how I can point to the services (programs) which I am offering in the facility as Offer in itemprop="offers"?
For example I am offering 3 services (programs) in the childcare like programs for "Infant, Toddlers, and Preschoolers". How I can use the offer to point these services and their options?
If you want to model the services as Offer, you can use the makesOffer property from ChildCare:
<div itemscope itemtype="http://schema.org/ChildCare">
<div itemprop="makesOffer" itemscope itemtype="http://schema.org/Offer">
<span itemprop="name">For Infants</span>
</div>
<div itemprop="makesOffer" itemscope itemtype="http://schema.org/Offer">
<span itemprop="name">For Toddlers</span>
</div>
<div itemprop="makesOffer" itemscope itemtype="http://schema.org/Offer">
<span itemprop="name">For Preschoolers</span>
</div>
</div>
If you want to model the services as Service, you can use the provider property from Service:
<!-- because itemref gets used, this element may not be a child of another Microdata item -->
<div itemprop="provider" itemscope itemtype="http://schema.org/ChildCare" id="the-childcare-business">
</div>
<div itemscope itemtype="http://schema.org/Service" itemref="the-childcare-business">
<span itemprop="name serviceType">Childcare for Infants</span>
</div>
<div itemscope itemtype="http://schema.org/Service" itemref="the-childcare-business">
<span itemprop="name serviceType">Childcare for Toddlers</span>
</div>
<div itemscope itemtype="http://schema.org/Service" itemref="the-childcare-business">
<span itemprop="name serviceType">Childcare for Preschoolers</span>
</div>
The main difference is that you may provide a price (price/priceCurrency) for an Offer, but not for a Service.
You could of course also use both types.
Related
I have adapted a code taken from example 2 on http://schema.org/ItemList
How do I use it together with Product? On frontpage and some other pages I have a list of products for which I would like to have a better markup.
The following code gives the error
A value for the position field is required.
but Product doesn't have a position, so if there is a value for position it gives different error.
<ul itemscope itemtype="http://schema.org/ItemList">
<meta itemprop="numberOfItems" content="10" />
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/Product">
<!-- <meta itemprop="position" content="1" /> -->
<a href="#" itemprop="url">
<img src="asdf.jpg" itemprop="image">
<div class="product-list__title" itemprop="name">
Product name
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<div itemprop="price">
$12
</div>
<link itemprop="availability" href="http://schema.org/InStock" />
</div>
</a>
</li>
</ul>
The itemListElement property has three expected values:
ListItem
Text
Thing
ListItem is also a Thing, but it’s listed explicitly because it has a special role here: ListItem provides the position property. If you need to convey the position of the list items, you have to provide ListItem values.
Note that not every ItemList needs this. Your example with using Product values is fine (apart from the meta element which can’t be a child of ul), and unless you try to qualify for Google’s rich result (this is what the error message is about), you could keep it like that.
If you do want to provide the positions, an itemListElement could look like this:
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<meta itemprop="position" content="1" />
<div itemprop="item" itemscope itemtype="http://schema.org/Product">
<!-- your Product -->
</div>
</li>
I am having trouble using Schema.org and working out which itemtypes to use for the list of my customers.
I have some thing like this:
<div class='famouse-brands'>
<h1> my famous customers </h1>
<div>Company name1 </div>
<div>Company name2 </div>
<div>Company name3 </div>
</div>
Not sure if I should use ItemList or customer and Invoice.
There are 2 ways to display the Customer using schema.org
Schema Type Invoice
<div itemscope itemtype="http://schema.org/Invoice">
<h1 itemprop="description">Invoice 1</h1>
<div itemprop="customer" itemscope itemtype="http://schema.org/Person">
<b itemprop="name">Jane Doe</b>
</div>
</div>
Schema Type Order
<div itemscope itemtype="http://schema.org/Order">
<h1 itemprop="description">Order 1</h1>
<div itemprop="customer" itemscope itemtype="http://schema.org/Person">
<b itemprop="name">Jane Doe</b>
</div>
</div>
You can use any of above schema as per your current website structure.
Also, you can refer the detailed schema demos with Microdata, RDFa and JSON-LD on the links given above for Invoice and Order.
I use itemscopes for a gallery, based in Brazil but they also have two other locations for the exhibitions somewhere else, all of them showing up in the footer.
Can I use multiple Location Schemes on a page? If so, how would I do this? Is it fine if I just duplicate the following, or should I split it up with the first belonging to Organization and the other two to Places?
<p itemscope itemtype="http://schema.org/Place">
<span itemprop="name" style="display:none;">Gallery</span>
<span itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<span itemprop="streetAddress">{!! $street !!}</span><br>
<span itemprop="addressLocality">{!! $town !!}</span><br>
<span itemprop="postalCode">{!! $postal !!}</span>
<span itemprop="addressRegion">{!! \App\Info::val('adresscountry') !!}</span><br>
<span itemprop="telephone">{!! $phone !!}</span><br><br>
<span>{!! $openinghours !!}</span><br><br>
<span itemprop="email">mail#gallery.com</span><br><br>
</span>
</p>
It is one organization that owns three places where exhibitions are held. It would be nice if every place would be featured on search machines, no need for the specific exhibitions.
Note that the following doesn’t necessarily lead to rich results in search engines. In case of Google Search, it seems they don’t offer a rich result for places (and even if they would, it would probably require a dedicated page per place). However, they have a rich result for events.
You could provide an Organization item with three location values:
<div itemscope itemtype="http://schema.org/Organization">
<div itemprop="location" itemscope itemtype="http://schema.org/Place" id="loc-1"><!-- location 1 --></div>
<div itemprop="location" itemscope itemtype="http://schema.org/Place" id="loc-2"><!-- location 2 --></div>
<div itemprop="location" itemscope itemtype="http://schema.org/Place" id="loc-3"><!-- location 3 --></div>
</div>
For each ExhibitionEvent, you could reference its location (assuming that the places are part of the footer on the event pages, too) via the itemref attribute:
<div itemscope itemtype="http://schema.org/ExhibitionEvent" itemref="loc-2">
</div>
I'm defining a http://schema.org/Event for an "open house" tour of a residential home. The event's name is "Open House," but the location doesn't have a "name" (other than its address).
According to https://developers.google.com/structured-data/rich-snippets/events I ought to be able to use a PostalAddress for the location field of the snippet, perhaps like this:
<div itemscope itemtype="http://schema.org/Event">
<div itemprop="name">Open House</div>
<div itemprop="startDate" content="2015-07-04T13:00-0700">Sat, July 4th at 1pm</div>
<div itemprop="location" itemscope itemtype="http://schema.org/PostalAddress">
<div>
<span itemprop="streetAddress">123 Main St</span>,
<span itemprop="addressLocality">San Francisco</span>,
<span itemprop="addressRegion">CA</span>,
<span itemprop="postalCode">94111</span>
</div>
</div>
</div>
But this fails in the Rich Snippet test tool. https://developers.google.com/structured-data/testing-tool/ It says that my location requires "name" and "address" properties.
That makes perfect sense if the location is a named Place, e.g. a restaurant or business venue. For example, this validates in the test tool:
<div itemscope itemtype="http://schema.org/Event">
<div itemprop="name">Open House</div>
<div itemprop="startDate" content="2015-07-04T13:00-0700">Sat, July 4th at 1pm</div>
<div itemprop="location" itemscope itemtype="http://schema.org/Place">
<div itemprop="name">WHAT DO I PUT HERE?!</div>
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<div>
<span itemprop="streetAddress">123 Main St</span>,
<span itemprop="addressLocality">San Francisco</span>,
<span itemprop="addressRegion">CA</span>,
<span itemprop="postalCode">94111</span></div>
</div>
</div>
</div>
The problem is, I have no idea what name to use for a residential home. It doesn't have a name, other than its address.
What's the right way to construct this snippet? Is Google's documentation incorrect? If the test tool is correct, do I have to name a nameless Place?
Right after posting my question, I realized that I could nest the address inside the name, making the name be equal to the address. The test tool accepts this. (But this feels wrong.)
<div itemscope itemtype="http://schema.org/Event">
<div itemprop="name">Open House</div>
<div itemprop="startDate" content="2015-07-04T13:00-0700">Sat, July 4th at 1pm</div>
<div itemprop="location" itemscope itemtype="http://schema.org/Place">
<div itemprop="name">
<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
<div>
<span itemprop="streetAddress">123 Main St</span>,
<span itemprop="addressLocality">San Francisco</span>,
<span itemprop="addressRegion">CA</span>,
<span itemprop="postalCode">94111</span></div>
</div>
</div>
</div>
</div>
Tried to Google out but came empty handed. I'm looking for a snippet containing example markup.
How should I mark all-day events?
How should I mark concerts having multiple performances with varying locations (for same data multiple start and end dates) aka. subEvents? This is what I tried:
<section itemscope itemtype="http://data-vocabulary.org/Event"><!-- section per event -->
<a href="/test#event_17" id="event_17" itemprop="url">
<h3><!-- visual title when and where -->
<div itemprop="summary"><!-- summary what the event is for -->
Summary text
</div>
</h3>
</a>
<span itemprop="location" class="location">
Location name
</span>
<span itemprop="subEvent" itemscope itemtype="http://data-vocabulary.org/Event">
<a href="/test#event_17_1" id="event_17_1" itemprop="url">
<time itemprop="startDate" datetime="2014-09-15T15:00:00+03:00">00:00</time>
—
<time itemprop="endDate" datetime="2014-09-15T17:00:00+03:00">00:00</time>
</a>
</span>
<span itemprop="subEvent" itemscope itemtype="http://data-vocabulary.org/Event">
<a href="/test#event_17_2" id="event_17_2" itemprop="url">
<time itemprop="startDate" datetime="2014-10-10T20:00:00+03:00">00:00</time>
—
<time itemprop="endDate" datetime="2014-10-10T22:00:00+03:00">00:00</time>
</a>
</span>
<div itemprop="description"><!-- details of the event -->
Description
</div>
</section>
Based solely on http://www.google.com/webmasters/tools/richsnippets
How should I mark all-day events?
For all day events it seems that the appropriate way is to give only datetime value. End date is not required.
2015/02/17
How should I mark concerts having multiple performances with varying locations (for same data multiple start and end dates) aka. subEvents?
Notice itemref to concert name.
<h1 itemscope=""><span id="concertName" itemprop="name">Foo</h1>
<p>
<span itemscope="" itemtype="http://schema.org/MusicEvent" itemref="concertName">
<strong>Wed 3.12.2014</strong> 10:05
<span itemprop="location" itemscope="" itemtype="http://schema.org/Place">
<span itemprop="name">Concert Hall</span>
</span>
<meta itemprop="startDate" content="2014-12-03T10:05:00+02:00" />
<meta itemprop="url" content="http://www.example.com/concert/8" />
</span>
<span itemscope="" itemtype="http://schema.org/MusicEvent" itemref="concertName">
<strong>Fri 26.12.2014</strong> 10:05
<span itemprop="location" itemscope="" itemtype="http://schema.org/Place">
<span itemprop="name">Concert Hall</span>
</span>
<meta itemprop="startDate" content="2014-12-26T10:05:00+02:00" />
<meta itemprop="url" content="http://www.example.com/concert/8" />
</span>
</p>