Skip to main content

Pages with Product Snippet Structured Data

Priority: Medium

Impact: Positive

What issues it may cause

Pages without Product Snippet structured data won't display enhanced product information in search results, reducing visibility compared to competitors who show ratings, review counts, and price ranges directly in search results.

How do you fix it

  • Only use Product Snippet structured data on pages where users cannot directly purchase (for merchant pages, use Merchant Listing instead)

  • Include required properties: name, and at least one of review, aggregateRating, or offers
  • Add recommended properties: image, brand, sku, description, and for editorial reviews include positiveNotes and negativeNotes

  • Use valid enumeration values for availability (InStock, OutOfStock, PreOrder, Discontinued, etc.)

Follow Google's Product Snippet guidelines for complete requirements

What is the positive impact

Product reviews and comparisons are eligible to appear with enhanced information including star ratings, review counts, price ranges, and availability directly in search results, increasing click-through rates from shoppers researching purchase decisions.

How to fetch the data for this report template

You will need to run a crawl for report template to generate report. When report has been generated and you have crawl id you can fetch data for the report using the following query:

Operation: query GetReportStatForCrawl( $crawlId: ObjectID! $reportTemplateCode: String! $after: String ) { getReportStat( input: {crawlId: $crawlId, reportTemplateCode: $reportTemplateCode} ) { crawlStructuredDataBlocks(after: $after, reportType: Basic) { nodes { url schemaType blockCount errorCount warningCount issuesSummary validationResult } totalCount pageInfo { endCursor hasNextPage } } } }Variables: {"crawlId":"TjAwNUNyYXdsNDAwMA","reportTemplateCode":"pages_with_product_snippet_schema_blocks"}
GetReportStatForCrawlTry in Explorer
GraphQL
query GetReportStatForCrawl(
$crawlId: ObjectID!
$reportTemplateCode: String!
$after: String
) {
getReportStat(
input: {crawlId: $crawlId, reportTemplateCode: $reportTemplateCode}
) {
crawlStructuredDataBlocks(after: $after, reportType: Basic) {
nodes {
url
schemaType
blockCount
errorCount
warningCount
issuesSummary
validationResult
}
totalCount
pageInfo {
endCursor
hasNextPage
}
}
}
}