BookSeries
BookSeries is a CreativeWorkSeries subtype for a series of books: the Discworld novels, the Harry Potter series, a multi-volume reference set. It adds no properties of its own. Books in the series link via hasPart; shared metadata (startDate, endDate, author, publisher) sits on the BookSeries entity itself.
Full example of schema.org/BookSeries json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BookSeries",
"name": "Xoo Code Pocket Reference",
"description": "Four pocket-format reference books covering JSON-LD, structured data testing, the schema.org vocabulary, and Google rich results.",
"author": { "@type": "Person", "name": "Jane Xoo" },
"publisher": { "@type": "Organization", "name": "Xoo Code Press" },
"startDate": "2024-06-01",
"endDate": "2026-03-15",
"numberOfEpisodes": 4,
"hasPart": [
{ "@type": "Book", "name": "JSON-LD Pocket Reference", "position": 1, "isbn": "978-1-66566-000-1" },
{ "@type": "Book", "name": "Structured Data Testing Pocket Reference", "position": 2, "isbn": "978-1-66566-000-2" },
{ "@type": "Book", "name": "Schema.org Vocabulary Pocket Reference", "position": 3, "isbn": "978-1-66566-000-3" },
{ "@type": "Book", "name": "Google Rich Results Pocket Reference", "position": 4, "isbn": "978-1-66566-000-4" }
]
}
</script>Series order and position
Use position inside each Book.isPartOf (or use the ItemList pattern via hasPart) to express reading order. BookSeries itself does not carry an ordered index; consumers look at the positions on the individual Books.
Minimal valid version
The smallest markup that still produces a valid BookSeries 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": "BookSeries",
"name": "Xoo Code Pocket Reference",
"author": { "@type": "Person", "name": "Jane Xoo" }
}
</script>Google rich results this unlocks
BookSeries is a structural type. It does not produce a rich result on its own.
Its value comes from combining it with a primary type whose markup earns a rich result (Article, Product, Event, and so on). BookSeries becomes the trunk that the primary type branches off viamainEntityorbreadcrumb. Include it on every page as the backbone of your markup.
Common BookSeries 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
Ordering series books without position
WronghasPart list with no position on each BookRightEach Book in hasPart carries position: 1, 2, 3... for reading orderBookSeries itself is unordered. Position on the child Books is the signal consumers use to show reading order and 'next in series' suggestions.
Schema properties in this example
About the example data
The "Xoo Code Pocket Reference" book series, four small-format books covering JSON-LD, structured data testing, schema.org vocabulary, and rich results, published 2024-2026.
Comments
Loading comments...