---
title: "Product Schema · Unhead"
meta:
  "og:description": "Use defineProduct() to add Product structured data for e-commerce. Enable rich snippets with pricing, reviews, and availability in Google search results."
  "og:title": "Product Schema · Unhead"
  description: "Use defineProduct() to add Product structured data for e-commerce. Enable rich snippets with pricing, reviews, and availability in Google search results."
---

**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)