Generate valid JSON-LD Product schema markup for your Shopify store in seconds. Structured data helps search engines understand your product pages and can unlock rich results in Google, including star ratings, price, and availability badges directly in the search results. According to Google’s own documentation, search listings with rich results can see click-through rate improvements of 20-30% compared to standard listings, making structured data one of the highest-leverage SEO improvements available to ecommerce stores.
Google uses structured data to create rich snippets that stand out on the results page. A product listing with visible star ratings, price, and stock status attracts significantly more clicks than a plain blue link. Despite this, many Shopify stores either lack schema markup entirely or have incomplete implementations that miss key fields like review count, SKU, or brand. This generator produces complete, valid Product schema so you do not leave any rich result opportunities on the table. An analysis of 500 Shopify stores found that only 38% had complete Product schema, and the remaining 62% were missing at least one field that Google recommends for rich results eligibility.
Fill in your product details below and the tool will output a ready-to-paste JSON-LD script block. You can add this to your Shopify theme’s product template, a custom liquid section, or inject it through an app. The tool also shows a preview of how your listing could appear in Google so you can see the impact before making any changes to your store.
JSON-LD (JavaScript Object Notation for Linked Data) is Google’s explicitly preferred format for structured data. Unlike Microdata or RDFa, which require weaving attributes into your existing HTML, JSON-LD sits in a standalone script block that does not affect your page layout or design. This makes it significantly easier to implement, test, and maintain. Google, Bing, Yahoo, and Yandex all recognize schema.org vocabulary, so the markup you generate here works across all major search engines.
This tool is particularly valuable for stores using Combined Listings, where each product color or style has its own page. Each separate product page needs its own schema markup with the correct product name, description, price, and images. Generating schema for each product individually ensures that every page has the structured data it needs to earn rich results independently, maximizing your visibility across all product variants in search results.
Schema Generator Quick Facts
| Feature | Detail |
|---|---|
| Schema Type | Product (schema.org/Product) |
| Output Format | JSON-LD (Google’s preferred format) |
| Nested Types Included | Offer, Brand, AggregateRating |
| Supported Currencies | 15 (USD, EUR, GBP, CAD, AUD, JPY, and more) |
| Availability Options | In Stock, Out of Stock, Pre-Order |
| Rating Scale | 1-5 with decimal precision (e.g., 4.7) |
| Validation | Compatible with Google’s Rich Results Test |
| Google Rich Result CTR Boost | 20-30% higher than standard listings |
How This Tool Works
This generator builds a complete JSON-LD structured data block following Google’s Product schema specification. JSON-LD (JavaScript Object Notation for Linked Data) is Google’s preferred format for structured data because it sits in a standalone script tag and does not require any changes to your visible HTML. The tool takes your product details, validates required fields, and outputs a properly formatted script block you can copy directly into your Shopify theme.
The generated schema includes the core Product type along with nested Offer data for pricing and availability, Brand information, and AggregateRating when you provide review data. Every field follows the schema.org vocabulary that Google, Bing, and other search engines recognize. The tool also validates your inputs to ensure the output will pass Google’s Rich Results Test without errors.
After generating your schema, the tool displays a preview card that approximates how your product listing could appear in Google search results with rich snippets enabled. This lets you see the visual impact of star ratings, price display, and availability badges before you deploy the markup to your live store.
The generated code is ready to paste directly into your Shopify theme. For a static implementation, paste it into your product template file. For dynamic implementation, replace the hardcoded values with Liquid variables (examples provided in the FAQ section below). The tool generates clean, properly indented JSON that is easy to read and modify.
Step-by-Step Guide to Implementing Product Schema
- Fill in your product details. Enter the product name, description, price, and as many optional fields as possible. Every additional field (brand, SKU, image, reviews) increases your chances of earning rich results. Required fields are marked with an asterisk.
- Click “Generate JSON-LD Schema.” The tool validates your inputs and generates the complete JSON-LD code block along with a Google search preview showing how your listing could appear.
- Copy the generated code. Click the “Copy Code” button to copy the entire JSON-LD script block to your clipboard. The code includes the opening and closing script tags, so it is ready to paste.
- Add it to your Shopify theme. In Shopify admin, go to Online Store > Themes > Edit Code. Open your product template file (usually
sections/main-product.liquidortemplates/product.liquid). Paste the code at the bottom of the file, before the closing tag. - Replace static values with Liquid variables (recommended). For a dynamic implementation that works across all products, replace hardcoded values with Liquid tags. For example, replace the product name string with
{{ product.title | json }}and the price with{{ product.selected_or_first_available_variant.price | divided_by: 100.0 }}. - Test with Google’s Rich Results Test. After deploying, paste your product page URL into Google’s Rich Results Test (search.google.com/test/rich-results) to verify the schema is valid and all fields are detected correctly.
- Submit for indexing. In Google Search Console, use the URL Inspection tool to request indexing of your updated product pages. Rich results typically appear within 2-4 weeks of successful crawling.
Real-World Examples
Product schema implementation varies based on your store type and the information you have available. Here are practical examples showing different levels of schema completeness and their expected impact.
Example 1: Complete Schema (Maximum Rich Results)
A skincare brand with 200+ reviews per product implements full Product schema with brand, SKU, images, pricing, availability, and aggregate ratings. Their search listings display star ratings, review count, price, and availability status. This complete implementation earns them the maximum visual impact in search results.
| Schema Field | Value | Rich Result Impact |
|---|---|---|
| name | Vitamin C Brightening Serum | Page title in results |
| brand | GlowLab Skincare | Brand attribution |
| price | $34.99 | Price displayed in snippet |
| availability | InStock | Green “In Stock” badge |
| aggregateRating | 4.8 (247 reviews) | Star ratings in snippet |
| sku | GLS-VCS-30ML | Product identification |
| image | CDN image URL | Product image in results |
Example 2: Basic Schema (Minimum Viable Implementation)
A new store without reviews implements Product schema with just the name, description, price, and availability. While they will not get star ratings in their snippets, they can still earn price and availability badges, which provide a meaningful CTR boost over plain listings.
| Schema Field | Included | Impact |
|---|---|---|
| name + description | Yes | Core product identification |
| price + currency | Yes | Price shown in snippet |
| availability | Yes | Stock status badge |
| brand | No | Missing brand attribution |
| aggregateRating | No | No star ratings (no reviews yet) |
| sku | No | No product identifier |
Example 3: Combined Listings Schema Strategy
A fashion brand using Combined Listings creates unique schema for each color variant. The sapphire dress, ruby dress, and emerald dress each have their own schema with color-specific product names, descriptions, and images. This maximizes rich result opportunities across all color variants.
| Product | Schema Name | Schema Image | Target Query |
|---|---|---|---|
| Silk Dress – Sapphire | Sapphire Silk Evening Dress | sapphire-dress.jpg | blue silk dress |
| Silk Dress – Ruby | Ruby Silk Evening Dress | ruby-dress.jpg | red silk dress |
| Silk Dress – Emerald | Emerald Silk Evening Dress | emerald-dress.jpg | green silk dress |
Schema Fields: Impact and Requirements Comparison
Not all schema fields contribute equally to rich results. Here is a comparison of each field’s importance and implementation difficulty.
| Field | Required by Google | Rich Result Impact | Implementation Difficulty |
|---|---|---|---|
| name | Yes | Critical – identifies the product | Easy – product.title in Liquid |
| description | Recommended | High – appears in snippet text | Easy – product.description in Liquid |
| offers.price | Yes | Critical – price shown in snippet | Easy – variant.price in Liquid |
| offers.availability | Recommended | High – stock badge in snippet | Medium – requires conditional Liquid |
| aggregateRating | Only if reviews exist | Very High – star ratings are most eye-catching | Medium – depends on review app |
| brand | Recommended | Medium – brand name in results | Easy – static or metafield |
| image | Recommended | High – image in Shopping/Image tabs | Easy – product.featured_image in Liquid |
| sku | Recommended | Low – product identification | Easy – variant.sku in Liquid |
| offers.priceCurrency | Yes (with price) | Critical – currency display | Easy – shop.currency in Liquid |
The fields with the highest visual impact in search results are price, availability, and aggregateRating. Star ratings are the single most attention-grabbing element and can increase click-through rates by up to 35% on their own. If you can only implement a few fields, prioritize name, price, availability, and aggregate rating.
Why This Matters for Your Shopify Store
Rich results are one of the highest-leverage SEO improvements you can make to a Shopify store. Studies consistently show that search listings with star ratings, prices, and availability information earn 20-30% higher click-through rates than plain listings. This means more traffic from the same search rankings, without spending an extra dollar on advertising. For stores competing in crowded niches, rich snippets can be the difference between a click and a scroll-past.
Many popular Shopify themes include basic schema markup, but it is often incomplete. They may output the product name and price but miss the brand, SKU, review data, or availability status. Google’s Rich Results Test frequently flags these incomplete implementations with warnings that prevent rich snippets from appearing. By generating complete schema with every recommended field populated, you maximize your chances of earning those enhanced search listings that drive more organic traffic to your store.
The compound effect of rich results across your entire catalog is significant. If your store has 100 product pages and rich results increase click-through rates by 25% on each, that is the equivalent of improving your rankings by 1-2 positions on every page, without any additional link building or content creation. For a store getting 10,000 organic visits per month, a 25% CTR improvement could mean 2,500 additional monthly visits from the same rankings.
Common Mistakes to Avoid
- Adding schema only to your best-selling products. Rich results can improve CTR for every product page, not just your top sellers. Use Liquid template variables to dynamically generate schema for your entire catalog. A product with lower traffic but a rich result may outperform a high-traffic product without one.
- Including fake or inflated review data. Google actively detects fake review schema. If your schema claims 4.9 stars from 500 reviews but your page shows no visible reviews, Google will likely flag a manual action. Only include review data when your review app provides genuine aggregate ratings, and ensure the schema data matches what is visible on the page.
- Duplicating schema on the same page. Having two Product schema blocks on one page confuses search engines. Before adding this generated schema, check if your theme or a Shopify app already outputs structured data. Search your theme code for “application/ld+json” and “schema.org/Product” to find existing implementations.
- Using a mismatched availability status. If your schema says “InStock” but the product page shows “Sold Out,” Google may remove your rich results or issue a manual action. Use Liquid conditionals to dynamically set the availability based on actual inventory:
{% if product.available %}InStock{% else %}OutOfStock{% endif %}. - Hardcoding values instead of using Liquid variables. A hardcoded schema block only works for one product. When you add or update products, the schema becomes stale. Always convert your schema to use Liquid variables so it dynamically updates for every product in your store.
- Forgetting to test after deployment. The most common reason schema fails is syntax errors introduced during manual editing. Always run your live product page through Google’s Rich Results Test after deploying. A missing comma, bracket, or quotation mark can invalidate the entire block.
- Not updating schema when prices change. If your schema shows a different price than what is on the page, Google treats this as a data mismatch. Using Liquid variables (which pull the current price dynamically) prevents this issue entirely.
Tips and Best Practices
- Always include review data if you have reviews. Star ratings in search results are the single most eye-catching element of rich snippets. If your store collects reviews through Judge.me, Loox, or any other app, make sure your schema includes the aggregate rating and review count.
- Use your actual CDN image URL. The image URL in your schema should point to a high-quality product image hosted on Shopify’s CDN. Google may use this image in rich results, shopping tabs, and image search. Use the largest available image size for best results.
- Keep availability status accurate. If Google detects a mismatch between your schema availability and your actual page content (for example, schema says InStock but the page shows Sold Out), it may remove your rich results or flag a manual action. Update your schema dynamically using Liquid variables in your Shopify theme.
- Test with Google’s Rich Results Test after deploying. Paste your product page URL into Google’s Rich Results Test tool to verify the schema is detected correctly and there are no errors or warnings. Fix any issues immediately, as invalid schema can be worse than no schema at all.
- Add schema to every product page, not just your bestsellers. Use Liquid template variables to dynamically generate schema for all products. Replace hardcoded values with Liquid tags like {{ product.title }}, {{ product.price | money_without_currency }}, and {{ product.variants.first.sku }}.
- Include the offers.url field for multi-page stores. While not shown in this generator, adding a
urlfield inside your Offer object (pointing to the product page URL) helps Google associate the pricing data with the correct page, especially for stores with multiple domains or subdomains. - Monitor rich result performance in Search Console. Google Search Console shows how many impressions and clicks come from rich results versus standard results. Monitor this data monthly to verify your schema is working and identify any pages that lose rich result eligibility.
When to Use This Tool
| Scenario | Why This Tool Helps | Priority |
|---|---|---|
| Your store has no structured data | Generate complete schema from scratch to enable rich results | High |
| Your theme has incomplete schema | Generate complete schema to replace the incomplete version | High |
| You are setting up combined listings | Generate unique schema for each product variant page | High |
| You recently added a review app | Generate schema with AggregateRating to enable star ratings in search | Medium |
| You are training your team on schema | Show what complete Product schema looks like and how it maps to rich results | Low |
| You are auditing a competitor’s schema | Compare your schema completeness against a reference implementation | Low |
| You are migrating from another platform | Ensure your new Shopify store has proper schema from day one | High |
Related Free Tools
- SEO Checker – Run a comprehensive SEO audit on any Shopify page, including a check for existing structured data. Use alongside the schema generator to ensure your overall on-page SEO is optimized.
- Shopping Feed Checker – Analyze your Google Shopping feed for completeness and errors. Product schema and shopping feed data should be consistent for maximum Google Shopping visibility.
- Meta Tag Checker – Verify your page’s title tags, meta descriptions, and Open Graph tags. Schema works best when paired with optimized meta tags that reinforce the same product information.
Our Shopify Apps
Rubik Variant Images Rubik Combined ListingsSmart Bulk Image Upload Export Product Images Bulk Delete Products
What is JSON-LD and why does Google prefer it?
JSON-LD stands for JavaScript Object Notation for Linked Data. It is a method of encoding structured data using a script tag in your page’s HTML. Google prefers JSON-LD because it is completely separate from your visible page content, making it easier to implement and maintain. Unlike Microdata or RDFa, which require adding attributes to existing HTML elements, JSON-LD sits in its own block and does not affect your page layout or styling.
Where do I add the JSON-LD code in my Shopify theme?
The best location is in your product template file. In Shopify’s Online Store editor, go to Edit Code and find the product template (usually sections/main-product.liquid or templates/product.liquid). Paste the JSON-LD script block at the bottom of the file, before the closing tag. Alternatively, you can add it to your theme.liquid layout file inside the head section, wrapped in a conditional that checks for the product template.
Will this duplicate schema if my theme already has some?
Having duplicate Product schema on a page can confuse search engines and may prevent rich results from appearing. Before adding generated schema, check whether your theme already outputs structured data. Search your theme files for “application/ld+json” or “schema.org/Product”. If existing schema is present but incomplete, it is better to replace it with the complete version from this generator rather than adding a second block.
How long does it take for rich results to appear in Google?
After adding valid structured data, it typically takes 2-4 weeks for Google to recrawl your pages and start displaying rich results. You can speed this up by submitting your updated product URLs through Google Search Console’s URL Inspection tool and requesting indexing. However, Google does not guarantee that rich results will be shown for every page, even with valid schema. Eligibility depends on content quality, site authority, and Google’s algorithm.
Do I need review schema if I use a review app like Judge.me or Loox?
Most popular review apps for Shopify inject their own AggregateRating schema automatically. If your review app already handles this, you should omit the review fields from this generator to avoid duplicate rating data. Check your live product page source code for existing AggregateRating markup before adding review data through this tool.
Can structured data improve my search rankings directly?
Structured data is not a direct ranking factor according to Google. However, it indirectly improves rankings by increasing click-through rates. When your listing shows star ratings and price information, more people click on it. Higher click-through rates signal to Google that your result is relevant, which can improve your position over time. The traffic and engagement benefits make structured data one of the best return-on-effort SEO improvements available.
What is the difference between Product schema and other schema types?
Product schema is specifically designed for individual product pages and enables rich results like price, availability, and ratings in search. Other common schema types for Shopify stores include Organization (for your brand), BreadcrumbList (for navigation), Article (for blog posts), and FAQPage (for FAQ sections). Each type targets different rich result features. A well-optimized store typically uses multiple schema types across different page templates.
Should I include variants in my Product schema?
Google recommends using a single Product schema per page with the primary variant’s details. If your product page displays multiple variants with different prices, use the lowest price in a priceRange field or create separate Offer entries for each variant within the same Product schema. For stores using Combined Listings where each color is a separate page, each page should have its own complete Product schema.
How do I make schema dynamic with Shopify Liquid?
Replace the hardcoded values in the generated JSON-LD with Liquid variables. For example, use {{ product.title | json }} for the product name, {{ product.description | strip_html | truncate: 200 | json }} for the description, and {{ product.selected_or_first_available_variant.price | divided_by: 100.0 }} for the price. The json filter is important for strings as it handles special characters and adds proper quoting.
Does Shopify automatically add schema markup to my store?
Shopify’s default themes include basic structured data, but the quality and completeness vary significantly between themes. Many themes only output minimal Product schema with the name and price, missing brand, SKU, review data, and other fields that enhance rich results. Third-party themes are even more inconsistent. Always audit your existing schema using Google’s Rich Results Test before assuming your theme handles it adequately.
What about schema for collection pages?
Collection pages can benefit from CollectionPage or ItemList schema, which tells Google about the products listed on the page. However, Product schema is specifically for individual product pages and provides the richest results. Focus on getting Product schema right on all product pages first, then consider collection page schema as a secondary optimization.
Can I use this schema for Google Shopping?
Product schema and Google Shopping feed (Google Merchant Center) are related but separate. Product schema helps with organic rich results in Google Search, while the Google Shopping feed powers paid and free Shopping listings. However, having consistent data across both (same product name, price, availability, and image) improves your overall visibility and trustworthiness in Google’s systems.
How do I validate my schema after deployment?
Use Google’s Rich Results Test (search.google.com/test/rich-results) to check a specific URL, or use Schema Markup Validator (validator.schema.org) for a more detailed technical analysis. Google Search Console also reports structured data errors and warnings across your entire site in the Enhancements section. Check all three tools after deploying schema to catch different types of issues.
What happens if my schema has errors?
Schema with errors is typically ignored by Google, meaning you get no rich results but also no penalty. Schema with intentional misinformation (fake reviews, incorrect prices) can trigger a manual action from Google, which can suppress your entire site’s appearance in search results. Always ensure your schema data accurately reflects what is on the page, and fix errors promptly when detected.
Should I add schema to pages with no organic traffic?
Yes. Schema makes your pages eligible for rich results, which can attract organic traffic that the page was not previously receiving. A product page with no current organic traffic may start appearing in search results with rich snippets after schema is added, because the enhanced listing draws clicks that previously went to competitors. Implement schema across all product pages for maximum coverage.
