Book
Book covers any published book: physical, ebook, or audiobook. Google has a dedicated Book rich result that shows cover images, ratings, and purchase links directly in search. It appears for book-title queries and author-name searches. The markup is also consumed by Google Knowledge Graph, library catalogs, and AI systems that recommend reading material.
The most useful pattern to learn here is workExample, which lets you describe multiple editions (hardcover, paperback, Kindle) under a single canonical Book entity. Each edition gets its own ISBN, format, and pricing. Without workExample, you would need separate Book blocks for each edition, and Google would not know they are the same title.
Full example of schema.org/Book json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@id": "https://roydanmedjournal.dk/books/children-first#book",
"@type": "Book",
"name": "Children First: A Pediatric Framework for the Modern World",
"alternateName": "Children First",
"description": "The definitive textbook on post-war pediatric care in Scandinavia, expanding Jane Xoo's 1945 clinical framework into a comprehensive guide covering triage, nutrition, rehabilitation, and long-term developmental monitoring for children affected by wartime deprivation.",
"image": "https://roydanmedjournal.dk/books/children-first/cover-1948.jpg",
"url": "https://roydanmedjournal.dk/books/children-first",
"author": {
"@id": "https://janexoo.com#person"
},
"publisher": {
"@type": "Organization",
"@id": "https://roydanmedjournal.dk#publication",
"name": "Royal Danish Medical Journal Press"
},
"datePublished": "1948",
"inLanguage": "da",
"genre": "Medical textbook",
"numberOfPages": "412",
"about": {
"@type": "Thing",
"name": "Pediatric medicine",
"sameAs": "https://en.wikipedia.org/wiki/Pediatrics"
},
"isBasedOn": {
"@id": "https://roydanmedjournal.dk/archive/1945/pediatric-care-post-war-denmark#article"
},
"workExample": [
{
"@type": "Book",
"isbn": "9788702012345",
"bookEdition": "First edition",
"bookFormat": "https://schema.org/Hardcover",
"datePublished": "1948",
"potentialAction": {
"@type": "ReadAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://roydanmedjournal.dk/books/children-first/hardcover",
"actionPlatform": "https://schema.org/DesktopWebPlatform"
},
"expectsAcceptanceOf": {
"@type": "Offer",
"price": "0",
"priceCurrency": "DKK",
"availability": "https://schema.org/InStock"
}
}
},
{
"@type": "Book",
"isbn": "9788702067891",
"bookEdition": "Revised second edition",
"bookFormat": "https://schema.org/Paperback",
"datePublished": "1962",
"numberOfPages": "480",
"potentialAction": {
"@type": "ReadAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://roydanmedjournal.dk/books/children-first/paperback",
"actionPlatform": "https://schema.org/DesktopWebPlatform"
},
"expectsAcceptanceOf": {
"@type": "Offer",
"price": "0",
"priceCurrency": "DKK",
"availability": "https://schema.org/InStock"
}
}
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "83",
"bestRating": "5"
}
}
</script>workExample for editions
A Book block describes the abstract work. Each physical or digital edition is a workExample containing its own @type: Book with isbn, bookFormat, potentialAction (ReadAction with purchase URL), and offers. Google reads the workExample array to populate the "Get this book" panel with links to each edition. If you sell only one format, you can put isbn and offers directly on the parent Book and skip workExample.
isbn and bookFormat
isbn takes a 10-digit or 13-digit ISBN as a plain string (no hyphens). bookFormat uses schema.org enum values: https://schema.org/Hardcover, https://schema.org/Paperback, https://schema.org/EBook, https://schema.org/AudiobookFormat. Note the full URLs, not plain strings. Google validates these and ignores formats it does not recognize.
ReadAction for purchase links
Each edition can include a potentialAction with a ReadAction that has a target URL pointing to the purchase or reading page. Google uses these to build the "Read" and "Buy" buttons in the Book rich result. The expectsAcceptanceOf property on the ReadAction connects it to the Offer, tying the price to the action.
author cross-referencing
If the book's author has a Person entry elsewhere on your site or in the same JSON-LD block, reference it via @id instead of duplicating the author data. This connects the book to the author's full profile in the knowledge graph, which strengthens both entities.
Minimal valid version
The smallest markup that still produces a valid Book entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Book",
"name": "Children First: A Pediatric Framework for the Modern World",
"author": {
"@type": "Person",
"name": "Jane Xoo"
},
"workExample": {
"@type": "Book",
"isbn": "9788702012345",
"bookFormat": "https://schema.org/Hardcover"
}
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsBook rich resultprimary
Common Book mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
ISBN with hyphens
Wrong"isbn": "978-87-02-01234-5"Right"isbn": "9788702012345"ISBN must be a plain string of 10 or 13 digits with no hyphens, spaces, or prefixes. Google validates the format and ignores ISBNs that contain non-digit characters.
- 02
bookFormat as a plain string
Wrong"bookFormat": "Hardcover"Right"bookFormat": "https://schema.org/Hardcover"bookFormat expects a full schema.org URL, not a plain string. Valid values are https://schema.org/Hardcover, Paperback, EBook, and AudiobookFormat. Plain strings may validate in some tools but are not reliably parsed by Google.
- 03
Separate Book blocks for each edition
WrongTwo separate Book JSON-LD blocks, one for hardcover and one for paperbackRightOne Book block with a workExample array containing both editionsWithout workExample, Google treats each Book block as a separate title. The canonical Book entity should appear once, with editions listed as workExample entries. This lets Google build a unified book panel with links to all available formats.
- 04
Missing ReadAction on purchase links
Wrong"offers": { "@type": "Offer", "url": "https://example.com/buy" }Right"potentialAction": { "@type": "ReadAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://example.com/buy" } }Google's Book rich result uses ReadAction (not plain Offer URLs) to build the "Read" and "Buy" buttons. An Offer with a url property will price the book but will not generate an action button in search results.
- 05
Author duplicated instead of cross-referenced
Wrong"author": { "@type": "Person", "name": "Jane Xoo", "birthDate": "1921", ... } (full Person object repeated in Book)Right"author": { "@id": "https://janexoo.com#person" }If the author has a Person entry elsewhere, reference it via @id. Duplicating the full Person data in the Book block creates two competing entities in the knowledge graph and makes it harder for Google to reconcile them.
Schema properties in this example
About the example data
The book is "Children First: A Pediatric Framework for the Modern World", Jane Xoo's 1948 textbook expanding on her 1945 paper. The author references the Person example's Jane Xoo via @id. The publisher is the Royal Danish Medical Journal (same entity that published the original paper), connecting back to the Article example's publisher @id. Two editions are shown: the original 1948 hardcover and a 1962 revised paperback.
Comments
Loading comments...