Schema and Structured Data · Guide

What Is Product Schema Markup?

The type with the sharpest commercial consequence. Price and availability can appear in a result, which means a wrong assertion is discovered by a customer before they reach your site rather than by anybody looking at a report.

Updated: August 2026
Written by: Andrew Odgers, Managing Director
Reading time: 9 minutes
Where the error surfaces

This One Is Visible To Customers

Price, availability and ratings can all be shown in a search result. That makes this the only type where a wrong statement is seen by somebody deciding whether to visit, rather than found later by whoever audits the site.

What appears where. Before the click.

A result can carry the price, whether the item is in stock and a star rating, all drawn from what the page asserts. Somebody reads those and decides on that basis.

Why that changes the stakes. Two failures at once.

A wrong price loses the sale twice: once when somebody arrives expecting the figure they saw, then again when they conclude the store is unreliable. Neither shows up as an error anywhere.

What it asserts overall. The commercial facts.

Name, description, identifiers, price, currency, availability and any ratings. Almost all of it is information a customer uses to decide, which is why almost all of it has to be current.

Why the reporting will not catch it. It is valid.

A price that is wrong is still a properly formed price. Nothing about the markup fails, so no check reports anything and the first signal is a complaint or a lost order.

The central problem with this type

Price And Availability Go Stale Instantly

These two properties change more often than anything else asserted anywhere in this subject. A result showing a price you no longer charge is a complaint waiting to happen.

How quickly they move. Continuously.

Stock changes with every order. Prices change with promotions, supplier costs and seasonal adjustment. Neither is a value you set once, which makes both unlike almost every other property in this section.

What that requires. Automatic updating.

Anything maintained by hand will be wrong. These properties only work where the markup is generated from the same records the shop uses, so that changing the record changes the assertion.

The lag nobody accounts for. Between change and result.

Updating the record updates the page immediately and does not update what a search result shows. That gap is real and outside your control, which is worth knowing before promising a customer anything.

What to do about the lag. Honour what was shown.

Where somebody arrives quoting a price from a result, the practical answer is usually to accept it. Arguing that the result was out of date is technically correct and commercially poor.

The version that is not a lag. A record nobody updated.

Where the underlying data is simply wrong, the assertion is wrong indefinitely rather than briefly. That is block three.

The scale problem, unique to this type

Generated From The Feed, Which Nobody Reads

On most stores this markup is produced automatically from the product records. It therefore asserts whatever those records say, including everything wrong with them, on every product at once.

Where the records come from. Several places.

Typed at upload, imported in bulk from a supplier, else synchronised from another system. Each route introduces its own errors and none of them involves anybody reading the result.

Why nobody reads them. Volume.

A store with a few thousand products has a few thousand descriptions nobody has checked. Reading them is not a task anybody has time for, so the errors sit there being asserted.

What that produces. False statements at scale.

A supplier feed with wrong specifications, a bulk import with a mispositioned column, a category filled in by default. Each becomes an assertion repeated across every affected product.

Why this is worse than a manual error. Nobody chose it.

A hand-written mistake was made by somebody who might notice. An inherited one was never seen by anybody in the business at all, which is a different kind of exposure.

What to check instead of pages. The source.

Since the markup inherits, checking a sample of records catches more than reading pages. The platform page covers the same argument for other generated markup.

Handled properly rather than ignored

Discontinued And Out Of Stock

Availability has values for out of stock and discontinued. Using them is the correct answer. Marking something available because the page still exists is exactly the assertion this section refuses.

The difference between the two. Temporary and permanent.

Out of stock means coming back. Discontinued means gone. Those are different statements and the vocabulary distinguishes them, which is useful to somebody deciding whether to wait.

Why stores get this wrong. Inertia.

A product sells out and the page remains, still asserting availability because nobody changed the record. The store is now stating that something can be bought when it cannot.

What that costs. A wasted visit and worse.

Somebody clicks a result showing an item as available, arrives and cannot buy it. That is the same failure the local business page describes about opening hours, applied to money.

What to do with a discontinued page. Not simply delete it.

Removing the page leaves links pointing nowhere. Marking it discontinued while pointing people at what replaced it serves everybody better. Our ecommerce material covers the options.

The test that settles it. Could a customer buy it today.

If not, the markup should not say otherwise. That is the whole rule and it takes no interpretation.

The structural complication

Variants

Products with options need describing as one product with variations rather than as several unrelated products or as one product with a single arbitrary price. Getting it wrong produces either duplication or missing items.

What a variant is. A version, not a product.

The same item in a different size, colour or specification. Each may have its own identifier, its own price and its own stock position, while all of them are the same thing.

The first way it goes wrong. Treating each as separate.

