1

How can I show Googlebot by attributes from Schema.org that my company provide services below?

Repair, installation and modernization:

  • gas installation
  • water instalation
  • electrical installation

Repair and installation devices:

  • water heater repair
  • gas stove

I made these data structures but i don't which one is correct.

<div itemscope itemtype="http://schema.org/Service">
    <span itemprop="serviceType">building installations</span>
    <div itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness">
        <span itemprop="name">CompanyName</span>
    </div>
    <div itemprop="hasOfferCatalog" itemscope itemtype="https://schema.org/OfferCatalog">
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/OfferCatalog">
            <span itemprop="name">Repair, installation and modernization</span>
            <div itemprop="itemListElement" itemscope itemtype="https://schema.org/OfferCatalog">
                <span itemprop="itemListElement" itemscope itemtype="https://schema.org/Offer">
                    <span itemprop="itemOffered" itemscope itemtype="https://schema.org/Service">
                        <span itemprop="name">gas installation</span>
                    </span>
                </span>
            </div>
        </div>
    </div>
</div>

Can i make it shorter in this way?

<div itemscope itemtype="http://schema.org/Service">
    <span itemprop="serviceType">building installations</span>
    <div itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness">
        <span itemprop="name">CompanyName</span>
    </div>
    <div itemprop="hasOfferCatalog" itemscope itemtype="https://schema.org/OfferCatalog">
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/OfferCatalog">
            <span itemprop="name">Repair, installation and modernization</span>
            <div itemprop="itemListElement" itemscope itemtype="https://schema.org/OfferCatalog">
                <span itemprop="itemListElement" itemscope itemtype="https://schema.org/Service">
                    <span itemprop="name">gas installation</span>
                </span>
            </div>
        </div>
    </div>
</div>

Do services must be separaterd in this way?

<div itemscope itemtype="http://schema.org/Service">
    <span itemprop="serviceType">building installations</span>
    <div itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness">
        <span itemprop="name">CompanyName</span>
    </div>
    <div itemprop="hasOfferCatalog" itemscope itemtype="https://schema.org/OfferCatalog">
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/OfferCatalog">
            <span itemprop="name">repair</span>
            <span itemprop="name">installation</span>
            <span itemprop="name">modernization</span>
            <div itemprop="itemListElement" itemscope itemtype="https://schema.org/OfferCatalog">
                <span itemprop="itemListElement" itemscope itemtype="https://schema.org/Offer">
                    <span itemprop="itemOffered" itemscope itemtype="https://schema.org/Service">
                        <span itemprop="name">gas installation</span>
                    </span>
                </span>
            </div>
        </div>
    </div>
</div>

If none of the examples is correct please tell me how do it.

1 Answer 1

1

I don't think any of your examples are entirely correct.

  1. Your ‘gas installation’ Service is offered as part of an OfferCatalog as part of an OfferCatalog given as an itemListElement which itself is an OfferCatalog provided by the ‘building installations’ service. Confusing? Precisely.

  2. You've changed your third OfferCatalog's itemListElement to be a Service rather than an Offer. OfferCatalogs are supposed to be catalogs of Offers, and now this is no longer the case.

  3. Here, the itemListElement has three names. This is therefore confusing as to what the itemListElement actually is.

Instead, this is what I would recommend.

<div itemscope itemtype="http://schema.org/Service">
    <span itemprop="serviceType">Repair, installation and modernization</span>
    <div itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness">
        <span itemprop="name">CompanyName</span>
    </div>
    <div itemprop="hasOfferCatalog" itemscope itemtype="https://schema.org/OfferCatalog">
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/Offer">
            <span itemprop="name">gas installation</span>
        </div>
    </div>
</div>

This way, your Service has an OfferCatalog with an Offer for each offer.


To include the rest of your bullet points (which you didn't include in your code examples), I would do the following:

<div itemscope itemtype="http://schema.org/Service">
    <span itemprop="serviceType">Repair, installation and modernization</span>
    <div itemprop="provider" itemscope itemtype="http://schema.org/LocalBusiness" id="business">
        <span itemprop="name">CompanyName</span>
    </div>
    <div itemprop="hasOfferCatalog" itemscope itemtype="https://schema.org/OfferCatalog">
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/Offer">
            <span itemprop="name">gas installation</span>
        </div>
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/Offer">
            <span itemprop="name">water installation</span>
        </div>
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/Offer">
            <span itemprop="name">electrical installation</span>
        </div>
    </div>
</div>
<div itemscope itemtype="http://schema.org/Service" itemref="business">
    <span itemprop="serviceType">Repair and installation devices</span>
    <div itemprop="hasOfferCatalog" itemscope itemtype="https://schema.org/OfferCatalog">
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/Offer">
            <span itemprop="name">water heater repair</span>
        </div>
        <div itemprop="itemListElement" itemscope itemtype="https://schema.org/Offer">
            <span itemprop="name">gas stove</span>
        </div>
    </div>
</div>

Here I've also used ‘itemid’ to refer to the same LocalBusiness for both services.

This makes far more sense:

    

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.