localwebadvisor
WIKI← Wiki home

What Is Product Schema?

By FayUpdated Jul 9, 2026EVERGREEN
⚡ THE ANSWER

Product schema is structured data from schema.org that describes a product to search engines, including its name, image, description, brand, price, availability, and ratings. Added as JSON-LD, it lets Google understand and display product details as rich results, such as price, stock status, and star ratings beneath a listing, or in Google Shopping and image search. It is essential for ecommerce sites and any page selling a specific item.

Vocabulary
schema.org/Product with nested Offer and AggregateRating (schema.org)
Required for rich results
name, image, and at least one of review, aggregateRating, or offers (Google Search Central)
Offer essentials
price, priceCurrency, and availability (Google Search Central)
Merchant listing fields
Adds shipping, return policy, and GTIN for shopping features (Google Search Central)

What is Product schema and why does it matter? #

Product schema is the structured-data type that describes a purchasable item so search engines understand exactly what you sell and on what terms. It captures the product name, one or more images, a description, the brand, the price and currency, stock availability, and any ratings. When Google reads this markup, it can enhance your search listing with a price, an in-stock label, and gold review stars, and it can feed features like Google Shopping and the Google Images product panel. For any business running an online store, this is foundational; a listing with visible price and stars earns more clicks than a plain blue link. Product schema is part of the broader schema.org vocabulary explained in /wiki/schema-markup-guide, and it pairs naturally with the ecommerce builds we deliver through /services/ecommerce-development. Even a local business selling a handful of products online, a gym selling memberships as products or a restaurant selling gift cards, benefits from marking them up so search engines present them richly.

Google distinguishes two tiers. For a product rich result on a standard page, you need name, image, and at least one of offers, review, or aggregateRating. The offers object is where commerce lives: it holds price, priceCurrency such as USD, and availability, using schema.org values like InStock or OutOfStock. Recommended additions sharpen the result: brand, sku, gtin, description, and aggregateRating with a ratingValue and reviewCount. For merchant listing experiences and Google Shopping, Google wants more: shipping details, return policy, and product identifiers like GTIN or MPN. The richer and more accurate your markup, the more shopping features you qualify for. Every value must match what a shopper sees on the page; a schema price that differs from the visible price violates guidelines and can suppress the rich result. Build the nested structure with /tools/schema-generator rather than hand-coding, then confirm it with /tools/schema-validator so a missing currency or malformed availability does not quietly disqualify you.

What does Product JSON-LD look like? #

The Product object nests two important children: an Offer that carries commercial terms and, optionally, an AggregateRating summarizing reviews. The example below shows a single product with price, availability, and rating. Note the currency is ISO 4217 USD, availability uses the full schema.org URL, and the aggregateRating carries both a value and a count so Google can render stars honestly. If a product has variants like sizes or colors with different prices, you can express them with AggregateOffer showing a low and high price, or mark up each variant separately. Place the block on the individual product page, one per product, matching the visible content exactly. After deploying, use Google Search Console's enhancement reports to watch for eligibility and errors. A common failure is marking up an aggregate rating with no visible reviews on the page, which Google treats as a violation, so only include ratings you genuinely display.

product.json — Product with Offer and rating
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Stainless Steel Water Bottle 24oz",
  "image": "https://example.com/bottle.jpg",
  "description": "Insulated 24oz bottle that keeps drinks cold for 24 hours.",
  "brand": { "@type": "Brand", "name": "HydroPeak" },
  "sku": "HP-24-STL",
  "offers": {
    "@type": "Offer",
    "price": "29.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/products/bottle"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "128"
  }
}

How do price, currency, and availability work? #

These three fields power the most visible parts of a product rich result, so accuracy is critical. price is the numeric amount without a currency symbol, and priceCurrency is the three-letter ISO code, USD for US stores. Format the price as a plain number like 29.99, not $29.99, because the currency lives in its own field. availability tells Google whether the item is buyable, using values such as InStock, OutOfStock, PreOrder, or BackOrder expressed as full schema.org URLs. Getting these wrong is the fastest way to lose eligibility or, worse, to advertise a price you will not honor. Google actively checks that the schema price matches the visible price and may show a warning or drop the result if they diverge. On dynamic stores, the schema must be generated from the same live data that renders the page, which is exactly how we architect stores in /services/ecommerce-development. A hardcoded schema price on a store with frequent sales is a liability; a data-driven one is an asset.

What rich results can Product schema unlock? #

