Search code examples
schema.orggoogle-custom-searchgoogle-search-apirdfastructured-data

Google Custom Search Engine Schema.org structured data and returned results through API


Here is my markup with rich snippets

<div vocab="http://schema.org" typeof="GovernmentOrganization">
<p>
    <span property="logo"><img src="http://www.place.com/image.png" class="logo"/></span>
    <span class="h2" property="name">Department Of Stuff And Things</span><br />
    <span class="h4" property="department">State Agency</span><br />
    <a href="http://www.place.com" class="h4 text-primary" property="url">http://www.place.com</a>
</p>

<strong>Locations:</strong><br /><br />                 
    <div property="location" typeof="GovernmentOffice">
        <p property="location" typeof="PostalAddress">
            Main Office<br />
            <span property="streetAddress">555 Something Street Apt 2</span><br />
            <span property="addressLocality">Jacksonville</span> 
            <span property="addressRegion">FL</span> 
            <span property="postalCode">11111</span><br />
            <span property="addressCountry">US</span>
        </p>
    </div>

<strong>Services:</strong><br /><br />
<div property="hasOfferCatalog" typeof="OfferCatalog">
        <div property="itemListElement" typeof="GovernmentService">
            <p>
                <strong><span property="name">Service 1</span></strong><br />
                <span property="category">Web Based</span><br />
                <span property="description">Get Some stuff and things</span><br />
                <a href="https://www.place.com/Service1" property="url">https://www.place.com/Service1</a><br />
            </p>
        </div>
        <div property="itemListElement" typeof="GovernmentService">
            <p>
                <strong><span property="name">Apply For Benefits</span></strong><br />
                <span property="category">Phone Based</span><br />
                <span property="description">This service helps you apply for the benefits you deserve</span><br />
                <a href="https://www.place.com/Service2" property="url">https://www.place.com/Service1</a><br />
            </p>
        </div>
</div> 

The structured data testing tool seems to organize and validate everything appropriately, Including my small collection of services (OfferCatalog). When doing a request to the Custom Search API and tacking on the :more:pagemap:GovernmentOrganization things seem to be OK and I get results I expect. But the JSON object for pagemap only includes the first level of my organization:

"pagemap": {
"GovernmentOrganization": [
 {
  "name": "Department Of Stuff And Things",
  "department": "State Agency",
  "url": "http://www.place.com"
 },

Any ideas on why my related objects (GovernmentOffice / locations / OfferCatalog / GovernmentServices) are not being including? Is there a better way to organize and structure this for Google?


Solution

  • As per the Google:

    I believe you are seeing only one value of a attribute in JSON API.

    I would like to update you that as per the design in JSON API we show only one attribute value, while in XML we show all values.

    We already have a feature request #16696973 to display all the attribute values in JSON API. Currently I don't have an ETA when it will be implemented.

    As a workaround you have to use XML API.