Skip to content
Free tool

Book Schema Generator

Fill in your book's details and get Book and author structured data, checked as you type and ready to paste into your website.

Markup for one book's page.

Jump to the code

Your home page. We use it to give each item a stable ID, like yoursite.com/#author.

The bookType it the way it appears on the cover.
Optional
Optional

The page on your site where this code goes.

Recommended

Your blurb, or the first paragraph of it.

Recommended

Right-click your cover on your site and copy the image address.

Year-month-day

Separate two with a comma.

Optional
Optional
Publisher, language and other pages
Optional

Your imprint name, if you use one.

Optional

Goodreads, StoryGraph or Wikidata. One link per line.

EditionsOne for each format. Each format has its own ISBN.

Edition 1: Paperback

ISBN checks out.

Optional
Optional
Optional

The store page for this format.

Edition 2: eBook

Leave empty if your eBook has no ISBN (KDP's free ASIN isn't one).

Optional
Optional
Optional

The store page for this format.

Star ratingOptional, and only for reviews readers can see on your page.
Leave this off unless the reviews are shown on the same page.

Your JSON-LD

Valid code, ready to paste.

JSON-LD (62 lines)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Book",
  "@id": "https://example.com/books/the-salt-orchard/#book",
  "name": "The Salt Orchard",
  "alternativeHeadline": "A Harbor Lights Novel",
  "url": "https://example.com/books/the-salt-orchard/",
  "author": {
    "@type": "Person",
    "@id": "https://example.com/#author",
    "name": "Iris Halloway",
    "url": "https://example.com/"
  },
  "description": "A widowed beekeeper inherits a seaside orchard and the secrets buried under it. A warm, slow-burn second-chance romance.",
  "image": "https://example.com/images/the-salt-orchard-cover.jpg",
  "publisher": {
    "@type": "Organization",
    "name": "Lantern Row Press"
  },
  "datePublished": "2025-05-06",
  "genre": "Contemporary romance",
  "inLanguage": "en",
  "isPartOf": {
    "@type": "BookSeries",
    "name": "Harbor Lights"
  },
  "position": 1,
  "workExample": [
    {
      "@type": "Book",
      "@id": "https://example.com/books/the-salt-orchard/#isbn-9798987654309",
      "bookFormat": "https://schema.org/Paperback",
      "isbn": "9798987654309",
      "numberOfPages": 342,
      "inLanguage": "en",
      "datePublished": "2025-05-06",
      "offers": {
        "@type": "Offer",
        "url": "https://www.amazon.com/dp/B0EXAMPLE1",
        "price": "15.99",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      }
    },
    {
      "@type": "Book",
      "@id": "https://example.com/books/the-salt-orchard/#ebook",
      "bookFormat": "https://schema.org/EBook",
      "inLanguage": "en",
      "datePublished": "2025-05-06",
      "offers": {
        "@type": "Offer",
        "url": "https://www.amazon.com/dp/B0EXAMPLE2",
        "price": "4.99",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      }
    }
  ]
}
</script>

Paste it into the <head> of that book's page, or into a custom HTML block. Then test it:

AuthorPage adds Book and author markup to your site for you. Your books, ISBNs and profile links go in once.
Build your author site, free

Free to use. What you type stays in your browser.

How it works

  1. Step 1: Pick what to mark up

    A book, you as the author, or both linked together. The example fills in so you can see the result first.

  2. Step 2: Fill in your details

    Title, ISBNs, formats and links. We check each ISBN and link as you type and tell you what to fix.

  3. Step 3: Copy and test the code

    Paste the script tag into your page, then run it through Google's Rich Results Test or the Schema.org validator.

What book schema markup does

Book schema is a short block of code that describes your book in a way search engines can read without guessing. It uses the shared vocabulary at Schema.org, written as JSON-LD. That's a small script tag that sits in your page and doesn't change how the page looks. It says, in plain facts, that this page is about a book with this title, this author, this ISBN and these formats.

Here's the honest part. Structured data doesn't move you up the rankings by itself, and it doesn't guarantee anything special in results. Google's Book actions, the "Buy" and "Borrow" buttons you sometimes see, are limited to big book providers who send Google a feed. What markup does well is remove doubt. It ties your name to your books and your books to your site, so search engines are less likely to mix you up with someone else.

How to add structured data to your author website

Copy the script tag above and paste it into the page it describes. On WordPress, use a header code plugin or a Custom HTML block. On Squarespace and Wix, use the page's code injection or embed settings. Then test it with Google's Rich Results Test or the Schema.org validator. The Rich Results Test may say no rich results were found. That's expected for Book markup on an author site, and it doesn't mean the code is wrong. The validator is the better check for errors.

  • Put each book's markup on that book's own page.
  • Put your author markup on your home page or About page.
  • Only describe what the page shows. If the page doesn't mention a price, leave it out.
  • Update the code when a price, cover or link changes.

Book structured data for every edition

Google's book guidance treats your book as one work with editions inside it. Your story is the work. The paperback, hardcover, eBook and audiobook are editions, each listed under workExample with its own format and ISBN. Google prefers ISBN-13 and doesn't accept ISBN-10, so we check every digit and convert old ISBN-10s for you. Each edition can also carry an offer with its store link and price.

A series goes in as isPartOf, pointing to a BookSeries, with the book's number as its position. That's how you say "book two of the Harbor Lights series" in code.

Author schema markup and your pen name

Author markup uses the Person type. Use the name on your covers, even if it's a pen name. The sameAs list holds your Amazon author page, Goodreads, BookBub and social profiles. It tells search engines those accounts belong to the same person. Only list profiles your site links to, because the markup should match the page. If the code goes on your About page, switch on ProfilePage. Google says it's meant for exactly that: a page about one person tied to the site.

Pick Both to link everything in one block, called an @graph. Your book points to your author ID, like yoursite.com/#author, and your author entry is described once. Keep those IDs the same after you publish, so search engines keep connecting the dots.

Star ratings and review markup

You can add an aggregateRating, but only for reviews people can read on that page. Google's review rules say users should be able to see the rating you mark up. Pasting your Amazon average into code, with no reviews on the page, breaks those rules. If you show a few reader reviews on your book page, you can mark them up with confidence.

Questions authors ask

Not on its own. Google's Book actions feature, the one with "Buy" and "Borrow" buttons in search, is limited to large book providers that send Google a data feed. Review stars need real reviews shown on your page.

What the markup does is tell search engines, in plain facts, that this page is about this book by this author. That helps them connect your site to your book and your name.