Shelf / Checks / Structure
Structure

Missing Product structured data

Without Product or ProductGroup JSON-LD, price and stock have to be inferred from your layout rather than read.

How to fix it
  1. Most modern Shopify themes emit this already. Check yours before adding a second copy, because two conflicting Product blocks are worse than one.
  2. If your product has variants, ProductGroup with hasVariant is the correct shape, not a single Product with one price.
  3. Validate the output on a real product URL with Google's Rich Results Test. A block that fails to parse counts as absent.

Why an agent cares

A person looking at your product page sees the price because it is large and near the buy button. An agent has no such intuition. It sees a document, and it looks for the block that declares, in a fixed vocabulary, that this page is about a product costing this much in this currency with this availability.

When that block is missing, the agent either falls back on guessing from the rendered text, which is unreliable and often catches a strikethrough compare-at price, or it skips your page for one where the answer is unambiguous.

This is the single highest-leverage fix on most stores because it is a one-time template change that applies to the entire catalogue.

Minimum viable Product JSON-LD

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Bearking 115mm Suspending Minnow",
  "brand": { "@type": "Brand", "name": "Bearking" },
  "sku": "BK-115-SP",
  "gtin13": "0712345678901",
  "image": ["https://.../lure.jpg"],
  "description": "115mm suspending jerkbait...",
  "offers": {
    "@type": "Offer",
    "price": "18.90",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://store.com/products/bearking-115"
  }
}

Check your own store

This check runs as part of a full audit, alongside 18 others. Nothing to install.

Store
Any Shopify store. No install, no login, nothing to connect.