Missing schema product
Moderate effortFound on 52% of audited stores.
Add Product schema markup (JSON-LD) to every product page so search engines can display rich results — including price, availability, and ratings — directly in search.
What it is
Product schema is a standardized block of code (called structured data) that you add to your product pages to formally tell Google and other search engines exactly what your page is about: the product's name, price, availability, images, and reviews. It uses a universal language called Schema.org, wrapped in a small JSON-LD script tag that visitors never see. Without it, search engines have to guess at your product details by reading your page like a human would — and they often get it wrong, or simply skip the enhanced display altogether.
Why it matters
Product schema directly unlocks Google's "rich results" — those eye-catching search listings that show star ratings, price, stock status, and product images right on the search results page, before anyone even clicks. Stores with rich results consistently earn higher click-through rates (often 20–30% more clicks) than plain blue-link listings showing the same product. Missing this markup means your products appear as generic text links while competitors with schema get the visual treatment. It also feeds Google's Shopping Graph and AI-powered answer features (like Google's AI Overviews), so without it you are invisible in an increasing share of product discovery moments.
How to fix it
- Identify every product page template on your site (most platforms use a single template file that renders all products).
- Compose a JSON-LD Product schema block that includes at minimum: @context, @type, name, description, image, sku, brand, and an Offers block with price, priceCurrency, and availability.
- Add any available review/rating data using the aggregateRating property to unlock star-rating rich results.
- Inject the completed <script type='application/ld+json'> block into the <head> or <body> of each product page, ideally via your theme's product template so it populates dynamically from your product database.
- Validate the markup using Google's Rich Results Test tool (search 'Rich Results Test') to confirm no errors or missing required fields.
- After publishing, monitor Google Search Console under Enhancements > Products to track indexing status and any new warnings.
Fix it on your platform
Pick your platform for the exact steps.
How to fix missing schema product on Shopify
- In your Shopify admin, go to Online Store → Themes → click 'Customize' next to your active theme.
- Exit the visual editor and instead click 'Edit code' (under the three-dot menu or Actions menu on the theme).
- Open the file 'templates/product.liquid' (or 'sections/product-template.liquid' / 'sections/main-product.liquid' depending on your theme generation).
- Paste the JSON-LD Product schema block (see code snippet below) at the very top or bottom of that file, using Liquid variables like {{ product.title }}, {{ product.price | money_without_currency }}, {{ product.featured_image | img_url: 'master' }}, and {{ product.selected_or_first_available_variant.sku }} to populate it dynamically.
- Save the file, then visit any live product page and use Google's Rich Results Test to validate the output.
How to fix missing schema product on Shopify Plus
- Follow the same Shopify steps above; in Shopify Plus you may also manage this via your custom storefront or via Shopify Scripts — prefer the theme approach for simplicity.
- If you use a headless or custom Hydrogen storefront, inject the JSON-LD block server-side in the product page component using the product data from the Storefront API response.
- Validate with Google's Rich Results Test after deployment.
How to fix missing schema product on WooCommerce
- Install the free 'Rank Math SEO' plugin or 'Schema & Structured Data for WP & AMP' plugin from the WordPress plugin repository (Plugins → Add New, search the plugin name).
- For Rank Math: go to Rank Math → Titles & Meta → Products, ensure 'Schema Type' is set to 'Product'. Rank Math auto-populates all required fields from your WooCommerce product data.
- For manual control: add the JSON-LD snippet to your child theme's 'woocommerce/single-product.php' template inside the wp_head() hook, using PHP variables like get_the_title(), $product->get_price(), $product->get_sku().
- Check the output on a live product page using Google's Rich Results Test.
How to fix missing schema product on BigCommerce
- In your BigCommerce admin, go to Storefront → My Themes → click 'Advanced' → 'Edit Theme Files' on your active theme.
- Open 'templates/pages/product.html' in the Stencil theme editor.
- Paste the JSON-LD schema block at the bottom of the file, using Handlebars variables: {{product.title}}, {{product.price.without_tax.value}}, {{product.sku}}, {{product.main_image.data}}, and set availability based on {{product.stock_level}}.
- Save and push the theme, then validate a live product URL in Google's Rich Results Test.
How to fix missing schema product on Wix
- Wix injects basic Product schema automatically for Wix Stores products — verify this is present by pasting a live product URL into Google's Rich Results Test.
- To enhance or customise the schema (e.g. add brand, GTIN, or richer offers data), use Wix's built-in 'SEO Settings' panel: in the Editor, click a product page → open the SEO panel → use the 'Structured Data Markup' or 'Additional Meta Tags' field to add a JSON-LD block.
- Alternatively, add custom JSON-LD via Wix Velo (Developer Mode): open the page code panel and inject the schema using the wix-seo module's setStructuredData() method with your product data.
- Validate the final output with Google's Rich Results Test.
How to fix missing schema product on Squarespace
- Squarespace Commerce automatically outputs basic Product schema for store products — confirm this is present using Google's Rich Results Test on a product URL.
- To inject enhanced or additional schema fields not natively supported, go to your Page Settings for the product page → Advanced → 'Page Header Code Injection' and paste your custom JSON-LD block there.
- For site-wide product schema injection on all product pages, go to Settings → Advanced → 'Code Injection' → Header, and use a conditional approach if your template supports it.
- Validate with Google's Rich Results Test after saving.
How to fix missing schema product on Webflow
- Open your Webflow project and navigate to the product template page (the CMS Collection page bound to your Products collection).
- Add an 'Embed' element (the HTML Embed widget) inside the page — place it anywhere on the canvas (it will be invisible to visitors).
- Paste the JSON-LD script block into the Embed element, using Webflow's CMS field bindings to dynamically pull in product Name, Price, SKU, Image, and Description from your Products collection fields.
- Publish the site, then validate a live product page URL with Google's Rich Results Test.
How to fix missing schema product on Adobe Commerce (Magento)
- In your Magento admin, navigate to Content → Design → Configuration → select your store view → Edit.
- For a code-based approach, create or edit the product view template at 'app/design/frontend/<Vendor>/<Theme>/Magento_Catalog/templates/product/view.phtml' in your custom theme.
- Add the JSON-LD block at the top of that template using PHP/Magento variables: $product->getName(), $product->getFinalPrice(), $product->getSku(), and $block->getImage($product,'product_base_image')->getImageUrl().
- Alternatively, install the free 'MageArray Product Schema Markup' extension from the Magento Marketplace for an admin-driven solution.
- Clear the Magento cache (System → Cache Management → Flush Magento Cache), then validate a product page with Google's Rich Results Test.
How to fix missing schema product on Magento Open Source
- Follow the same steps as Adobe Commerce above — the template path and PHP variable approach is identical in Magento Open Source.
- Flush the cache after any template change via bin/magento cache:flush in the CLI or via the admin Cache Management panel.
- Validate with Google's Rich Results Test.
How to fix missing schema product on PrestaShop
- In your PrestaShop back office, go to Modules → Module Manager and install a schema module such as 'SEO Expert' or 'Structured Data / Schema.org Markup'.
- Alternatively, edit your active theme's product template: themes/<your-theme>/templates/catalog/product.tpl and add the JSON-LD block using Smarty variables: {$product.name}, {$product.price}, {$product.reference}, {$product.cover.large.url}.
- Clear the PrestaShop cache via Advanced Parameters → Performance → Clear Cache, then validate a product page with Google's Rich Results Test.
How to fix missing schema product on Headless / Custom (I build in code)
- In your product page component (React, Vue, Svelte, etc.), construct the schema object dynamically from your product data source (API, CMS, or database).
- Render it as a <script type='application/ld+json'> tag inside the page <head> using your framework's head management utility (e.g. Next.js next/head, Nuxt.js useHead, or a standard dangerouslySetInnerHTML approach in React).
- Ensure the schema renders in the server-side HTML (SSR or SSG) so it is present in the initial page response — do not rely on client-side-only injection.
- Validate with Google's Rich Results Test.
How to fix missing schema product on Yotpo
- Yotpo injects aggregateRating and Review schema alongside its review widget — this complements (but does not replace) the core Product schema your platform must output.
- In your Yotpo admin: go to Settings → Integrations → and confirm your platform integration is active so Yotpo can append review/rating structured data to your existing Product schema.
- In Yotpo's Widget settings, ensure 'Rich Snippets' or 'Structured Data' is enabled (look under Settings → Widgets → Rich Snippets toggle) so that aggregateRating data is embedded in your product pages.
- After enabling, validate a product page with Google's Rich Results Test — you should see both the Product type and an aggregateRating object within it.
- Note: Yotpo handles the rating/review portion only — the base Product schema (name, price, availability) must be present from your platform's theme or a separate SEO plugin as described in the platform steps above.
How to fix missing schema product on Next.js (Headless)
- Locate (or create) your product page file — either `app/products/[slug]/page.tsx` (App Router) or `pages/products/[slug].tsx` (Pages Router). All Product JSON-LD lives here.
- Fetch the product data server-side (via `generateMetadata` / `getStaticProps` / `getServerSideProps`) so every field in the schema is populated before the page is sent to the crawler.
- Build a typed `productJsonLd` object that maps your commerce data to the Schema.org `Product` type, including `name`, `image`, `description`, `sku`, `brand`, `offers` (price, currency, availability), and optionally `aggregateRating`.
- Inject the JSON-LD using a `<Script id='product-schema' type='application/ld+json'>` tag (App Router) or Next.js `<Script>` / a plain `<script>` inside `<Head>` (Pages Router) — *not* as a regular `<script>` without `type='application/ld+json'`, and never dangerouslySetInnerHTML in a client component.
- Validate the output in Google's Rich Results Test (https://search.google.com/test/rich-results) and Schema Markup Validator (https://validator.schema.org/) before deploying.
- For large catalogues, generate the schema inside `generateStaticParams` so every PDP is statically rendered with its own schema at build time, avoiding runtime latency.
Does your site have this issue?
Run a free SEOLZ scan to find missing schema product — and every other issue — across your whole site in minutes.
Scan my site freeFrequently asked questions
What is Missing schema product?
Product schema is a standardized block of code (called structured data) that you add to your product pages to formally tell Google and other search engines exactly what your page is about: the product's name, price, availability, images, and reviews. It uses a universal language called Schema.org, wrapped in a small JSON-LD script tag that visitors never see. Without it, search engines have to guess at your product details by reading your page like a human would — and they often get it wrong, or simply skip the enhanced display altogether.
Why does missing schema product matter?
Product schema directly unlocks Google's "rich results" — those eye-catching search listings that show star ratings, price, stock status, and product images right on the search results page, before anyone even clicks. Stores with rich results consistently earn higher click-through rates (often 20–30% more clicks) than plain blue-link listings showing the same product. Missing this markup means your products appear as generic text links while competitors with schema get the visual treatment. It also feeds Google's Shopping Graph and AI-powered answer features (like Google's AI Overviews), so without it you are invisible in an increasing share of product discovery moments.
How do I fix missing schema product?
Add Product schema markup (JSON-LD) to every product page so search engines can display rich results — including price, availability, and ratings — directly in search.