bookFormat
bookFormat · Required by Google
Appears in
What is it?
The bookFormat property identifies the physical or digital format of a book edition. It distinguishes between paperback, hardcover, ebook, and audiobook editions of the same work.
Google requires this field at the workExample (edition) level, not on the top-level Book. Each edition of a book should have its own bookFormat value.
Why this matters for AEO
When a user asks "is The Great Gatsby available as an audiobook," AI answer engines check bookFormat across workExample entries to identify available formats. Without structured format data, the AI cannot distinguish between editions and may give incomplete answers.
What the specs say
Schema.org:BookFormatType. The format of the book.
Google: Required. "The format of the edition." Source
How to find your value
- Paperback —
https://schema.org/Paperback - Hardcover —
https://schema.org/Hardcover - Ebook —
https://schema.org/EBook - Audiobook —
https://schema.org/AudiobookFormat - Graphic Novel —
https://schema.org/GraphicNovel
Format and code
Inside a workExample:
{
"@context": "https://schema.org",
"@type": "Book",
"name": "The Catcher in the Rye",
"author": {
"@type": "Person",
"name": "J.D. Salinger"
},
"workExample": [
{
"@type": "Book",
"bookFormat": "https://schema.org/Paperback",
"isbn": "9780316769488"
},
{
"@type": "Book",
"bookFormat": "https://schema.org/EBook",
"isbn": "9780316769495"
}
]
}
Common invalid pattern (wrong value):
{
"bookFormat": "Paperback"
}
Use the full schema.org URL, not plain text.
Webflow implementation
Static pages
Add bookFormat as the full schema.org URL inside each workExample object in your Book JSON-LD block in Page Settings > Custom Code > Footer Code.
CMS template pages
Create a CMS option field with values mapping to BookFormatType URLs (Paperback, Hardcover, EBook, AudiobookFormat). Reference the selected option in a custom code embed to populate the bookFormat URL.
In Schema HQ
The bookFormat field does not currently generate Book markup. Add book format data manually through Webflow custom code.
Real examples
From JSONld.com:
{
"@context": "https://schema.org",
"@type": "Book",
"name": "The Catcher in the Rye",
"workExample": {
"@type": "Book",
"bookFormat": "https://schema.org/Paperback",
"isbn": "0316769487"
}
}
From Schema.org Book Example:
{
"@context": "https://schema.org",
"@type": "Book",
"name": "Holt Physical Science",
"workExample": {
"@type": "Book",
"bookFormat": "https://schema.org/EBook",
"isbn": "9780030426599"
}
}
Related fields
FAQ
Why must bookFormat use a URL instead of plain text?
bookFormat expects a BookFormatType enumeration value, which schema.org defines as full URLs (e.g., https://schema.org/Paperback). Plain text like "Paperback" is not a valid enumeration member and will not be recognized by Google.
Does bookFormat go on the top-level Book or on workExample?
On workExample. The top-level Book represents the abstract work (the novel itself). Each workExample represents a specific edition with its own format, ISBN, and language. Google requires bookFormat at the edition level.
What BookFormatType values are available?
Schema.org defines: Paperback, Hardcover, EBook, AudiobookFormat, and GraphicNovel. Use the full URL form: https://schema.org/Paperback.