Correct Product markup opens several search features. The most familiar is the product snippet: price, availability, and star rating shown beneath your organic listing, which lifts click-through by giving shoppers key facts before they click. With merchant-grade markup including shipping and returns, you can qualify for merchant listing experiences and richer Google Shopping placements. Images with product markup can appear in the Google Images product panel with price and brand. Ratings, drawn from your Review and AggregateRating data covered in our /wiki entry on review schema, add the gold stars shoppers scan for. These enhancements do not change your ranking position directly, but they dramatically affect how appealing your listing looks, which changes clicks and therefore traffic. For a store competing on a crowded results page, that visual difference is often the deciding factor. This is why product markup is standard in every store we launch, and why we audit it during any /services/website-redesign for an ecommerce site.

How does Product schema differ from Service schema? #

It is easy to confuse the two, but they describe different things. Product schema is for tangible or digital goods with a price and stock status, a water bottle, a software license, a gift card. Service schema, covered in our sibling entry at /wiki/what-is-service-schema, describes an offering you perform rather than a stocked item, like drain cleaning, tax preparation, or a haircut. A plumber does not have InStock quantities of 'drain cleaning,' so forcing Product schema onto a service is a mismatch that confuses search engines. The distinction guides which markup you choose: if a customer buys a discrete item that ships or downloads, use Product; if they book a task you carry out, use Service. Some businesses use both, for example a salon selling retail hair products (Product) alongside styling appointments (Service). Choosing correctly keeps your markup honest and your rich results relevant, and it is one of the first things we clarify when planning structured data for a mixed business.

What are common Product schema mistakes? #

Several errors recur. First, mismatched prices between schema and page, which Google penalizes with warnings or suppression. Second, marking up an aggregateRating with no visible reviews, a guideline violation. Third, omitting priceCurrency or availability, which disqualifies the offer. Fourth, using a category or store page to mark up many products with a single Product block; each product needs its own markup on its own page, or a properly structured ItemList for category pages. Fifth, hardcoding schema that goes stale as prices and stock change, which is why data-driven generation matters. Sixth, inventing GTINs or SKUs, which can cause problems in Shopping. Seventh, forgetting to update markup when a product is discontinued, leaving InStock schema on a sold-out item. Validate every product page with /tools/schema-validator and monitor Google Search Console. On larger catalogs, this is a systems problem best solved once in the platform rather than product by product, which is how our /services/ecommerce-development and /services/database-services teams approach it.

How do you implement Product schema at scale? #

For a handful of products, you might generate each block with /tools/schema-generator and paste it in. For a real store, that does not scale and invites the staleness problems above. The right approach is templated, data-driven markup: the product page template outputs JSON-LD populated from the same database fields that render the visible price, title, and stock status, so schema and page are always in sync. On WordPress with WooCommerce, quality ecommerce plugins handle this, and a developer can extend it through /services/wordpress-development for custom fields like GTIN. On a headless or custom store, the schema is generated server-side from your product data, which our /services/ecommerce-development and /services/web-app-development teams build directly into the stack. Category and search pages use ItemList to summarize the products they display. Maintenance then becomes automatic: change a price in the admin, and the schema updates with the page. Combine this foundation with Review schema for stars and Organization schema for brand identity, and your store presents richly and accurately across Google's shopping surfaces.

FAQ

Do I need Product schema for a small store?

Yes, if you want price, availability, and star ratings to appear in search results. Even a store with a handful of products benefits, because a listing showing price and stars earns more clicks than a plain link. The markup is standard on any page selling a specific item and is worth adding regardless of catalog size.

What happens if my schema price does not match the page?

Google actively checks for this and may show a warning, suppress the rich result, or lose trust in your markup. It can also mislead shoppers into expecting a price you will not honor. Always generate schema from the same live data that renders the visible price so the two can never diverge, especially on stores with frequent sales.

Can I add review stars with Product schema?

Yes, using aggregateRating with a ratingValue and reviewCount, or individual review objects. The critical rule is that the ratings must reflect reviews genuinely visible on the page. Marking up ratings with no displayed reviews violates Google's guidelines and can trigger a manual action, so only include ratings you actually show to visitors.

What is the difference between Product and Offer?

Product describes the item itself, its name, image, brand, and description, while Offer, nested inside Product, describes the commercial terms: price, currency, and availability. A single product can carry one Offer or multiple offers for variants. Google needs both together to build a full product rich result, so include the Offer whenever you want price to appear.

How do I mark up a category page with many products?

Do not use a single Product block for a whole category. Instead, use an ItemList that references the individual products shown, while each product's own page carries its full Product schema. This keeps the markup accurate and avoids the guideline violation of describing many products as if they were one item.

Should a service business use Product schema?

Usually not for the service itself. Product schema fits tangible or digital goods with a price and stock status. Services you perform, like drain cleaning or tax prep, belong in Service schema instead. A business that sells both retail goods and services can use Product for the goods and Service for the bookings, choosing the right type for each offering.

Was this helpful?