PRODUCT SEO & STRUCTURED DATA

Shopify Product Schema (JSON-LD) Generator

Build Product and Offer JSON-LD from real product details, preview the script, and check a published product URL with Google.

Currencies: USD, EUR, and GBP for the generated Offer price. This sets the currency code; it does not convert the price.

Your product details

* Required for this generator

Use only details shown on the live product page. Leave ratings blank unless they come from genuine, visible reviews. Check whether your Shopify theme or app already emits Product markup.

Product JSON-LD preview

DRAFT
product-schema.json-ld
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product"
}
</script>

Add a product name, public image URL and positive price. Fix any invalid optional fields before copying.

Google does not document a link that pre-fills its code editor. This action copies your script and opens the test; select Code and paste it there.

The draft is generated in your browser. Opening Google's test sends the published URL to Google, or you can paste the copied code there yourself.

How to generate Product JSON-LD for a Shopify product page

A Product schema block helps search engines interpret a specific item and its current offer. It cannot repair an inaccurate storefront: the name, image, price, stock status and any ratings must agree with what shoppers can see. Use this generator to assemble a clean draft, then inspect the live Shopify page and test the result with Google.

What this generator creates—and what Google requires

The output is a copyable script element with a schema.org Product object and a nested Offer. Google’s merchant listing documentation lists Product name, image and offers as required Product properties. For an Offer with a direct price, enter a positive current price and an ISO 4217 currency such as USD, EUR or GBP. This tool also writes a schema.org InStock or OutOfStock URL. Brand, SKU, description, product URL and aggregate rating are added only when you provide them.

A Product rich result is intended for a page about one product, or variants of that same product. Place the markup on the corresponding product page where a shopper can purchase the item. A collection page, generic landing page or code pasted into an unrelated page does not become a merchant listing simply because it contains Product JSON-LD.

Match the offer to the price and availability shoppers see

Enter the active product price without a currency symbol and choose the currency actually used on that page. If the page shows another market’s price or changes currency by URL, publish the matching price and currency for each relevant page. The stock selector maps directly to https://schema.org/InStock or https://schema.org/OutOfStock. A copied static snippet will not update itself when Shopify changes a price or sells out.

The optional product URL becomes Offer.url and lets this tool open Google’s Rich Results Test with that live URL already supplied. This tests the published page, not the unsaved code in this form. Check that the page is public, crawlable and already contains the intended markup before trusting its test result.

Use real images, identifiers and product copy

Use an absolute image URL that Google can crawl and that clearly depicts the product. A placeholder image, broken URL or image of a different item weakens the markup even when the JSON syntax is valid. The optional description should summarize copy visible to customers; the optional Brand object should name the actual brand. Google recommends these additional product details where they are known.

A SKU is your merchant-specific identifier, not automatically a GTIN. The generator rejects whitespace in a supplied SKU because Google’s merchant listing documentation does not allow it there. If your product has a genuine GTIN, shipping details, return policy or variant group, this focused form does not invent those fields; add them in the right Shopify template or structured-data system when applicable.

Add AggregateRating only when the review data is real

Leave both rating fields empty when the product has no visible customer reviews. If it has them, provide the actual average on a 1–5 scale and a positive review count from the same product. The generator includes an AggregateRating only when both entries are valid; it never fills review values by default. Do not copy a store-wide rating onto an individual product or invent a score to seek stars in search results.

Google requires a rating value and at least a rating count or review count for supported AggregateRating markup. Review data must represent the page content. A syntactically valid block or a passing Rich Results Test does not guarantee stars or any particular search presentation.

Install one accurate source of Product markup in Shopify

Before adding the copied script, inspect the rendered HTML of your Shopify product page. Shopify’s Liquid structured_data filter can already output Product or ProductGroup markup, and review or SEO apps may add their own blocks. If valid Product markup already exists, update or replace the existing source so that the live page does not carry conflicting prices, stock states or ratings for the same item.

A manual script is useful for a controlled page or a template prototype, but a real store usually needs dynamic Liquid or an app integration for changing prices, inventory and variants. Keep one source of truth, verify each variant’s URL and visible data, and check the final rendered page after publishing. Do not place a single product’s fixed values in a site-wide layout.

Test the code draft and the published page separately

The preview is generated locally as you type. Once the required fields are valid, copy the full script. For an unpublished draft, the Google button copies it and opens the Rich Results Test; choose Code there and paste the snippet. Google does not document a supported link that preloads arbitrary code into that editor, so the paste step is intentional. For an existing product URL, the button opens Google’s supported URL test for that published page.

Read Google’s errors and warnings, then compare the tested markup with the storefront. The tool covers core Product and Offer fields, not every Merchant Center enhancement. Shipping, return policy, GTIN, complex variants and market-specific offers may need additional markup. Even a valid result means eligibility, not a promise of a rich result or better ranking.

Source guidance for the Product, Offer and review fields: Google Merchant listings · Google reviews · Shopify structured_data

Product schema generator FAQs

Will this JSON-LD guarantee product stars or a merchant listing?+

No. Correct markup can make a page eligible for supported rich results, but Google decides what to show. The live page must also meet its technical and content policies, and any rating must be genuine and visible.

Can I enter a review score without a review count?+

No. This generator includes AggregateRating only when both a 1–5 average rating and a positive review count are supplied. Leave both blank if the product has no reliable, visible review data.

Why does the generator ask for a public image URL?+

Google’s merchant listing Product requirements include an image that represents the item and can be crawled. A local file path, placeholder or inaccessible asset cannot serve that purpose.

Does the Google button test the code I have not published yet?+

With no product URL, it copies the draft and opens Google’s code test so you can paste it. With a product URL, it tests the live page at that URL; the draft must be published there first to be part of that result.

Should I add this script when my Shopify theme already outputs Product schema?+

Inspect the rendered page first. Shopify themes and apps can already provide Product or ProductGroup markup. Prefer correcting the existing source over adding a second block with conflicting product details.

Will this static snippet follow inventory or price changes automatically?+

No. Copied JSON-LD is a snapshot. Use dynamic Shopify Liquid or a maintained integration when price, availability or variants change, and test the published page again after updates.

NEXT STEP

Publish product facts Google can verify.

Use real storefront values, check your theme’s existing markup, then validate the published product page.Explore all tools