Product schema is a block of JSON-LD that spells out a product's name, image, description, price, availability, and ratings so Google can read the page instead of guessing. Filled in accurately, it makes a page eligible for review stars in the results. It is not a ranking button, and it has to match what shoppers actually see.
Key takeaways
- Product schema is JSON-LD that states a product's name, image, description, price, and stock in machine-readable form.
- The offers block (price, priceCurrency, availability) and aggregateRating are what make rich results possible.
- Review stars are the real prize, and they require real on-page reviews, not invented ratings.
- Cannabis prices vary by weight and variant, so mark up the exact price the shopper sees, or use an AggregateOffer range.
- Markup that drifts from the visible page gets flagged and can drop your rich results.
What the markup actually is
Product schema is structured data you place in the page, almost always as JSON-LD. It states in machine-readable form what a shopper already sees: this is the product, here is its photo, here is the price, here is whether it is in stock. Google reads product pages fine without it, but the markup removes the guessing and pins down the details you care about.
The fields that carry the weight
The ones that matter are name, image, and description, then an offers block with price, priceCurrency, and availability, and an aggregateRating if you have real reviews. Name, image, and offers are what make a page eligible for a product result at all. The aggregateRating is what can put star ratings under your listing, which is the part most stores are actually after.
Review stars are the payoff
Valid Product schema with aggregateRating makes a page eligible for review-snippet stars in the results. Eligible, not guaranteed — Google decides whether to show them. The ratings have to come from real reviews shown on the page, because self-serving markup on ratings you invented is a policy violation that can get all your rich results pulled.
The cannabis price caveat
Cannabis and CBD stores have a real wrinkle here. Prices swing by weight, variant, and location, and some platforms hide the price behind an age gate or a menu widget. If the price in your markup does not match what the shopper lands on, Google will flag the mismatch and can drop the rich result. Mark up the price the visitor actually sees on that URL, and if a variant has no fixed price, use an AggregateOffer with a low and high range rather than a made-up number.
Keep it matched to the page
The one rule that breaks stores is markup drifting from the visible page. Schema that says in stock on a sold-out product, or carries an old price, is worse than no schema. Validate it, keep it accurate as products change, and treat it as a description of the page rather than a wish list.
Worked example: one flower page
A Runtz eighth page carries: name "Runtz 3.5g", image of the actual jar, a short description, and an offers block with price 45.00, priceCurrency USD, availability InStock. Forty real reviews on the page feed an aggregateRating of 4.6 from 40. That listing is now eligible to show "4.6 stars, 40 reviews" and a price under the blue link. When the eighth sells out, availability flips to OutOfStock in the same edit that updates the page, so the two never disagree.
Frequently asked questions
Does product schema make a page rank higher?
No. It does not move rankings on its own. What it does is make a page eligible for richer results, review stars, price, and availability under the listing, which can lift clicks. Google still decides whether to show them, and the markup has to match the page.
Can cannabis prices go in the schema safely?
Yes, as long as the price you mark up matches what the shopper sees on that URL. Where variants have no single price, use an AggregateOffer with a low and high range. A price in the markup that differs from the page gets flagged and can drop the rich result.
Want this done for your brand?
We build cannabis & CBD search visibility with full transparency, for dispensaries, brands, and MSOs.
Get a free cannabis SEO audit ›