Skip to content
DevMarDe
Crawl Audit check 9Crawl AuditStructured data

Product schema and prices: Crawl Audit check 9

Crawl Audit check 9 tests Product schema. When Google shows product snippets and merchant listings, what each requires, and why services pages can trip it.

Zain Kazmi4 min read
On this page
Check
9 of 200
Module
AI Search Visibility & GEO
Group
Structured Data & Schema Markup
Impact
Medium

Short answer: Product structured data tells Google and other machines the name, image, price and availability of a product on the page. Google uses it for two things: product snippets, the extra price and rating line under a result, and merchant listings, which only apply to pages where someone can actually buy. Crawl Audit check 9 makes sure a page that sells something has Product markup with an offer.

What Crawl Audit checks

  • Pass: a Product node with an offers object.
  • Warning: a Product node with no offers, so no price or availability.
  • Fail: no Product node, but the page looks commercial. That means a currency symbol followed by a number ($, £ or €), the words "add to cart", "buy now", "add to bag" or "checkout", or an Offer in the markup.
  • Pass: no Product node and nothing commercial, so the markup isn't needed.

Read the fail case carefully. A services page that mentions "from £500" counts as commercial, so check 9 can fail on a page that doesn't sell a product at all. Google's product docs are about products, and they say product rich results "only support pages that focus on a single product". If the page sells a service, don't force Product markup onto it. Treat the result as a prompt to check, not a must-fix.

What Google uses it for

Product snippets can show "a text result that includes additional product information such as ratings, review information, price, and availability." They require a name, and Google says they "require either review or aggregateRating or offers".

Merchant listings are stricter. Google says: "Only pages where a shopper can purchase a product are eligible for merchant listing experiences". They require name, image and offers, and the offer needs a price and a priceCurrency, the currency "in three-letter ISO 4217 format".

A minimal block that covers both, trimmed from Google's merchant listing example:

<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Executive Anvil",
  "image": ["https://example.com/photos/1x1/photo.jpg"],
  "offers": {
    "@type": "Offer",
    "price": 119.99,
    "priceCurrency": "USD"
  }
}
</script>

Keep the price on the page as visible text too, not only in an image. Google's general rule is "Don't mark up content that is not visible to readers of the page", and the markup should match what a shopper sees.

How to add it on your platform

  • Shopify: nothing to add in the Dawn theme. Its product template outputs {{ product | structured_data }}, which Shopify turns into a Product, or a ProductGroup when the product has variants. If you use another theme, look for that filter in the product template.
  • Wix Stores: Wix adds product markup to store pages through its presets. You can edit or add markup under the page's Advanced SEO › Structured Data Markup.
  • Squarespace: Product markup is generated automatically on product pages and can't be edited. Fill in the price, images and stock in the product settings.
  • WordPress: e-commerce plugins and SEO plugins can output Product markup. Check one product page in Google's Rich Results Test to see which one does, and make sure only one does.
  • Next.js: build the JSON-LD from the same data that renders the price, so the two can't drift apart.

Common mistakes

  • One Product block on a category page listing twenty products. Product rich results are for single-product pages.
  • A price in the markup that differs from the page, usually after a sale ends and the markup wasn't updated.
  • A missing priceCurrency, or a currency symbol instead of the code: use PKR, GBP or USD, not "Rs" or "£".
  • Product markup on a service. If you sell a service, a clear price in the page text does more than forced Product markup.

Sources

All 200 Crawl Audit checks

See how your site does on every check.

Crawl Audit runs this check and 199 others on your domain. The full report is $7.89, one time. The free check on this site covers 25.