Product Schema · Unhead

[Unhead Home](https://unhead.unjs.io/ "Home")

- [Docs](https://unhead.unjs.io/docs/svelte/head/guides/get-started/overview)
- [Tools](https://unhead.unjs.io/tools)
- [Learn](https://unhead.unjs.io/learn/guides/what-is-capo)

[Releases](https://unhead.unjs.io/releases)

Search…```k`` /`

[Unhead on GitHub](https://github.com/unjs/unhead)

[User Guides](https://unhead.unjs.io/docs/svelte/head/guides/get-started/overview)

[API](https://unhead.unjs.io/docs/svelte/head/api/get-started/overview)

[Releases](https://unhead.unjs.io/docs/svelte/releases/v3)

Svelte

- [Switch to Svelte](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/product)
- [Switch to TypeScript](https://unhead.unjs.io/docs/typescript/schema-org/api/schema/product)
- [Switch to Vue](https://unhead.unjs.io/docs/vue/schema-org/api/schema/product)
- [Switch to React](https://unhead.unjs.io/docs/react/schema-org/api/schema/product)
- [Switch to Solid.js](https://unhead.unjs.io/docs/solid-js/schema-org/api/schema/product)
- [Switch to Angular](https://unhead.unjs.io/docs/angular/schema-org/api/schema/product)
- [Switch to Nuxt](https://unhead.unjs.io/docs/nuxt/schema-org/api/schema/product)

v3 (stable)

Schema.org

- [Discord Support](https://discord.com/invite/275MBUBvgP)
- [Svelte Playground](https://stackblitz.com/edit/github-ckbygkxk)

- Composables
  - [`useSchemaOrg()`](https://unhead.unjs.io/docs/svelte/schema-org/api/composables/use-schema-org)
- Nodes
  - [Article](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/article)
  - [Book Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/book)
  - [Breadcrumb Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/breadcrumb)
  - [Comment Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/comment)
  - [Course Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/course)
  - [Dataset Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/dataset)
  - [Event Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/event)
  - [Food Establishment Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/food-establishment)
  - [HowTo](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/how-to)
  - [Image Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/image)
  - [ItemList](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/item-list)
  - [JobPosting](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/job-posting)
  - [LocalBusiness](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/local-business)
  - [Movie Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/movie)
  - [Music Album Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/music-album)
  - [Music Group Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/music-group)
  - [Music Playlist Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/music-playlist)
  - [Music Recording Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/music-recording)
  - [Organization](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/organization)
  - [Person Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/person)
  - [Podcast Episode Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/podcast-episode)
  - [Podcast Season Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/podcast-season)
  - [Podcast Series Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/podcast-series)
  - [Product Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/product)
  - [Question Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/question)
  - [Recipe Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/recipe)
  - [Service Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/service)
  - [SoftwareApplication](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/software-app)
  - [TV Episode Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/tv-episode)
  - [TV Season Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/tv-season)
  - [TV Series Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/tv-series)
  - [Video Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/video)
  - [WebPage Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/webpage)
  - [WebSite Schema](https://unhead.unjs.io/docs/svelte/schema-org/api/schema/website)

Schema

# Product Schema

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/product.md)

Last updated Jan 19, 2026 by [Harlan Wilton](https://github.com/harlan-zw) in [docs: sync](https://github.com/unjs/unhead/commit/d2f86454774aa60706628b46a850653e1e4d56d9).

On this page

- [Schema.org Product](#schemaorg-product)
- [Useful Links](#useful-links)
- [Required properties](#required-properties)
- [Recommended Properties](#recommended-properties)
- [Defaults](#defaults)
- [Resolves](#resolves)
- [Examples](#examples)
- [Types](#types)
- [Related Schemas](#related-schemas)

## [Schema.org Product](#schemaorg-product)

- **Type**: `defineProduct(input?: Product)`Describes an `Product` on a `WebPage`.

## [Useful Links](#useful-links)

- [Product - Schema.org](https://schema.org/Product)
- [Product Schema Markup - Google Search Central](https://developers.google.com/search/docs/advanced/structured-data/product)
- [Product - Yoast](https://developer.yoast.com/features/schema/pieces/product)
- [Recipe: eCommerce](https://unhead.unjs.io/docs/schema-org/guides/recipes/e-commerce)

## [Required properties](#required-properties)

- **name** `string`The name of the product. Provided via route meta key `title` or `name` manually.
- **image** `Arrayable<ImageInput>`Link a primary image or a collection of images to used to the product

## [Recommended Properties](#recommended-properties)

- **offers** `OfferInput[]`Add [Offer](https://schema.org/Offer) properties.

## [Defaults](#defaults)

- **@type**: `Product`
- **@id**: `${canonicalUrl}#product`
- **name**: `currentRouteMeta.title` _(see: [Schema.org Params](https://unhead.unjs.io/docs/schema-org/guides/core-concepts/params))_
- **image**: `currentRouteMeta.image` _(see: [Schema.org Params](https://unhead.unjs.io/docs/schema-org/guides/core-concepts/params))_
- **description**: `currentRouteMeta.description` _(see: [Schema.org Params](https://unhead.unjs.io/docs/schema-org/guides/core-concepts/params))_
- **brand**: id reference of the identity
- **mainEntityOfPage** id reference of the web page

## [Resolves](#resolves)

See [Global Resolves](https://unhead.unjs.io/docs/schema-org/guides/get-started/overview#site-page-level-config) for full context.

- `image`'s are resolved to absolute

## [Examples](#examples)

### [Minimal Example](#minimal-example)

```
defineProduct({
  name: 'Guide To Vue.js',
  image: '/vuejs-book.png',
})
```

### [Other Example](#other-example)

```
defineProduct({
  name: 'test',
  image: '/product.png',
  offers: [
    { price: 50 },
  ],
  aggregateRating: {
    ratingValue: 88,
    bestRating: 100,
    ratingCount: 20,
  },
  review: [
    {
      name: 'Awesome product!',
      author: {
        name: 'Harlan Wilton',
      },
      reviewRating: {
        ratingValue: 5,
      },
    },
  ],
})
```

## [Types](#types)

```
/**
 * Any offered product or service.
 * For example: a pair of shoes; a concert ticket; the rental of a car;
 * a haircut; or an episode of a TV show streamed online.
 */
export interface ProductSimple extends Thing {
  /**
   * The name of the product.
   */
  name: string
  /**
   * A reference-by-ID to one or more imageObject's which represent the product.
   * - Must be at least 696 pixels wide.
   * - Must be of the following formats+file extensions: .jpg, .png, .gif ,or .webp.
   */
  image: NodeRelations<ImageObject | string>
  /**
   *  An array of references-by-ID to one or more Offer or aggregateOffer pieces.
   */
  offers?: NodeRelations<Offer | number>
  /**
   *  A reference to an Organization piece, representing brand associated with the Product.
   */
  brand?: NodeRelation<Organization>
  /**
   * A reference to an Organization piece which represents the seller/merchant.
   */
  seller?: NodeRelation<Organization>
  /**
   * A text description of the product.
   */
  description?: string
  /**
   * An array of references-by-id to one or more Review pieces.
   */
  review?: NodeRelations<Review>
  /**
   * A merchant-specific identifier for the Product.
   */
  sku?: string
  /**
   * The Global Trade Item Number (GTIN) of the product.
   */
  gtin?: string
  /**
   * The Manufacturer Part Number (MPN) of the product.
   */
  mpn?: string
  /**
   * The condition of the product (e.g., New, Used, Refurbished).
   */
  itemCondition?: string
  /**
   * An AggregateRating object.
   */
  aggregateRating?: NodeRelation<AggregateRating>
  /**
   * An AggregateOffer object.
   */
  aggregateOffer?: NodeRelation<AggregateOffer>
  /**
   * A reference to an Organization piece, representing the brand which produces the Product.
   */
  manufacturer?: NodeRelation<Organization>
}
```

## [Related Schemas](#related-schemas)

- [Organization](https://unhead.unjs.io/docs/schema-org/api/schema/organization) - Product brand/manufacturer
- [Breadcrumb](https://unhead.unjs.io/docs/schema-org/api/schema/breadcrumb) - Product navigation
- [ItemList](https://unhead.unjs.io/docs/schema-org/api/schema/item-list) - Product lists

[Edit this page](https://github.com/unjs/unhead/edit/main/docs/schema-org/5.api/9.schema/product.md)

[Markdown For LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/product.md)

Did this page help you?

[Podcast Series Schema Use definePodcastSeries() to add PodcastSeries structured data. Enable podcast rich results with show info, host, and RSS feed link.](https://unhead.unjs.io/docs/schema-org/api/schema/podcast-series) [Question Schema Use defineQuestion() to add FAQ structured data. Enable FAQ rich snippets with expandable Q&A directly in Google search results.](https://unhead.unjs.io/docs/schema-org/api/schema/question)

On this page

- [Schema.org Product](#schemaorg-product)
- [Useful Links](#useful-links)
- [Required properties](#required-properties)
- [Recommended Properties](#recommended-properties)
- [Defaults](#defaults)
- [Resolves](#resolves)
- [Examples](#examples)
- [Types](#types)
- [Related Schemas](#related-schemas)

[GitHub](https://github.com/unjs/unhead) [ Discord](https://discord.com/invite/275MBUBvgP)

[ /llms.txt](https://unhead.unjs.io/llms.txt)

[Part of the UnJS ecosystem](https://unjs.io/)

### Head Management

- [Getting Started](https://unhead.unjs.io/docs/svelte/head/guides/get-started/overview)
- [useHead](https://unhead.unjs.io/docs/svelte/head/api/composables/use-head)
- [useSeoMeta](https://unhead.unjs.io/docs/svelte/head/api/composables/use-seo-meta)
- [useHeadSafe](https://unhead.unjs.io/docs/svelte/head/api/composables/use-head-safe)
- [useScript](https://unhead.unjs.io/docs/svelte/head/api/composables/use-script)

### Schema.org

- [Getting Started](https://unhead.unjs.io/docs/svelte/schema-org/guides/get-started/overview)
- [useSchemaOrg](https://unhead.unjs.io/docs/svelte/schema-org/api/composables/use-schema-org)
- [Nodes](https://unhead.unjs.io/docs/svelte/schema-org/guides/core-concepts/nodes)
- [Recipes](https://unhead.unjs.io/docs/svelte/schema-org/guides/recipes/identity)

### Guides

- [Titles](https://unhead.unjs.io/docs/svelte/head/guides/core-concepts/titles)
- [Streaming SSR](https://unhead.unjs.io/docs/svelte/head/guides/core-concepts/streaming)
- [DOM Events](https://unhead.unjs.io/docs/svelte/head/guides/core-concepts/dom-event-handling)
- [Plugins](https://unhead.unjs.io/docs/svelte/head/guides/plugins/template-params)

### Tools

- [Meta Tag Generator](https://unhead.unjs.io/tools/meta-tag-generator)
- [OG Image Generator](https://unhead.unjs.io/tools/og-image-generator)
- [Schema.org Generator](https://unhead.unjs.io/tools/schema-generator)
- [Capo.js Analyzer](https://unhead.unjs.io/tools/capo-analyzer)

### Articles

- [What is Capo.js?](https://unhead.unjs.io/learn/guides/what-is-capo)

### Research

- [State of <head> in 2026](https://unhead.unjs.io/learn/research/state-of-head-2026)
- [Streaming Head Performance](https://unhead.unjs.io/learn/research/streaming-head-performance)
- [Capo.js Performance Research](https://unhead.unjs.io/learn/research/capo-performance-research)

Copyright © 2025-2026 Harlan Wilton - [MIT License](https://github.com/unjs/unhead/blob/main/license)