If the books are given the schema http://schema.org/Book then they inherit all the properties from http://schema.org/CreativeWork and of course http://schema.org/Thing - because Book is a subtype of CreativeWork, and everything is a subtype of Thing. Using http://schema.org/Book gives you isbn
, edition
, etc from Book, plus award
, genre
, author
, contributor
etc from CreativeWork, plus you can use comment
and keywords
as you choose. Also available using Book is anything inherited for Thing, like description
and sameAs
.
You can mix in whichever non-schema fields (like book size) that you want without causing a problem with the structured data. It just means that book size (for instance) isn't as likely to be in the snippet and that searching by book size won't improve the page's hits. Blemishes and book size don't seem to be key terms a person is likely to use for searching (compared to say, book name or publication year).
By choosing Book you can fill in the author
and then link to the http://schema.org/Person schema to give more information about the author, possibly using sameAs
to link to the wikipedia page or another source to uniquely identity the author. Any links like this that you don't wish to display can be hidden with the tag or
For each individual copy of a book you can use offer
- which is a property of CreativeWork (and inherited by Book). This allows you to have multiple offers by linking to http://schema.org/Offer - You can represent
the condition
of the book and Price
within Offer.
Examples adapted from http://schema.org/Offer
A single book which including book size without schema:
<div itemscope itemtype="http://schema.org/Book">
<img itemprop="image" src="catcher-in-the-rye-book-cover.jpg"
alt="cover art: red horse, city in background"/>
<span itemprop="name">The Catcher in the Rye</span>
<link itemprop="sameAs" href="http://wikipedia.org/Catcher-in-the-Rye">
Author: <a itemprop="author" href="/author/jd_salinger.html">J.D. Salinger</a>
<span itemprop="numberOfPages">224</span> pages
Publisher: <span itemprop="publisher">Little, Brown, and Company</span>
<meta itemprop="datePublished" content="1991-05-01">May 1, 1991<br>
ISBN-10: <span itemprop="isbn">0316769487</span><br>
Book size: 6 x 8 inches<br>
</div>
A single book with http://schema.org/Offer linked in to give the book's condition and Price.
<div itemscope itemtype="http://schema.org/Book">
<img itemprop="image" src="catcher-in-the-rye-book-cover.jpg"
alt="cover art: red horse, city in background"/>
<span itemprop="name">The Catcher in the Rye</span>
<link itemprop="sameAs" href="http://wikipedia.org/Catcher-in-the-Rye">
Author: <a itemprop="author" href="/author/jd_salinger.html">J.D. Salinger</a>
<span itemprop="numberOfPages">224</span> pages
Publisher: <span itemprop="publisher">Little, Brown, and Company</span>
<meta itemprop="datePublished" content="1991-05-01">May 1, 1991
ISBN-10: <span itemprop="isbn">0316769487</span>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Price: <span itemprop="price" content="6.99">$6.99</span>
<meta itemprop="priceCurrency" content="USD" />
Condition: <span itemprop="condition">Slightly creased spine</span>
</div> <!-- marks the end of the Offer schema -->
</div> <!-- marks the end of the Book schema -->
I've found it easier to get the webpage written and add in the schema one by one, eg just add Book, once it works correctly then add Offer, then Author, etc. It only takes a few days after getting google to re-fetch the page before it shows in search results.