Audit Standard / 2026.3
Rule explorer: Audit Standard 2026.3
Every check that defines technical readiness in MaxiMarket Audit Standard 2026.3, exactly as the audit applies it. Open a rule to see what it checks, why it matters, how to fix it, where its authority comes from and how much it counts.
Superseded. This is an earlier Audit Standard version, kept unchanged so audits saved under it keep their meaning. New audits use the current Audit Standard 2026.4.
Guides by topic: technical SEO audit rules, AI readiness, structured data and ecommerce product data.
Authority levels
- A search engine documents it as required for a specific outcome, such as Google eligibility.
- Strongest external authority
- Defined by an open standard or vocabulary: HTML, WCAG, IETF RFCs, Schema.org, Sitemaps, Open Graph.
- Recommended in official platform documentation, such as Google Search Central or an AI platform.
- Widely accepted practice with a cited source, but no official requirement.
- MaxiMarket’s own advice. Never presented as a search engine or platform requirement.
- MaxiMarket methodology
Filter
Showing 21 rules and 3 observations.
Rules
Rules pass or fail. A failed rule becomes a finding in your report; scored rules also count toward the Technical Score.
Ratings and reviews
STRUCTURED-RATING-001AggregateRating has required propertiesStructured dataWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- ratingValue and ratingCount or reviewCount on each AggregateRating.
- Why it matters
- Google requires these properties for review snippets.
- How to fix
- Add ratingValue and ratingCount (or reviewCount) to each AggregateRating.
- Expected
- Every AggregateRating has ratingValue and at least one of ratingCount or reviewCount.
- Applies to
- Pages with at least one AggregateRating entity.
- Authority
- Official search-engine requirement · RequiredRequired for Google review snippets.
- Technical Score
- Weight 2 of 3Required properties for review snippets.
- How MaxiMarket detects it
- Checks AggregateRating entities (and subtypes) found in the inspected JSON-LD. Reports when one lacks a non-empty ratingValue or has neither ratingCount nor reviewCount.
- Sources
- Review snippet structured data — Google Search Central, verified 2026-09-26
STRUCTURED-RATING-002Review has required propertiesStructured dataWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- author, reviewRating.ratingValue and, for reviews not nested in the reviewed item, itemReviewed.
- Why it matters
- Google requires these properties for review snippets.
- How to fix
- Add author, reviewRating.ratingValue and (for standalone reviews) itemReviewed to each Review.
- Expected
- Every Review has an author and a reviewRating with ratingValue; top-level reviews also name itemReviewed.
- Applies to
- Pages with at least one Review entity.
- Authority
- Official search-engine requirement · RequiredRequired for Google review snippets.
- Technical Score
- Weight 2 of 3Required properties for review snippets. Excluded from the score when STRUCTURED-AUTHOR-001 fails, because a nameless author can fail both checks.
- How MaxiMarket detects it
- Checks Review entities (and subtypes) found in the inspected JSON-LD. Reports when one lacks author, lacks a reviewRating with a non-empty ratingValue, or is a top-level entity without itemReviewed.
- Sources
- Review snippet structured data — Google Search Central, verified 2026-09-26
Product and Offer data
STRUCTURED-PRODUCT-001Product has a nameProductWarning when failedWeight 3Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Product entity has a usable name.
- Why it matters
- Google lists name as required for both Product snippets and merchant listings; items missing required properties are not eligible for rich results.
- How to fix
- Add a "name" property with the product name to each Product entity.
- Expected
- Every Product entity has a non-empty name.
- Applies to
- Pages with at least one fully inspected Product entity; not applicable otherwise.
- Authority
- Official search-engine requirement · RequiredRequired for Google Product snippet and merchant listing rich result eligibility.
- Technical Score
- Weight 3 of 3A Product name is required for every product rich result.
- How MaxiMarket detects it
- Reports when at least one fully inspected Product entity (at most 20) has no non-empty string name.
- Sources
- Product snippet structured data — Google Search Central, verified 2026-09-26
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- General structured data guidelines — Google Search Central, verified 2026-09-26
STRUCTURED-PRODUCT-002Product has an offer (merchant listings)ProductWarning when failedNot scoredTechnical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Product entity has a recognizable Offer or AggregateOffer.
- Why it matters
- Google requires offers for merchant listings. The separate Product-snippet requirement (offers, review or aggregate rating) is STRUCTURED-PRODUCT-008.
- How to fix
- Add an "offers" property with an Offer (or AggregateOffer for multiple sellers) to each Product entity.
- Expected
- Every Product entity has an offers property containing an Offer or AggregateOffer.
- Applies to
- Pages with at least one fully inspected Product entity; not applicable otherwise. Merchant-listing requirement.
- Authority
- Official search-engine requirement · RequiredRequired for Google merchant listing eligibility.
- Technical Score
- Not scoredMerchant listings apply only to pages where the product can be bought, which MaxiMarket cannot infer; Product-snippet eligibility is scored by STRUCTURED-PRODUCT-008.
- How MaxiMarket detects it
- Reports when at least one fully inspected Product entity has no offers value whose @type is Offer or AggregateOffer. Reviews and ratings are not considered.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- General structured data guidelines — Google Search Central, verified 2026-09-26
STRUCTURED-PRODUCT-008Product has an offer, review or aggregate rating (Product snippets)ProductWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Product entity has at least one of offers, review or aggregateRating.
- Why it matters
- Google requires one of offers, review or aggregateRating for Product snippets; items missing required properties are not eligible for rich results.
- How to fix
- Add an "offers" Offer, a "review" Review or an "aggregateRating" AggregateRating to each Product entity.
- Expected
- Every Product entity has an Offer or AggregateOffer, a Review, or an AggregateRating.
- Applies to
- Pages with at least one fully inspected Product entity; not applicable otherwise. Product-snippet requirement.
- Authority
- Official search-engine requirement · RequiredRequired for Google Product snippet eligibility.
- Technical Score
- Weight 2 of 3One of offers, review or rating is required for Product snippets.
- How MaxiMarket detects it
- Reports when at least one fully inspected Product entity (at most 20) has none of: an offers value typed Offer or AggregateOffer, a review object (typed Review or untyped), or an aggregateRating object (typed AggregateRating or untyped).
- Sources
- Product snippet structured data — Google Search Central, verified 2026-09-26
- General structured data guidelines — Google Search Central, verified 2026-09-26
STRUCTURED-PRODUCT-003Product has an imageProductWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Product entity has a usable image.
- Why it matters
- Google lists image as required for merchant listings.
- How to fix
- Add an "image" property with the URL of a product photo to each Product entity.
- Expected
- Every Product entity has an image URL or ImageObject.
- Applies to
- Pages with at least one fully inspected Product entity; not applicable otherwise.
- Authority
- Official search-engine requirement · RequiredRequired for Google merchant listing eligibility.
- Technical Score
- Weight 2 of 3An image is required for merchant listings.
- How MaxiMarket detects it
- Reports when at least one fully inspected Product entity has no non-empty image string, array item or ImageObject. Image URLs are not fetched or validated.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- General structured data guidelines — Google Search Central, verified 2026-09-26
STRUCTURED-PRODUCT-004Product has a product identifierProductWarning when failedWeight 1Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Product entity has a recognized product identifier: GTIN, MPN, SKU or ISBN.
- Why it matters
- Google recommends GTIN, MPN or SKU identifiers for merchant listings to identify the product.
- How to fix
- Add the applicable identifier, such as "gtin13", "mpn" or "sku", to each Product entity.
- Expected
- Every Product entity has a GTIN, MPN, SKU or ISBN.
- Applies to
- Pages with at least one fully inspected Product entity; not applicable otherwise.
- Authority
- Official platform recommendation · RecommendedGoogle recommendation for merchant listings.
- Technical Score
- Weight 1 of 3Identifiers are recommended, not required.
- How MaxiMarket detects it
- Reports when at least one fully inspected Product entity has none of sku, gtin, gtin8, gtin12, gtin13, gtin14, isbn or mpn with a non-empty value. Identifier formats and check digits are not validated.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- Schema.org Product — Schema.org, verified 2026-09-26
STRUCTURED-PRODUCT-005Product declares a brandProductInfo when failedWeight 1Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Product entity has a brand with a name.
- Why it matters
- Google recommends brand for merchant listings; it identifies the product's maker.
- How to fix
- Add brand, for example {"@type": "Brand", "name": "…"}.
- Expected
- Every Product has a brand name.
- Applies to
- Pages with at least one fully inspected Product entity; not applicable otherwise.
- Authority
- Official platform recommendation · RecommendedFully inspected Product entities (at most 20 per page).
- Technical Score
- Weight 1 of 3Brand is a recommended property.
- How MaxiMarket detects it
- Reports when a fully inspected Product entity has no brand that is a non-empty string or an object with a non-empty name.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- Schema.org Product — Schema.org, verified 2026-09-26
STRUCTURED-PRODUCT-006Product has a descriptionProductInfo when failedWeight 1Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Product entity has a description.
- Why it matters
- Google recommends a description for merchant listings.
- How to fix
- Add a description to each Product.
- Expected
- Every Product has a non-empty description.
- Applies to
- Pages with at least one fully inspected Product entity; not applicable otherwise.
- Authority
- Official platform recommendation · RecommendedFully inspected Product entities (at most 20 per page).
- Technical Score
- Weight 1 of 3Description is a recommended property.
- How MaxiMarket detects it
- Reports when a fully inspected Product entity has no non-empty description string.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
STRUCTURED-PRODUCT-009ProductGroup declares a name and a group identifierProductWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- ProductGroup name, and a product group identifier as productGroupID or as inProductGroupWithID on its variants.
- Why it matters
- Google requires a ProductGroup name, and each product group needs a unique ID given by productGroupID or by inProductGroupWithID on its variants.
- How to fix
- Add name and productGroupID to the ProductGroup.
- Expected
- A name and a group identifier.
- Applies to
- Pages with at least one ProductGroup entity.
- Authority
- Official search-engine requirement · RequiredRequired for Google product variant support.
- Technical Score
- Weight 2 of 3A ProductGroup without a name or group ID is not usable for variants.
- How MaxiMarket detects it
- Checks ProductGroup entities in the inspected JSON-LD. Reports when one has no non-empty name, or has no productGroupID while none of its variants (hasVariant Products, or Products whose isVariantOf is the group) declares inProductGroupWithID.
- Sources
- Product variant structured data — Google Search Central, verified 2026-09-26
STRUCTURED-PRODUCT-010Variant group identifiers matchProductWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- inProductGroupWithID of each variant against productGroupID of its ProductGroup.
- Why it matters
- Google requires the two identifiers to match when both are provided.
- How to fix
- Use the same identifier in productGroupID and in every variant's inProductGroupWithID.
- Expected
- Equal values.
- Applies to
- Pages where a ProductGroup declares productGroupID and at least one of its variants declares inProductGroupWithID.
- Authority
- Official search-engine requirement · RequiredRequired for Google product variant support.
- Technical Score
- Weight 2 of 3Mismatched group identifiers break the variant relationship.
- How MaxiMarket detects it
- For ProductGroups with productGroupID, reports when a linked variant (hasVariant, or isVariantOf the group) declares a different inProductGroupWithID (compared after trimming whitespace).
- Sources
- Product variant structured data — Google Search Central, verified 2026-09-26
STRUCTURED-OFFER-001Offer has a priceOfferWarning when failedWeight 3Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Offer has a price or a priceSpecification price.
- Why it matters
- Google lists price (or priceSpecification.price) as required on Offer for both Product snippets and merchant listings.
- How to fix
- Add a "price" property with the current offer price to each Offer.
- Expected
- Every Offer has a price (or priceSpecification.price).
- Applies to
- Pages with at least one inspected Offer linked from a fully inspected Product.
- Authority
- Official search-engine requirement · RequiredRequired for Google Product snippet and merchant listing eligibility.
- Technical Score
- Weight 3 of 3A price is required for every Offer.
- How MaxiMarket detects it
- Reports when at least one inspected Offer linked from a fully inspected Product has neither a non-empty direct price nor a priceSpecification (object or array) with a non-empty price.
- Sources
- Product snippet structured data — Google Search Central, verified 2026-09-26
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- General structured data guidelines — Google Search Central, verified 2026-09-26
STRUCTURED-OFFER-002AggregateOffer has a lowPriceOfferWarning when failedWeight 3Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected AggregateOffer has a direct lowPrice.
- Why it matters
- Google lists lowPrice as required on AggregateOffer for Product snippets.
- How to fix
- Add a "lowPrice" property with the lowest available offer price to each AggregateOffer.
- Expected
- Every AggregateOffer has a lowPrice.
- Applies to
- Pages with at least one inspected AggregateOffer linked from a fully inspected Product.
- Authority
- Official search-engine requirement · RequiredRequired for Google Product snippet eligibility when AggregateOffer is used; merchant listings require Offer instead.
- Technical Score
- Weight 3 of 3lowPrice is the required price of an AggregateOffer.
- How MaxiMarket detects it
- Reports when at least one inspected AggregateOffer linked from a fully inspected Product has no non-empty direct lowPrice.
- Sources
- Product snippet structured data — Google Search Central, verified 2026-09-26
STRUCTURED-OFFER-003Offer states its price currencyOfferWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Offer or AggregateOffer states a valid ISO 4217 currency code.
- Why it matters
- Google requires priceCurrency on Offer for merchant listings and on AggregateOffer for Product snippets; for Offer in Product snippets it is recommended.
- How to fix
- Add a "priceCurrency" property with the ISO 4217 currency code, such as "EUR", to each Offer and AggregateOffer.
- Expected
- Every Offer and AggregateOffer has a priceCurrency that is a current ISO 4217 alphabetic code, such as EUR.
- Applies to
- Pages with at least one inspected Offer or AggregateOffer linked from a fully inspected Product.
- Authority
- Official search-engine requirement · RequiredRequired for Google merchant listings (Offer) and Product snippets (AggregateOffer); recommended for Offer in Product snippets.
- Technical Score
- Weight 2 of 3A valid currency is required to interpret the price.
- How MaxiMarket detects it
- Reports when at least one inspected Offer or AggregateOffer linked from a fully inspected Product has no priceCurrency that exactly matches an alphabetic code in ISO 4217 List One (the dated copy recorded in the audit package). For Offer, priceSpecification.priceCurrency is also accepted. Matching is case-sensitive after trimming whitespace.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- Product snippet structured data — Google Search Central, verified 2026-09-26
- Schema.org Offer — Schema.org, verified 2026-09-26
- ISO 4217 currency code lists — SIX (ISO 4217 Maintenance Agency), verified 2026-09-26
STRUCTURED-OFFER-004Offer states its availabilityOfferWarning when failedWeight 1Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- Whether each inspected Offer states a valid Schema.org availability value.
- Why it matters
- Google recommends availability on Offer for Product snippets and merchant listings.
- How to fix
- Add an "availability" property with a Schema.org ItemAvailability value to each Offer.
- Expected
- Every Offer has an availability that is a Schema.org ItemAvailability value, such as https://schema.org/InStock.
- Applies to
- Pages with at least one inspected Offer linked from a fully inspected Product.
- Authority
- Official platform recommendation · RecommendedGoogle recommendation for Product snippets and merchant listings.
- Technical Score
- Weight 1 of 3Availability is recommended.
- How MaxiMarket detects it
- Reports when at least one inspected Offer linked from a fully inspected Product has no availability naming an ItemAvailability member, either as a schema.org URL, a bare member name or an @id reference. AggregateOffer is not checked.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- Schema.org Offer — Schema.org, verified 2026-09-26
- Schema.org ItemAvailability — Schema.org, verified 2026-09-26
STRUCTURED-OFFER-006Offer price is machine-readableOfferWarning when failedWeight 2Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- The format of Offer price and priceSpecification.price values, and AggregateOffer lowPrice and highPrice.
- Why it matters
- Schema.org asks for "." as the decimal separator and for the currency in priceCurrency, not in the price.
- How to fix
- Write prices such as 1299.00, without currency symbols or thousands separators.
- Expected
- A number, or a string of digits with an optional "." decimal part.
- Applies to
- Pages with at least one inspected Offer or AggregateOffer price value linked from a fully inspected Product.
- Authority
- Open standard / Schema.org · RecommendedSchema.org Offer usage guidance.
- Technical Score
- Weight 2 of 3A price that is not machine-readable cannot be interpreted reliably.
- How MaxiMarket detects it
- Reports when an inspected price value (linked from a fully inspected Product) is neither a finite non-negative JSON number nor a string of digits with an optional "." and digits (surrounding whitespace ignored). Missing prices are STRUCTURED-OFFER-001 and -002.
- Sources
- Schema.org Offer — Schema.org, verified 2026-09-26
STRUCTURED-OFFER-007Offer declares item conditionOfferInfo when failedWeight 1Technical SearchCommerceMachine Readability
- What this checks
- itemCondition on each inspected Offer.
- Why it matters
- Google recommends itemCondition for merchant listings.
- How to fix
- Add itemCondition, for example https://schema.org/NewCondition.
- Expected
- An OfferItemCondition value: NewCondition, UsedCondition, RefurbishedCondition or DamagedCondition.
- Applies to
- Pages with at least one inspected Offer linked from a fully inspected Product.
- Authority
- Official platform recommendation · RecommendedGoogle merchant listing recommendation.
- Technical Score
- Weight 1 of 3Item condition is recommended.
- How MaxiMarket detects it
- Reports when an inspected Offer has no itemCondition naming an OfferItemCondition member (as a schema.org URL, a bare name or an @id reference). AggregateOffer is not checked.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- Schema.org Offer — Schema.org, verified 2026-09-26
STRUCTURED-OFFER-008priceValidUntil is not in the pastOfferWarning when failedWeight 1Technical SearchAI DiscoveryCommerceMachine Readability
- What this checks
- priceValidUntil of each inspected Offer against the audit time.
- Why it matters
- After priceValidUntil the price is by definition no longer available, so the offer information is stale.
- How to fix
- Update or remove priceValidUntil.
- Expected
- Absent, or not yet passed.
- Applies to
- Pages with at least one inspected Offer declaring priceValidUntil.
- Authority
- Open standard / Schema.org · RecommendedSchema.org Offer definition; Google merchant listing recommendation.
- Technical Score
- Weight 1 of 3An expired priceValidUntil makes offer data stale.
- How MaxiMarket detects it
- Reports when an ISO 8601 priceValidUntil has passed in every time zone at the audit time (a date is valid through its whole day). Unparseable values are not evaluated.
- Sources
- Schema.org Offer — Schema.org, verified 2026-09-26
- Merchant listing structured data — Google Search Central, verified 2026-09-26
STRUCTURED-OFFER-009Offer declares shipping detailsOfferInfo when failedNot scoredTechnical SearchCommerceMachine Readability
- What this checks
- shippingDetails on each inspected Offer, or a shipping policy (hasShippingService) on an Organization on the page.
- Why it matters
- Google recommends shipping details for merchant listings; they can also come from Merchant Center or an Organization-level policy.
- How to fix
- Add shippingDetails to the Offer, or an Organization-level shipping policy.
- Expected
- Shipping details are declared.
- Applies to
- Pages with at least one inspected Offer linked from a fully inspected Product.
- Authority
- Official platform recommendation · RecommendedGoogle merchant listing recommendation.
- Technical Score
- Not scoredShipping can be configured in Merchant Center or on another page, so its absence here is not reliably a defect.
- How MaxiMarket detects it
- Reports when an inspected Offer has no shippingDetails value and no entity on the page typed Organization (or subtype) declares hasShippingService. Settings configured only in Merchant Center or on another page are not visible.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- Organization structured data — Google Search Central, verified 2026-09-26
STRUCTURED-OFFER-010Return policy is declaredOfferInfo when failedNot scoredTechnical SearchCommerceMachine Readability
- What this checks
- hasMerchantReturnPolicy on each inspected Offer, or on an Organization on the page.
- Why it matters
- Google recommends a return policy for merchant listings; it can also come from Merchant Center or an Organization-level policy.
- How to fix
- Add hasMerchantReturnPolicy to the Offer or the Organization.
- Expected
- A return policy is declared.
- Applies to
- Pages with at least one inspected Offer linked from a fully inspected Product.
- Authority
- Official platform recommendation · RecommendedGoogle merchant listing recommendation.
- Technical Score
- Not scoredReturn policies can be configured in Merchant Center or on another page, so their absence here is not reliably a defect.
- How MaxiMarket detects it
- Reports when an inspected Offer has no hasMerchantReturnPolicy value and no entity on the page typed Organization (or subtype) declares one. Policies configured only in Merchant Center or on another page are not visible.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
- Organization structured data — Google Search Central, verified 2026-09-26
STRUCTURED-OFFER-012AggregateOffer states its price rangeOfferInfo when failedWeight 1Technical SearchCommerceMachine Readability
- What this checks
- highPrice and offerCount on each inspected AggregateOffer.
- Why it matters
- Google recommends highPrice and offerCount for AggregateOffer in Product snippets.
- How to fix
- Add highPrice and offerCount to the AggregateOffer.
- Expected
- Both present.
- Applies to
- Pages with at least one inspected AggregateOffer linked from a fully inspected Product.
- Authority
- Official platform recommendation · RecommendedGoogle Product snippet recommendation.
- Technical Score
- Weight 1 of 3highPrice and offerCount are recommended.
- How MaxiMarket detects it
- Reports when an inspected AggregateOffer lacks a usable highPrice or offerCount.
- Sources
- Product snippet structured data — Google Search Central, verified 2026-09-26
Observations
Observations are neutral facts. They are never pass or fail, never warnings, and never part of the Technical Score.
STRUCTURED-PRODUCT-011Observation · not scoredProducts on the pageProduct and Offer dataTechnical SearchCommerceMachine Readability
- What is reported
- The number of top-level Product entities that are not variants of a ProductGroup, for pages with Product data.
- Why it is not a rule
- Listing pages legitimately contain many Products, and page intent is unknown.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
STRUCTURED-OFFER-005Observation · not scoredZero-price offersProduct and Offer dataTechnical SearchCommerceMachine Readability
- What is reported
- The number of inspected Offers whose price is zero, for pages with inspected Offers.
- Why it is not a rule
- Zero prices are legitimate for free items and Product snippets; they only affect merchant-listing eligibility.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26
STRUCTURED-OFFER-013Observation · not scoredOffer types usedProduct and Offer dataTechnical SearchCommerceMachine Readability
- What is reported
- For Products with recognized offers: whether they use Offer, AggregateOffer or both.
- Why it is not a rule
- Marketplace pages legitimately use AggregateOffer, and the number of sellers is unknowable.
- Sources
- Merchant listing structured data — Google Search Central, verified 2026-09-26