No Signup Unlimited Usage Real Data 100% Free Privacy First Fast Results Export Reports Mobile Friendly

Structured Data (Schema) Checker for E-commerce Managers

Check what structured data your product, category and collection templates actually print in the page source, so a missing Product block shows up before it costs you eligibility.

Fetching live data…

Why E-commerce Managers need this

Faceted filters for size, colour, price and sort can spin a single category into thousands of crawlable URLs, and Googlebot can spend its time on those variants while new products wait to be discovered. Meanwhile the product pages themselves often share templated copy, the same item sits under several category paths, and paginated listings hide deeper SKUs behind a load more button. Structured data is the part of that mess you can verify in minutes. The Structured Data (Schema) Checker fetches one URL, reads the HTML as served, lists every JSON-LD and Microdata type it finds, and prints each valid JSON-LD block so you can read its values. For an e-commerce manager that answers a plain question: does this product template print Product markup, or did a theme update, an app or a migration quietly drop it? Run one product page, one category page and one filtered category URL, then compare. The result shows what is in the source. It does not show whether Google indexed the page, whether prices are accurate, or whether a rich result will appear.

E-commerce Managers specific guidance

What to run first

Start with the template that earns the money: one in-stock product URL such as https://store.example/products/linen-shirt-blue, not the homepage. Paste it in, then look at the Structured Data Overview cards for Schema types, JSON-LD items and Microdata items. You want a chip reading JSON-LD: Product. Then repeat for one category URL and one variant URL with a size or colour parameter. The source varies: often the theme on Shopify, WooCommerce core or an SEO plugin on WooCommerce, and the theme or an extension on Magento. Find out which one is producing it before you touch anything. A Product chip does not prove the price, availability or image values are right, and it says nothing about whether the page is crawled or indexed.

How to read the result

Read the chips first, then the JSON-LD Source. Two Product items on one page is a common sign that a theme and an SEO plugin or review app both print markup, so the source lets you compare the price and name each block declares. If a block shows Invalid JSON-LD block detected, look for a trailing comma, smart quotes pasted from a product description, or two objects pasted without an array. The Rich Result Eligibility table only maps each type to what it may enable, such as Product / merchant listing or Breadcrumb trail. It does not check required properties or Google's policies, so confirm the final answer in Google's Rich Results Test. An empty result on a page you expected to carry markup points to a missing template, a page whose only block is invalid JSON, or markup injected by JavaScript after load, which this check does not run.

What to fix, and in which order

Fix the template-level gap before anything cosmetic. If product pages return no Product type, restore it in the theme or switch on the plugin setting that outputs it, then re-run the same URL to confirm the chip appears. Next remove duplicates: keep one source of Product markup and turn the others off. Then correct any invalid blocks. After that, run one URL per page type, because the checker handles a single URL per run and does not crawl the store. If you need to write missing markup, generate clean JSON-LD with the Schema Generator and check the page tags with the Meta Tag Analyzer. Valid markup can make a page eligible, nothing more. Google decides whether to show a rich result, and a fix here promises no ranking change.

Example scenarios

1. Product template lost after a theme update

Situation
Illustrative example: a store with 1,200 products updates its theme on a Friday, and a custom product section replaces the old template that held the JSON-LD block. Nobody notices because the pages look identical to shoppers.
Input
https://store.example/products/linen-shirt-blue
Reading the result
The tool would typically print "No JSON-LD or Microdata structured data found on this page." That points to a template problem rather than one bad product, so test two more products from different collections. If they come back empty too, restore the markup block in the product template and re-run.

2. Theme and review app both print Product

Situation
Illustrative example: a store with 40 mugs and glassware installs a reviews app. The theme already prints Product JSON-LD, and the app adds a second block with its own price formatting.
Input
https://store.example/products/ceramic-mug-6-pack
Reading the result
Expect a chip like JSON-LD: Product ×2, often beside nested types such as JSON-LD: Offer ×2, because the cards count nested types too. Open the JSON-LD Source and compare the price in each block, for instance 24.00 against 24.99. Disable one source, then re-run until a single Product item remains.

3. Filtered category versus clean category

Situation
Illustrative example: a manager with 15 category pages and size, colour and sort filters wants to know whether a filtered URL carries the same markup as the clean category page before deciding how to handle facets.
Input
https://store.example/collections/shirts?filter.size=M&sort_by=price-ascending
Reading the result
If both URLs list only BreadcrumbList, the filtered URL likely reuses the category template. The result says nothing about the canonical, robots rules or whether Google crawls this variant, so check those separately with the meta tag and robots tools.

Common mistakes

  • Testing only the homepage. The homepage usually carries Organization markup, which says nothing about product templates. Run a product URL, a category URL and a variant URL separately.
  • Treating a Product chip as a pass. The chip shows the type is in the source, not that the price, availability or image values are correct. Read the JSON-LD Source and compare it with what the page shows.
  • Ignoring duplicate blocks. Two Product items often come from a theme and an app printing the same data with different values. Pick one source and switch the other off.
  • Relying on tag manager injection. The checker reads the HTML as served and runs no JavaScript, so markup added after load will not appear. Print the JSON-LD from the product template instead.
  • Expecting a rich result from valid markup. Eligibility is not a promise, and the Rich Result Eligibility table is only a type lookup. Confirm in Google's Rich Results Test and accept that Google decides what to show.

Frequently asked questions

How do I check product schema markup on my product pages?

Paste one product URL, for example https://store.example/products/linen-shirt-blue, into the checker and read the chips under Structured Data Overview. A JSON-LD: Product chip means the page source prints that type, and the JSON-LD Source section shows the values it declares, such as name and price. Repeat for an out-of-stock product and one with variants, because templates sometimes branch. The result confirms presence in the HTML, while Google's Rich Results Test is the place to confirm required properties.

Why does my product page show two Product items?

Two items usually mean two sources print markup, such as the theme and an SEO plugin or a review app. Open the JSON-LD Source and compare the name, price and availability each block declares. If they disagree, the page gives conflicting data about the same product. Decide which source should own the markup, switch the other off in its settings, and re-run the same URL until only one Product item remains.

Does faceted navigation affect structured data on filtered URLs?

Filtered URLs such as ?size=M&sort=price usually reuse the category template, so they tend to print the same markup as the clean category page. Paste one into the checker and compare the chips with the unfiltered URL. What the checker cannot tell you is whether Google crawls that variant, which canonical it carries or whether robots.txt blocks it. Handle that with canonical and robots checks, because structured data will not fix wasted crawling on endless filter combinations.

Will valid product schema fix duplicate product descriptions?

No. Structured data labels what a page contains; it does not change how similar your copy is to the manufacturer text other retailers use, or to your own sibling pages. The checker only lists the markup types found in the source, so it will not flag thin or duplicated descriptions. Use a text similarity or thin content check for that, and rewrite the copy at template level. Markup and copy are separate jobs, and passing one says nothing about the other.

Why does the checker find nothing when my tag manager adds product schema?

The checker reads the HTML as served and does not run JavaScript, so markup injected by a script or tag manager after load is not visible to it. Markup the platform prints in the page source is. If the result is empty but you know a tag adds schema, view the page source and search for application/ld+json to confirm. Consider printing the JSON-LD from the product template itself, then re-run the URL.

Reference: Google's guide to structured data for ecommerce sites is the official reference for what product markup on a store should contain.

Last updated: Türkçe sürüm