Describing every variation as its own product produces a store apparently selling many near-identical things. That is duplication. It makes the range harder to understand rather than easier.

The second way. Describing only one.

Asserting a single price and availability for a product with a range of both. Somebody sees the cheapest option in a result, arrives, then finds their size costs more.

What the correct shape looks like. One product, many offers.

A single product carrying several priced options, each with its own availability. That describes the situation accurately and handles a price range without misleading anybody.

Why this is worth getting right. It affects what a customer sees.

Variants done badly are visible in results as wrong prices or absent items, which returns to block one.

The rule, stated here because this is where the temptation sits

Ratings On Products

Only real reviews from real customers about the product on that page. Never aggregated from elsewhere, never written by the business, never applied to a product nobody has reviewed.

Why it is stated here as well. Products are where it happens.

A star rating beside a product in a result is visibly valuable. A store with thousands of products has thousands of opportunities to invent one. That combination is why this rule gets restated.

What the markup claims. That people rated it.

A rating asserts that real customers gave real scores averaging that figure for that product. It is a factual claim about the world rather than a presentational choice.

The specific error stores make. Site-wide ratings on products.

Applying an overall store rating to every individual product. Those customers rated the store rather than that item, so the assertion is false even where every review is genuine.

The other one. Ratings from a platform.

Scores collected on a third-party marketplace generally belong there. Restating them as the site's own is a common misunderstanding rather than deliberate deception. It is still wrong.

Where the full argument sits. Its own page.

Review markup argues this in full. How to get star ratings covers what we will and will not implement.

The assertion rule applied

Do Not Mark Up What Is Not On The Page

Every property should correspond to something a customer can see. Asserting details the page does not display is the usual way this type becomes untrue without anybody intending it.

Why it matters even when true. Nobody can check.

A property stated in markup and absent from the page cannot be verified by a reader. The markup and the page should describe the same thing, so a customer can confirm it.

The usual instance. Hidden properties.

Specifications held in the product record but not shown, asserted because the field existed. Frequently accurate and still a claim nobody can confirm from the page.

The deliberate version. Enriching the markup.

Adding properties specifically to qualify for an appearance while leaving the page unchanged. That is describing a page that does not exist. It is the same error as inventing a rating.

What to do instead. Show it.

Where a property is worth asserting, put it on the page. That resolves the problem correctly and improves the page for the customer at the same time.

How we apply this to ourselves. On this page.

This guide describes the product type and is not a product, so it carries no product, price or rating markup at all. The full series is on the schema and structured data guide.

Website migrations

Could a customer
buy it today?

If not, the markup should not say otherwise. We generate product descriptions from the same records your shop uses, so changing a record changes the assertion. We check a sample of the records rather than reading pages nobody has time to read.

On every page we build:

Separated format Records-driven products Availability handling Variants as one product No invented ratings Field-level accuracy Retest after changes A named owner

We will not apply a store rating to individual products. Those customers rated the store.

The full guide series

Every guide.
One practice.

What structured data is, which types apply to your business, how to test it, where the results features come from and what to do when nothing appears.

Questions people ask

Product Markup, Briefly

Why does product markup need more care than other types?
Because price, availability and ratings can all appear in a result, so a wrong statement is seen by somebody deciding whether to visit rather than found later in a report. A wrong price loses the sale twice: once when somebody arrives expecting the figure they saw, then again when they conclude the store is unreliable.
How do we keep price and availability accurate?
By generating the markup from the same records the shop uses, so changing the record changes the assertion. Anything maintained by hand will be wrong, since stock changes with every order and prices change with promotions and supplier costs. Neither is a value you set once.
Somebody arrived quoting an old price from a result. What now?
Usually, honour it. There is a real gap between updating your record and a search result reflecting it. That gap is outside your control. Arguing that the result was out of date is technically correct and commercially poor. What is not a lag is a record nobody updated, which stays wrong indefinitely.
What should we do with sold-out or discontinued products?
Use the availability values that exist for both. Out of stock means coming back and discontinued means gone, which is useful to somebody deciding whether to wait. Leaving a page asserting availability because nobody changed the record states that something can be bought when it cannot. Do not simply delete the page either, since that leaves links pointing nowhere.
How should products with sizes or colours be described?
As one product with several priced options, each with its own availability. Describing every variation as a separate product produces apparent duplication. Describing only one produces a customer who saw the cheapest option in a result and finds their size costs more when they arrive.
Can we apply our store rating to individual products?
No. Those customers rated the store rather than that item, so the assertion is false even where every review is genuine. The same applies to scores collected on a third-party marketplace, which generally belong there. Product ratings must come from real customers reviewing that product.