Skip to main content

Shopify Structured Data: Check, Fix and Improve Your Schema

BulkFlow | | 10/15/2026

Shopify structured data is code on your store’s pages that tells search engines exactly what each page contains, such as a product’s name, price, availability and reviews. Google uses it to understand your products and to show richer search results, like prices, stock status and star ratings.

Most modern Shopify themes already add some structured data automatically, so you rarely start from nothing. The real work is finding out what your theme and apps produce, filling the gaps that matter and making sure the markup stays accurate and free of duplicates.

What Structured Data Your Shopify Store Already Has

Many Online Store 2.0 themes output structured data by default using Shopify’s structured_data Liquid filter. Shopify’s Dawn theme, for example, uses it to add product markup on product pages and article markup on blog posts, and adds organization and website markup in the header.

Page What a theme like Dawn adds What’s often missing
Product pages Product markup, or ProductGroup for products with variants, including brand, images and offers with price, currency and availability Review ratings, breadcrumbs, and identifiers if your products don’t have them
Blog posts Article markup Usually complete for basic needs
Every page Organization markup with your store name and logo Return policy and shipping details
Homepage WebSite markup Nothing essential
Collection pages Usually none Breadcrumbs, if your theme shows them

Themes differ, so treat the table as a starting point rather than a guarantee. Older or heavily customized themes may use a different format called microdata, or no markup at all, and review apps often add their own product rating markup on top of what the theme provides.

The structured_data filter decides the product type for you. A product without variants is output as a schema.org Product, while a product with variants is output as a ProductGroup, which helps Google understand that the variants belong to one parent product.

How to Check Your Store’s Structured Data

Before adding anything, test a few representative pages to see what’s already there. Check at least one product with variants, one without, a collection page, a blog post and your homepage.

  • Google’s Rich Results Test. Enter a URL to see which rich result types Google detects, along with errors and warnings.
  • Schema Markup Validator. Shows every schema.org type on the page, including ones that don’t qualify for a Google rich result.
  • Search Console reports. The merchant listings and product snippets reports show errors across your whole store, not just one page.
  • Your page source. Searching the page source for application/ld+json shows every JSON-LD block and makes duplicates easy to spot.

Pay attention to how many Product blocks a single product page has. One from your theme and another from a review app or SEO app is a common source of duplicate or conflicting markup.

Which Schema Types Matter for a Shopify Store

Not every schema type earns something visible in search, and Google has retired several rich results in recent years. The table shows what each common type does for a store today.

Schema type Where it goes What it can do
Product and Offer Product pages Makes products eligible for merchant listings and product snippets with price, availability and more
ProductGroup Product pages with variants Shows Google how sizes, colors and other variants relate
AggregateRating and Review Product pages, nested in Product Can show star ratings when reviews are visible on the page
BreadcrumbList Product, collection and content pages Helps Google show your site hierarchy in results
Organization Homepage or site-wide Describes your business, and can hold store-wide return and shipping policies
Article Blog posts Helps Google understand headlines, dates and authors
FAQPage FAQ content No longer produces FAQ rich results in Google Search

Product markup deserves most of your attention, because it’s what connects your product pages to Google’s shopping results. Google treats pages where customers can buy as merchant listings, which need a name, an image and an offer with a price above zero and a currency, and support extras such as GTINs, brand, shipping and return details.

Two older recommendations no longer apply. Google stopped showing FAQ rich results in May 2026 after limiting them to government and health sites in 2023, and it retired the sitelinks search box that WebSite search markup used to support. Existing markup of either type does no harm, but it isn’t worth adding for search appearance.

How to Add or Improve Structured Data

There are three ways to change your store’s structured data. The right one depends on how much your theme already covers and how comfortable you are editing theme code.

Approach Best for Trade-offs
Keep the theme’s markup Stores whose theme already outputs Product and Article markup without errors Limited to what the theme includes
Structured data app Adding types such as breadcrumbs or richer product markup without code Monthly fees and possible duplicates with theme markup
Custom JSON-LD in the theme Full control over each type and property Needs Liquid knowledge, and theme updates may need the code reapplied

Adding JSON-LD to your theme

JSON-LD is Google’s recommended format and the easiest to maintain, because it sits in its own script block instead of being woven into your page HTML. To edit it, go to Online Store > Themes, open the menu next to your theme and choose Edit code. Duplicate your theme first, so you can test changes on a copy.

Use Liquid to fill in values from your store, so the markup updates automatically when products change. This example adds simple breadcrumb markup to a product page:

<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@type": "BreadcrumbList",
 "itemListElement": [
 {
 "@type": "ListItem",
 "position": 1,
 "name": "Home",
 "item": "{{ shop.url }}"
 },
 {
 "@type": "ListItem",
 "position": 2,
 "name": {{ product.title | json }},
 "item": "{{ shop.url }}{{ product.url }}"
 }
 ]
}
</script>

A few formatting rules prevent most errors. Prices must be plain numbers such as 39.99, currencies must be three-letter codes such as USD, availability should use schema.org values such as InStock, and image and page URLs should be absolute. Using the json filter on text values, as in the example, keeps quotes and special characters in titles from breaking the code.

Avoid duplicate markup

Duplicates happen when your theme, a review app and an SEO app each output their own Product markup. Search engines then see several versions of the same product, sometimes with conflicting prices or ratings.

Decide which source should own each schema type, then turn the others off. Many structured data apps have a setting to remove theme markup, and review apps may let you disable their own product markup or merge ratings into the existing Product block. Retest the page afterward to confirm only one Product block remains.

Keep Your Structured Data Accurate

Structured data only helps when it matches what shoppers see. Markup that shows a lower price, different stock status or ratings that aren’t on the page can make your products ineligible for rich results.

  • Match the visible page. Price, availability and reviews in the markup should match what the product page displays.
  • Keep reviews genuine and visible. Product reviews can show star ratings, but the reviews must appear on the page, and fake or undisclosed incentivized reviews aren’t allowed.
  • Stay consistent with Merchant Center. If you also send a product feed to Google, keep prices, availability and identifiers the same in both places.
  • Retest after changes. Theme updates, theme switches and new apps can add, remove or duplicate markup, so check key pages after each one.

Your markup can only be as complete as your product data. Brand, barcodes, SKUs and images come from your product records, so products with missing vendors or barcodes produce thinner markup however good your theme’s code is.

Filling those gaps across a catalog is often a bulk job. Bulkflow supports bulk import, export and updates with field mapping for Shopify, WooCommerce and Wix, so you can export products, fill in missing vendors, barcodes or SKUs in a spreadsheet and update your store.

Conclusion

Shopify structured data starts with what your theme already provides, and improving it means checking that markup, adding the types that still earn rich results and removing duplicates. Keeping the markup accurate and your product data complete gives Google a clear, trustworthy picture of every product you sell. We hope this guide helps you get the most from your Shopify structured data. If you manage product data in bulk, you can explore Bulkflow.

Shopify Structured Data: Check, Fix and Improve Your Schema
BulkFlow provides a solution to import data in bulk from CSV/Excels Files, FTP, Google Sheet, XML,… to e-commerce platforms such as Shopify, WooCommerce,… automatically and quickly.