Rules 2026-10
The 33 checks
Weights are high (3), medium (2), or low (1). Not-applicable checks drop out of the math. Each source is the public page we reviewed for this rule version.
| ID | Check | Impact | Source |
|---|---|---|---|
| A1 | Homepage returns 200 over HTTPS The store URL loads with a successful HTTPS response. | high | Google Search Central: HTTPS |
| A2 | robots.txt does not block AI shopping crawlers from product paths Search and fetch bots used by AI shopping can request product URLs. Blocking only training bots is informational. | high | OpenAI crawler documentation |
| A3 | Product pages return 200 to the scanner and to an AI crawler A product URL responds to CartReady and to OAI-SearchBot, which catches bot walls that robots.txt does not mention. | high | OpenAI crawler documentation |
| A4 | XML sitemap lists product URLs A sitemap exists and includes product pages. | medium | Google Search Central: sitemaps |
| A5 | Product title and price are in the server HTML Title and price are present before JavaScript runs. | high | Google product structured data |
| A6 | Canonical tag is present and self-consistent The product page canonical points at itself. | low | Google Search Central: canonicalization |
| A7 | llms.txt is present and well formed An llms.txt file has an H1, a short summary, and links. This is an emerging convention, not a channel requirement. | low | llms.txt proposal |
| A8 | Homepage responds quickly and stays light Time to first byte is under 800 ms and the HTML is under 500 KB. | medium | web.dev: TTFB |
| B1 | Product JSON-LD is present Sampled product pages include schema.org Product structured data. | high | schema.org Product |
| B2 | Offer includes price and currency The offer has a price and a priceCurrency. | high | schema.org Offer |
| B3 | Availability is marked up The offer states a schema.org availability value such as InStock. | high | schema.org ItemAvailability |
| B4 | Structured price matches the visible price The price in structured data agrees with the price in the HTML. | high | Google product structured data |
| B5 | GTIN, or MPN plus brand, is present Products have a GTIN or both an MPN and a brand. Handmade goods can be marked not applicable when the store says so and no GTIN is published. | high | Google product data specification |
| B6 | Brand is present Structured data names the brand. | medium | schema.org Brand |
| B7 | Images are absolute, plural, and described Schema has an absolute image URL, the page has at least two images, and alt text is present. | medium | Google product structured data |
| B8 | Descriptions are substantial and not duplicated Plain-text descriptions are at least 150 characters and not identical across the sample. | medium | OpenAI product feed spec |
| B9 | Variants are machine-readable Variants use ProductGroup, hasVariant, multiple Offers, or platform variant data. Not applicable when the sample has no variants. | medium | schema.org ProductGroup |
| B10 | Stable product IDs are present and unique sku or productID is present and does not repeat inside the sample. | medium | schema.org Product |
| B11 | Shipping and return policy are in the offer Structured data includes shipping details and a merchant return policy. | medium | Google merchant listing properties |
| B12 | Visible reviews are marked up If reviews are visible, aggregateRating includes a review count. Stores without reviews are not asked to invent any. | low | Google product structured data |
| B13 | Category or breadcrumb is present A Google product category or a BreadcrumbList is present. | low | Google breadcrumb structured data |
| B14 | Sample could fill the nine required product-feed fields item_id, title, description, url, brand, seller_name, image_url, availability, and price can be filled without inventing values. | high | OpenAI product feed spec |
| C1 | Return or refund policy is linked from the footer A return or refund policy page is linked from the footer. | high | Shopify: ChatGPT and store policies |
| C2 | Shipping policy is linked A shipping or delivery policy is linked. A mention only inside an FAQ is a partial result. | medium | Google product structured data |
| C3 | Privacy policy is linked from the footer A privacy policy is linked from the footer. | high | Shopify: ChatGPT and store policies |
| C4 | Terms of service are linked from the footer Terms of service are linked from the footer. | high | Shopify: ChatGPT and store policies |
| C5 | Contact details and Organization schema An email or form and the business name are visible, and Organization schema includes name, url, logo, and contactPoint. | medium | schema.org Organization |
| C6 | TLS is valid and product pages have no mixed content HTTPS certificates validate and product HTML does not load active resources over HTTP. | medium | Google Search Central: HTTPS |
| D1 | Shopify Catalog basics are in place On Shopify, sampled products have a title, image, and price above zero, and the store links return, privacy, and terms pages. Not applicable off Shopify. | high | Shopify Catalog requirements |
| D2 | A UCP profile is published /.well-known/ucp returns JSON. This is informational for small stores and does not mean the store is in a pilot. | low | Google Merchant UCP |
| D3 | Google Merchant Center signals Public pages show a Merchant Center or Shopping signal, or the merchant says they already submit a feed. | medium | Google Merchant Center product data |
| D4 | A public product feed or platform API is reachable Shopify products.json, the WooCommerce Store API, or another public catalog URL returns product records. | medium | OpenAI commerce get-started guide |
| D5 | Analytics is present so AI referrers can be segmented An analytics tag or first-party beacon is present. Referrers such as chatgpt.com can then be separated in reporting. | low | Google Analytics 4 |