Skip to content
CRCartReady
Menu

Illustrative report for Harbor & Hem, a fictional store. The findings are generated by the same rubric as a live scan. They are not a scan of a real shop.

harbor.example

69

Readable, with gaps

woocommerce · rules 2026-10 · 1 product page

No one can guarantee that an AI assistant will show your products. Each service decides what it displays. CartReady checks published requirements and whether a store is easy for those services to read.

Access and discovery

86

Product data

66

Trust and policies

87

Channel connections

33

The five fixes that matter most

  1. 1. B5

    GTIN, or MPN plus brand, is present

    Add the real GTIN, or both the manufacturer MPN and the brand. Leave the field blank rather than inventing a number.

  2. 2. A2

    robots.txt does not block AI shopping crawlers from product paths

    Search and fetch bots can still read product pages. Blocking GPTBot or Google-Extended only opts out of training use. This result is informational.

  3. 3. B11

    Shipping and return policy are in the offer

    Add shippingDetails and hasMerchantReturnPolicy to the offer. Match the policy pages you actually publish.

  4. 4. B7

    Images are absolute, plural, and described

    Use an absolute HTTPS image URL in JSON-LD, show at least two images, and add alt text.

  5. 5. B8

    Descriptions are substantial and not duplicated

    Write a unique plain-text description of at least 150 characters for each product.

Want the files, not just the list?

The Full Report samples more products and includes a PDF. The Fix Pack adds JSON-LD, feed files, llms.txt, and install steps. You put the files on the store yourself.

Channel fit

ChatGPT product feed

maybe

ChatGPT product discovery reads a feed with nine required fields, plus crawler access and store policies. The sample does not clear every one of those.

Google Merchant Center and AI Mode

maybe

Google AI Mode and Gemini shopping rely on Merchant Center product data. Public structured data is a signal, not proof of a live feed, and display is not guaranteed.

Shopify Agentic plan

yes

Stores that are not on Shopify can submit products to Shopify Catalog through the Agentic plan. The public pages need a stable product URL and the same core fields a feed requires. Enrollment is Shopify's decision.

Stripe Agentic Commerce Suite

yes

Stripe can share a catalog with agents you choose. You remain merchant of record. The public sample has to cover id, title, description, link, image, availability, price, brand, and GTIN or MPN.

Every check

Access and discovery

  • A1passhigh

    Homepage returns 200 over HTTPS

    HTTP 200, 1 redirect(s)

    No change needed for the homepage response.

    Google Search Central: HTTPS
  • A2partialhigh

    robots.txt does not block AI shopping crawlers from product paths

    Training crawlers blocked: GPTBot. Search crawlers allowed.

    Search and fetch bots can still read product pages. Blocking GPTBot or Google-Extended only opts out of training use. This result is informational.

    OpenAI crawler documentation
  • A3passhigh

    Product pages return 200 to the scanner and to an AI crawler

    Scanner and OAI-SearchBot both received HTTP 200.

    No change needed for the sampled product response.

    OpenAI crawler documentation
  • A4passmedium

    XML sitemap lists product URLs

    Sitemap status: products

    No change needed for the sitemap.

    Google Search Central: sitemaps
  • A5passhigh

    Product title and price are in the server HTML

    Sampled 1 product page.

    Title and price are in the HTML response.

    Google product structured data
  • A6passlow

    Canonical tag is present and self-consistent

    Canonical: https://harbor.example/products/linen-throw

    Canonicals match the product URLs.

    Google Search Central: canonicalization
  • A7faillow

    llms.txt is present and well formed

    missing

    Optional: add /llms.txt with one H1, a one-paragraph summary starting with '>', and links to policies and key pages. No shopping channel requires this file.

    llms.txt proposal
  • A8passmedium

    Homepage responds quickly and stays light

    TTFB 420 ms, HTML 180000 bytes

    Homepage timing and size are within the check.

    web.dev: TTFB

Product data

  • B1passhigh

    Product JSON-LD is present

    Sampled 1 product page. Coverage 100%.

    This check passed on the sample.

    schema.org Product
  • B2passhigh

    Offer includes price and currency

    Sampled 1 product page. Coverage 100%.

    This check passed on the sample.

    schema.org Offer
  • B3passhigh

    Availability is marked up

    Sampled 1 product page. Coverage 100%.

    This check passed on the sample.

    schema.org ItemAvailability
  • B4passhigh

    Structured price matches the visible price

    0 mismatch(es) in 1 compared price(s). 0 had no visible price.

    Structured and visible prices agree.

    Google product structured data
  • B5failhigh

    GTIN, or MPN plus brand, is present

    Sampled 1 product page. Coverage 0%.

    Add the real GTIN, or both the manufacturer MPN and the brand. Leave the field blank rather than inventing a number.

    Google product data specification
  • B6passmedium

    Brand is present

    Sampled 1 product page. Coverage 100%.

    This check passed on the sample.

    schema.org Brand
  • B7partialmedium

    Images are absolute, plural, and described

    Sampled 1 product page.

    Use an absolute HTTPS image URL in JSON-LD, show at least two images, and add alt text.

    Google product structured data
  • B8failmedium

    Descriptions are substantial and not duplicated

    Sampled 1 product page. Coverage 0%.

    Write a unique plain-text description of at least 150 characters for each product.

    OpenAI product feed spec
  • B9failmedium

    Variants are machine-readable

    Variant words appear in titles only.

    Represent each variant as its own offer or ProductGroup entry, with its own SKU and price.

    schema.org ProductGroup
  • B10passmedium

    Stable product IDs are present and unique

    THROW-01

    IDs are present and unique in the sample.

    schema.org Product
  • B11failmedium

    Shipping and return policy are in the offer

    0 of 1 include both shipping and return markup.

    Add shippingDetails and hasMerchantReturnPolicy to the offer. Match the policy pages you actually publish.

    Google merchant listing properties
  • B12n/alow

    Visible reviews are marked up

    No visible reviews in the sample.

    Do not add review markup unless real reviews are shown on the page.

    Google product structured data
  • B13partiallow

    Category or breadcrumb is present

    Category 0%, breadcrumb 100%.

    Add a BreadcrumbList. Add a Google product category when you know the right one.

    Google breadcrumb structured data
  • B14passhigh

    Sample could fill the nine required product-feed fields

    Sampled 1 product page. Coverage 100%.

    This check passed on the sample.

    OpenAI product feed spec

Trust and policies

  • C1passhigh

    Return or refund policy is linked from the footer

    Linked from the footer and the page responded.

    The policy is linked from the footer.

    Shopify: ChatGPT and store policies
  • C2partialmedium

    Shipping policy is linked

    Shipping appears in an FAQ, not a dedicated policy.

    Publish a shipping or delivery policy and link it from the footer. An FAQ mention is only a partial result.

    Google product structured data
  • C3passhigh

    Privacy policy is linked from the footer

    Linked from the footer and the page responded.

    The policy is linked from the footer.

    Shopify: ChatGPT and store policies
  • C4passhigh

    Terms of service are linked from the footer

    Linked from the footer and the page responded.

    The policy is linked from the footer.

    Shopify: ChatGPT and store policies
  • C5partialmedium

    Contact details and Organization schema

    Business name: Harbor & Hem. Contact visible: yes. Organization schema complete: no.

    Show the business name and an email or contact form. Add Organization JSON-LD with name, url, logo, and contactPoint.

    schema.org Organization
  • C6passmedium

    TLS is valid and product pages have no mixed content

    TLS validated for fetched HTTPS pages.

    No mixed content on the sampled product pages.

    Google Search Central: HTTPS

Channel connections

  • D1n/ahigh

    Shopify Catalog basics are in place

    Platform detected: woocommerce

    Shopify Catalog checks apply to Shopify stores. Other platforms use a feed or the Agentic plan.

    Shopify Catalog requirements
  • D2faillow

    A UCP profile is published

    missing

    Optional for most small stores. Publish /.well-known/ucp only when you are actually implementing Google's Universal Commerce Protocol. A JSON file does not enroll you.

    Google Merchant UCP
  • D3failmedium

    Google Merchant Center signals

    No public Merchant Center signal.

    If you use Merchant Center, keep the feed current. This check can only see public hints unless you tell us a feed already exists.

    Google Merchant Center product data
  • D4partialmedium

    A public product feed or platform API is reachable

    Product data source: partial

    Expose a public product feed or platform API (Shopify products.json or the WooCommerce Store API). Product pages alone are harder for agents to inventory.

    OpenAI commerce get-started guide
  • D5passlow

    Analytics is present so AI referrers can be segmented

    Analytics snippet found.

    You can segment referrers such as chatgpt.com in your analytics tool.

    Google Analytics 4