1
\$\begingroup\$

This is the follow up version of a previous question on combining different categories and their properties.

The home page contains the overarching company information. The product page contains product information and links to the home page.

I do not get any error messages in Google testing tool. But I feel that the code is clunky. I am concerned that a lot of the information is hidden and that search prefer to index information that is also visible to the user.

Home page

<body itemscope itemtype="http://schema.org/Organization">
<a itemprop="url" href="http://www.example.com/">Organization</a>
<meta itemprop="name" content="Organizaton name" />
<img itemprop="image" src="company-logo.jpg" alt="Image-alt-name"/>
<p itemprop="description">short description on home page</p>
</body>

Product page

<body itemprop="branchOf" itemscope itemtype="http://schema.org/Organization" id="schema-organization">

<div itemscope itemtype="http://schema.org/TravelAgency" itemref="schema-organization">
<link itemprop="url" href="http://www.sub-company-url/">                
<meta itemprop="name" content="Sub-company name" />


<div itemscope itemtype="http://schema.org/Product">

<span itemprop="name">NAME OF PRODUCT</span>
The cost of
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span itemprop="itemOffered">NAME OF PRODUCT</span>
<meta itemprop="priceCurrency" content="EUR">€</span><span itemprop="price" content="600.00">600</span>
</div></div>
</div>
</body>
\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

Home page

The Microdata is fine.

I don’t know if it’s possible with the design of your page, but typically you would link the name/logo (then you could omit the meta and you wouldn’t need alt content), so it could look like:

<body itemscope itemtype="http://schema.org/Organization">
  <a itemprop="url" href="http://www.example.com/">
    <img itemprop="image" src="company-logo.jpg" alt="" /> <!-- empty alt because the 'name' already describes the link target -->
    <span itemprop="name">Organizaton</span>
  </a>
  <p itemprop="description">short description on home page</p>
</body>

Product page

  • You are using the name property (from TravelAgency) on a meta element, but do you really have no visible name of the travel agency on your page (e.g., in the header)? If you have one, you could use that element instead of meta.

  • The itemOffered property expects a Product item as value, but you are using text.

    As you are already using Product → offers → Offer, there is no need for the reverse relation Offer → itemOffered → Product.

    You probably want to use the name property instead, however, if the Product has the same name as the Offer, omit this property altogether.

  • If the only data about the Product is the name, consider omitting this item. You could use Offer directly (unless you have several offers for the same Product).

  • There is a superfluous </span>.

  • Your span element has a content attribute, which is not allowed. Use a meta or data element (or in your specific case, just the content of the span.)

\$\endgroup\$
1
  • \$\begingroup\$ Thank you for your very useful feedback! I have cleaned up the code and tested it with Google. There are no error messages. I am not much of a coder as you know but if I can be of help in the future please let me know. All the best. Julien :-) \$\endgroup\$
    – Julien
    Commented Jan 28, 2015 at 8:32

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.