Book Schema for Publishers

No Comments

AI Summary

Book structured data models a title as a two level tree: one Book work that carries the name, author, and rating, linked through workExample to a separate edition entity for each format. Every edition needs its own ISBN, a valid bookFormat token, and a ReadAction target so search engines can present accurate buy or read links.

  • The Book work links to each edition through the workExample property.
  • One ISBN per edition: never share a single ISBN across formats.
  • bookFormat must use a schema.org token such as Hardcover, EBook, or AudiobookFormat.
  • Attach a ReadAction to each edition and validate with the Rich Results Test.
Two level book schema tree showing a single book work linked by workexample to separate hardcover, ebook and audiobook editions, each with its own isbn, bookformat and readaction.
Book structured data is a two level tree: one Book work with one edition per format, each carrying its own ISBN.

Why publishers mark up books

A book listing page is dense with facts a search engine cannot reliably infer from prose: the author, the ISBN of each format, the publication date, the price, and where a reader can buy or borrow. Book structured data states all of that explicitly. Google supports a book actions feature that can surface actionable buy and borrow links for approved publishers and retailers, and even when that rich treatment is not granted, the markup gives crawlers and AI answer systems a clean description of the title and its editions to work from.

The single idea that trips people up is the two level model. Book markup is not one flat blob. It is a work entity that represents the title, connected to one edition entity for every format you sell. Get that shape right and the rest is detail.

The work and its editions

Think of the work as the title in the abstract and each edition as a physical or digital product you can actually buy. The work holds properties that belong to the title as a whole. Each edition holds the properties that differ between formats.

PropertyLives onExample value
nameBook workThe full title
authorBook workPerson with a name and url
workExampleBook workArray of edition entities
isbnEditionUnique per format
bookFormatEditionHardcover, EBook, AudiobookFormat
potentialActionEditionReadAction with a target url

A worked example

Here is a compact Book work with two editions. Notice that each edition is its own object inside workExample, each carries a distinct ISBN, and each has a ReadAction pointing at the page where that format can be bought:

{
  "@context": "https://schema.org",
  "@type": "Book",
  "name": "The Olive Harvest",
  "author": { "@type": "Person", "name": "A. Writer", "url": "https://example.com/authors/a-writer/" },
  "url": "https://example.com/books/the-olive-harvest/",
  "workExample": [
    {
      "@type": "Book",
      "bookFormat": "https://schema.org/Hardcover",
      "isbn": "9781234567890",
      "bookEdition": "First Edition",
      "datePublished": "2026-03-01",
      "inLanguage": "en",
      "potentialAction": {
        "@type": "ReadAction",
        "target": "https://example.com/books/the-olive-harvest/hardcover/",
        "expectsAcceptanceOf": { "@type": "Offer", "price": "24.00", "priceCurrency": "USD" }
      }
    },
    {
      "@type": "Book",
      "bookFormat": "https://schema.org/EBook",
      "isbn": "9781234567906",
      "datePublished": "2026-03-01",
      "inLanguage": "en",
      "potentialAction": {
        "@type": "ReadAction",
        "target": "https://example.com/books/the-olive-harvest/ebook/"
      }
    }
  ]
}

The mistakes that break book markup

Three errors account for most failed validations. First, sharing one ISBN across formats: an ISBN identifies a single edition, so each format must carry its own. Second, using a free text bookFormat like "digital" instead of a schema.org token such as EBook or AudiobookFormat, which will not validate. Third, flattening everything into a single Book with no workExample, which loses the work to edition relationship the feature depends on. Keep the two levels distinct and give each edition its full set of identifying properties.

Audiobooks and ratings

For an audiobook edition, pair bookFormat AudiobookFormat with the audio specific fields you have, such as duration and readBy for the narrator. If you show an aggregate rating, place aggregateRating on the work rather than duplicating it on every edition, since the rating usually reflects the title as a whole. Only use ratings that come from genuine reviews on your property.

Validate before you rely on it

Run every book page through the Rich Results Test and the Schema Markup Validator. Confirm the work links to each edition, each edition has a unique ISBN and a valid format token, and each ReadAction target resolves to a live page. Structured data that fails validation is not eligible for any enhanced treatment, so treat a clean pass as the minimum bar before you consider the markup done.

Frequently asked questions

What is Book schema used for?

Book structured data describes a published title so search engines can understand it as a work with distinct editions and formats. Google supports a book actions feature that can surface buy and borrow links directly in results for eligible publishers and retailers. Even where the rich feature does not appear, the markup gives crawlers and AI systems a clean, machine readable description of the title, author, and available editions.

How is a Book work different from an edition?

The work is the title in the abstract, for example the novel itself, and it holds the name, author, and overall rating. An edition is a specific published form of that work, such as the hardcover or the ebook, and it holds the ISBN, format, publication date, and its own buy or read link. In markup the work links to each edition through the workExample property.

Does each format need its own ISBN?

Yes. An ISBN identifies one specific edition, so the hardcover, paperback, ebook, and audiobook each carry a different ISBN. Never reuse a single ISBN across formats in your markup, because it misrepresents the products and can cause the structured data to be rejected. Map one edition entity to one ISBN.

What bookFormat values are valid?

The bookFormat property expects a value from the schema.org BookFormatType list, such as Hardcover, Paperback, EBook, AudiobookFormat, and GraphicNovel. Use the exact token, since a free text label will not validate. If you sell an audiobook, pair AudiobookFormat with the audio specific properties like duration and readBy where you have them.

How do I add buy or read links in the markup?

Attach a potentialAction of type ReadAction to each edition, with a target that points to the page where a reader can buy or access that format. For paid editions, use expectsAcceptanceOf to reference the offer. This is what powers the actionable buy and borrow links in the book actions feature for approved providers.

How do I test Book structured data?

Paste the page URL or the code into the Rich Results Test and Schema Markup Validator to catch missing required properties and type errors. Confirm the work links to each edition, every edition has a unique ISBN and a valid bookFormat, and the ReadAction targets resolve. Fix any error before you expect the markup to be eligible for enhanced treatment.

Related reading

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog