My Tool Studio
SchemaURL-first

Product Schema Generator

This product schema generator builds Product JSON-LD with price, availability, brand, GTIN, SKU, images and reviews. Paste a product URL and it reads existing Product markup from Shopify, WooCommerce, Magento or custom builds, or paste the JSON-LD itself. Add a sale price with the original price struck through, a price range from several sellers, color, size and material, and an overall rating from your reviews app. Variants for sizes or colors turn the block into a ProductGroup, and the Shipping and returns card adds what merchant listings use. Store owners use it when a theme outputs thin product structured data. The Validation panel shows what Google still needs before the block qualifies.

Always freeNo sign upRuns in your browser
Paste a product page URL. We'll detect existing Product JSON-LD (Shopify, Woo, Magento, custom), OpenGraph product tags, microdata, and the image gallery. Your edits are preserved.
Import existing JSON-LD(paste code or read it from a URL)

Paste a Product JSON-LD block, several script tags or a whole page's HTML. The form fills with what it finds so you can edit and improve it.

Product basics

Identifiers

Auto-mapped to (none, enter 8/12/13/14 digits) based on length (8/12/13/14 digits).

Attributes (recommended for merchant listings)

Product images

Brand

Reviews

Review 1

Overall rating from your reviews app (optional)

Fill these when the page shows a total from Judge.me, Yotpo, Trustpilot or similar. They replace the average of the reviews typed above.

Offer (pricing & availability)

Shipping & returns (optional, used for merchant listings)

Added inside the Offer as shippingDetails and hasMerchantReturnPolicy. Needs a price to appear. Use two-letter country codes such as US, GB or IN.

Variants (optional, outputs a ProductGroup)

Add one row per size, color or other option sold on this page. With at least one named variant the output becomes a ProductGroup with hasVariant, the format Google uses for product variants. Shipping and return settings are copied to each variant offer.

  • Add at least one image. Merchant listings require it.
  • Add a price. Merchant listings need an Offer with a price.
Output
<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product"
}
</script>
Test in Google Rich Results TestValidate at validator.schema.orgThe test links copy your code first. Paste it into the tester's Code tab.

How to use

01

Auto-fill from the product page

Paste the product URL and press Auto-fill from product URL. Chips confirm what was found, such as price, brand, image count and review count. Your own edits are kept.

02

Complete the offer and extras

Set currency, price, availability, condition and price valid until. Optionally fill Shipping and returns with cost, destination country, handling and transit days, and your return window and fees.

03

Add proof, then copy

Add images, genuine reviews and any variants, clear the errors in the Validation panel, press Copy script, then use Test in Google Rich Results Test to see which product features the block qualifies for.

Why Product Schema Generator

Product snippet or merchant listing: which fields each needs

Google uses the same Product type for two features. The table shows what each one needs, based on Google's documentation, and which card in this generator fills it. Shipping and return details are recommended for merchant listings; Google can also take them from Merchant Center or Search Console settings.

If the page is a review rather than a shop, fill the reviews and leave the offer and shipping empty. The block then fits product snippets only.

FieldProduct snippetMerchant listingCard here
nameRequiredRequiredProduct basics
imageNot requiredRequiredProduct images
offers.price and priceCurrencyOne of offers, review or ratingRequiredOffer
review or aggregateRatingOne of offers, review or ratingRecommendedReviews
gtin, mpn, sku, brandRecommendedRecommendedIdentifiers, Brand
shippingDetailsNot usedRecommendedShipping and returns
hasMerchantReturnPolicyNot usedRecommendedShipping and returns

Common questions

Which Product schema fields does Google require?
For product snippets, a name plus at least one of offers, review or aggregateRating. For merchant listings, a name, an image and an Offer with price and priceCurrency. The Validation panel treats those as errors and lists brand, description, image and an identifier such as GTIN or SKU as recommended.
What is the difference between a product snippet and a merchant listing?
A product snippet adds details such as rating and price to a normal result, and it suits review pages as well as shops. Merchant listings cover pages where the product can be bought, and they can show shipping and return information. This generator writes one Product block that can serve both, depending on which fields you fill.
How do I add shipping details to Product schema?
Fill the Shipping and returns card. The shipping cost (0 for free), destination country and handling and transit day ranges become an OfferShippingDetails object inside the Offer. It only appears when a price is set, because it belongs to the Offer.
How do I add a return policy to Product JSON-LD?
Choose a return policy: a set number of days, an unlimited window or no returns. Add the country code, the window in days and who pays for return shipping. The tool writes a MerchantReturnPolicy with ReturnByMail as the method.
How does the product schema generator handle GTIN numbers?
By length. Eight, twelve, thirteen or fourteen digits become gtin8, gtin12, gtin13 or gtin14; any other length falls back to the generic gtin property. The note under the field shows which property your value maps to.
Can Product JSON-LD include review stars?
Yes. Each review needs a reviewer name and text, plus a 1 to 5 rating and an optional date. The tool averages them into an AggregateRating with reviewCount. Only mark up reviews that visitors can read on the page.
How do I show a sale price in Product schema?
Enter the current price in Price and the regular price in Original price during a sale. The tool adds a UnitPriceSpecification with priceType StrikethroughPrice for the regular price. No Offer is written until a price is entered, because Google flags an Offer without one as an error.
Does the Product autofill work on Shopify and WooCommerce pages?
Yes. It reads existing Product JSON-LD from Shopify, WooCommerce, Magento and custom builds, as well as OpenGraph product tags, microdata and the image gallery. It fails only when a site blocks automated requests.
How do I mark up product variants such as sizes and colors?
Add one row per variant under Variants with its name, SKU, color, size, price and availability, then tick what the variants differ by. The output becomes a ProductGroup with productGroupID, variesBy and a hasVariant list of Products, each with its own Offer. This is the structure Google documents for variants.

More Schema tools

View all