SkuRank
In-depth guide 17 min read

Why ChatGPT Doesn't Recommend Your Products: An Analysis of 283 Shopify Stores

Only 2.1% of Shopify stores block AI crawlers. So why doesn't ChatGPT recommend them? We analyzed 283 stores. The problem is missing schema, not access.

Camilla Gleditsch

Camilla Gleditsch

Last updated: May 2026

Stylized 3D illustration of a friendly toy robot at a small purple desk reviewing three cardboard shopping bags, one of them softly glowing — representing an AI assistant deciding which ecommerce products to recommend

Why ChatGPT Doesn’t Recommend Your Products: An Analysis of 283 Shopify Stores

At a glance. Sample: 283 verified Shopify stores from the Tranco research-grade top-1M domain list. Collected 2026-05-10 to 2026-05-11. Full dataset, source code, and methodology log: github.com/cbz-agency/skurank-shopify-seo-research (CC-BY-4.0). Press, corrections, and removal requests: research@sku-rank.com.

Key findings

  1. Only 2.1% of stores block any major AI crawler in robots.txt. Access is not the bottleneck.
  2. 36% of stores are missing Product schema on the tested product page. Even after a second-pass QA with extended wait for tag-manager injection.
  3. 80.8% of stores with visible review widgets are missing AggregateRating schema (n=120). The reviews are on the page. The reviews are not in the markup.
  4. 41.7% have a Product schema with no Offer.availability flag. AI engines cannot confidently recommend an item as in stock.
  5. 78.4% are missing breadcrumb schema. Category context is invisible to AI.
  6. Median product description: 28 words. One in four PDPs has a 0-word description. 30.7% are still running platform-default template copy.
  7. 66.8% have non-meaningful primary product image alt text. Empty, generic, or filename-as-alt.
  8. 1.1% have FAQ schema. The largest untapped tactic in the dataset.

The finding that surprised us

We started this study expecting to write about AI crawler blocking. The hypothesis: store owners are silently opting out of AI shopping by disallowing GPTBot, ClaudeBot, and PerplexityBot in robots.txt. Fix that, and the AI assistants can finally see your products.

The data killed that story.

Of 283 verified Shopify stores in the Tranco top 200K, only 2.1% block any major AI crawler. Practically nobody is locking the door. GPTBot is welcome on 97.8% of stores. PerplexityBot is welcome on every single store in the sample. Access is not the problem.

So why doesn’t ChatGPT recommend these products? Why don’t they appear in Google’s AI Overviews, in Perplexity’s shopping panels, in Claude’s product comparisons?

Because the AI engines can crawl the pages, but they cannot parse them.

36% of stores are missing Product schema on their main product pages. 78.4% are missing breadcrumb schema. 41.7% have a Product object with no availability flag, so the AI cannot tell what is in stock. Of the 120 stores that visibly display a review widget, 80.8% never expose those reviews through AggregateRating markup. The median product description is 28 words. One in three uses platform-default template copy.

The pages are open. The pages are also unreadable. That is the actual state of AI shopping readiness in May 2026.


Methodology

We analyzed 283 active Shopify stores sampled from the Tranco research-grade top-1M domain list between 2026-05-10 and 2026-05-11. For each store we probed /robots.txt, the homepage, and one representative product detail page (PDP).

Sample. 283 stores, sourced from the Tranco research-grade top-1M traffic-ranked domain list, probed in rank order until 283 verified Shopify stores were collected. Verification: at least 10 products from /products.json, homepage returns 200, one PDP renders.

Tools. Node 22, Playwright headless Chromium, native fetch. Robots.txt parsed with strict per-User-agent group logic. Schema detection used two passes: initial DOM render, then a second pass on every “no schema” flag with 12-second extended wait plus consent-banner dismissal, so schema injected late by tag managers was not missed. Description word counts came from Shopify’s authoritative body_html field via /products.json, not DOM scraping.

Limits. Tranco skews toward higher-traffic stores. Single platform (Shopify) only. Snapshot in time.

Reproducible. All source code, site list, raw data, analysis CSV, and methodology log are public at github.com/cbz-agency/skurank-shopify-seo-research. CC-BY-4.0. Citation: Le Pochat et al., NDSS 2019 (Tranco).

All findings, one table

#FindingResultSample NSection
1Stores blocking any major AI crawler (GPTBot, ClaudeBot, PerplexityBot, or Google-Extended)2.1%283Finding 1
2aPDPs missing Product schema (post-QA)36%283Finding 2
2bPDPs missing breadcrumb schema78.4%283Finding 2
2cPDPs missing Offer.availability flag41.7%283Finding 2
3Stores displaying reviews on the PDP, missing AggregateRating schema80.8%120 (review-displaying subset)Finding 3
4aMedian product description word count28 words283Finding 4
4bPDPs with under-50-word descriptions27.9%283Finding 4
4cPDPs running platform-default template copy30.7%283Finding 4
5Primary product images with non-meaningful alt text66.8%283Finding 5
6PDPs with FAQ schema1.1%283Finding 6

Every row above is reproducible from analysis.csv and re-derivable from raw-scrape.csv.


Finding 1: AI crawlers have access. Your store is just unparseable.

Of 283 Shopify stores, only 2.1% block any major AI crawler in robots.txt. Of the remaining 97.9%, more than a third still don’t show up in AI shopping because their product pages lack the schema AI engines need to read them.

We checked every store’s /robots.txt for explicit blocks on GPTBot (OpenAI), ClaudeBot (Anthropic), PerplexityBot, and Google-Extended (Google’s opt-out token for Gemini training and AI Overviews).

CrawlerBlockedSample
GPTBot2.2% (6 / 278)278 valid robots.txt
ClaudeBot0.7% (2 / 278)278 valid robots.txt
PerplexityBot0% (0 / 278)278 valid robots.txt
Google-Extended1.4% (4 / 278)278 valid robots.txt
Any of the above2.1% (6 / 283)283 stores

This is the opposite of what most “AI SEO” advice implies. The blocked-by-default narrative is wrong, at least for Shopify retailers at this traffic tier. Almost every store is wide open.

One caveat we are honest about. We measured explicit robots.txt directives. We did not measure CDN-level bot management (Cloudflare, Fastly, Akamai), which can block AI crawlers at the edge regardless of robots.txt. A store with a permissive robots.txt may still be invisible to AI shopping if its CDN drops the request. CDN-edge bot detection is a separate study. The robots.txt signal is the one site owners control directly, and 97.9% of them are saying “yes.”

So if access is not the issue, what is?

AI engines do not browse pages the way a human does. They read structured data (JSON-LD) and pull cleanly typed fields like Product.name, Offer.price, Offer.availability, AggregateRating.ratingValue, and BreadcrumbList.itemListElement. When those fields are missing, the page is invisible to AI shopping even though the HTML loads fine.

The rest of this article walks through each gap in order of impact.


Finding 2: Most stores are missing the schema AI shopping needs

36% of the 283 stores have no Product schema on their main product page. 78.4% have no breadcrumb schema. 41.7% have a Product object that does not include an availability flag. These are the three structured-data fields AI shopping engines extract first.

Product schema (JSON-LD with @type: Product) is the minimum bar. Without it, an AI engine sees prose, not a product. It cannot reliably extract the SKU, the price, or the variants, and it cannot answer the query “find me a wireless doorbell under $100” with confidence.

102 of 283 stores (36%) had no Product schema on the PDP we tested, even after the second-pass QA with extended wait. These are not all small stores. The list includes well-known retailers operating at scale.

Stores missing Product schema on the tested PDP:

  • Gymshark, missing on gymshark.com/products/gymshark-gs-x-cbum-hockey-jersey-ls-tops-red-ss26 (observed 2026-05-11). One of the most recognizable DTC athletic brands online, and the AI engines cannot read this PDP as a product.
  • Everlane, everlane.com/products/mens-varsity-logo-tee-heather-grey (archived snapshot) (observed 2026-05-11). 21-word description. No Product schema.
  • Decathlon, decathlon.com/products/van-rysel-mens-edr-cycling-shorts (archived snapshot) (observed 2026-05-11).
  • Fashion Nova, fashionnova.com/products/soft-balance-capri-legging-set-fncolorname-pink (observed 2026-05-11). 53-word description, no Product schema, no availability flag.
  • Forever 21, forever21.com/products/01409574 (observed 2026-05-11). The product URL is a bare SKU. No schema either.
  • David’s Bridal, davidsbridal.com/products/v10068 (observed 2026-05-11). Default-template description copy, no schema.
  • Boden, boden.com/products/women-camille-double-cloth-top-spring-blossom-pink-embroidery-t2125pin (observed 2026-05-11).
  • EcoFlow, ecoflow.com/products/ecoflow-delta-3-ultra-portable-power-station-3072wh-livestream-flash-sale (archived snapshot) (observed 2026-05-11). 192-word description, but with no Product schema and no availability flag, an AI shopping engine cannot confidently recommend this power station to a query about “portable solar batteries.”
  • NZXT, nzxt.com/products/3724an65400183 (observed 2026-05-11). Computer hardware retailer, SKU-only URL, no schema.
  • Stanley, stanley1913.com/products/everyday-slim-can-cooler-cup-10-oz-picnic (archived snapshot) (observed 2026-05-11). 161-word description that never gets attached to a structured product entity.
  • M5Stack, m5stack.com/products/m5stamps3-bat-module-with-battery-connector (observed 2026-05-11). 346-word technical description, zero schema. Textbook “great content, invisible to AI.”

Breadcrumb schema (BreadcrumbList) is the second gap. 78.4% of stores (222 of 283) have no breadcrumb markup. This is the field AI engines use to understand category context, that a hockey jersey lives under Apparel → Outerwear → Hockey. Without it, the AI can read the product name but cannot place it in a category, and shopping queries like “running shoes similar to X” depend heavily on category context.

Offer.availability is the third. 41.7% (118 of 283) of stores have a Product schema with an Offer object that includes no availability field. An AI engine asked to recommend a product in stock cannot trust the recommendation without a signal. This is one of the easiest fixes in the structured-data stack, and it is missing on more than four in ten stores.

The pattern is consistent: stores that fix one of these three gaps tend to fix all three. Stores that miss one tend to miss all three.


Finding 3: 80.8% of stores with visible reviews are not exposing them to AI

Of the 120 stores in the sample that visibly display a review widget on the PDP (stars, written reviews, count), 80.8% (97 stores) do not include AggregateRating schema. The reviews are on the page. The reviews are not in the markup. Google’s rich results, AI Overviews, and ChatGPT shopping never see them.

This is the single biggest gap in the study, and the one with the most direct revenue impact. When AI assistants compare products, ratings are one of the first axes they sort by. If AggregateRating is missing from JSON-LD, you don’t appear in the “highly rated” filter, you don’t get the star snippet under your Google result, and you don’t get cited.

We flagged review widgets two ways: DOM-pattern detection for the four largest review vendors (Loox, Judge.me, Stamped.io, Yotpo), and visible review text or star counts on the rendered PDP. Then we checked whether AggregateRating was present in JSON-LD on the same page.

Stores displaying reviews on the PDP but missing AggregateRating schema:

  • Wyze / Wyze Cam, wyze.com/products/wyze-bulb-color-ca (observed 2026-05-11). Loox review widget visible, no AggregateRating in markup. The same gap appears on the sibling domain wyzecam.com.
  • Mattel, mattel.com/products/disney-princesa-fashion-dolls-boneca-reveal-ariel-jhl49-pt-br (archived snapshot) (observed 2026-05-11). Loox widget rendering on the page. No AggregateRating. A global toy maker invisible to AI shopping star sorting.
  • Roborock, roborock.com/products/roborock-black-side-brushes-replacement-for-qrevo-curv-2-flow (observed 2026-05-11). Loox visible, no AggregateRating.
  • HarperCollins Publishers, harpercollins.com/products/a-good-kind-of-trouble-brooke-blurtonmelanie-saward (observed 2026-05-11). Yotpo widget on the page. No AggregateRating. For a publisher selling books, where “highly rated” is the dominant shopping filter, this is a structural revenue leak.
  • Red Tape, redtape.com/products/red-tape-athleisure-sports-shoes-for-men-in-black-lowcutathleisure-shoes-rso4736 (archived snapshot) (observed 2026-05-11). Loox visible, no AggregateRating in JSON-LD.

The fix is mechanical. Most review apps offer one toggle to inject AggregateRating into the Product schema. Many store owners simply do not know it exists. Our second-pass QA with extended wait was specifically designed to give late injections every chance to be detected, and they still missed on 97 of 120 review-displaying stores.

If your store has visible reviews and they are not appearing as stars in Google or AI shopping cards, this is almost certainly why.


Finding 4: Content depth is broken

Median product description across the sample: 28 words. 27.9% of stores have a PDP description under 50 words. 30.7% are still using platform-default template copy.

There is no single content-length number correct for every product. But 28 words is half a tweet. It is not enough text for any search engine, and not enough for an AI shopping engine to extract use cases, features, audience fit, or differentiation.

The distribution is worse than the median. The 25th percentile is 0 words: one in four stores has effectively no description at all. The 75th percentile is 87 words. Even at the top of the distribution, the text is thin.

Stores with 0-word descriptions on the tested PDP:

  • JB Hi-Fi, jbhifi.com.au/products/goospery-bluemoon-diary-for-galaxy-a26-mint (observed 2026-05-11). A major Australian consumer electronics retailer. Default template signal flagged. No description body.
  • World of Books, worldofbooks.com/products/of-death-contagion-and-unnatural-sleep-book-tyler-deaton-9781965784037 (archived snapshot) (observed 2026-05-11). A book retailer with no book description. Default template.
  • Gibson, gibson.com/products/58-lp-standard-antique-pelham-blue-top-dark-back-murphy-lab (observed 2026-05-11). A Murphy Lab Les Paul with no product description at all.
  • Elegoo, elegoo.com/products/extruder-control-board-for-centauri-carbon (archived snapshot) (observed 2026-05-11). Default template.

Stores with default-template copy flagged on the tested PDP:

  • 87 stores out of 283 (30.7%) had description text matching known Shopify default-template patterns: “Pair text with an image to focus on your chosen product…”, “Use this text to share information about your brand…”, “Add a tagline to elevate your design.” These are the strings new themes ship with. They are still live on stores with real products and real traffic.

Default-template copy is worse than no copy. An AI engine can extract the template phrase as if it were a description, then refuse to recommend the product because the description describes nothing. Stores that ship a theme and never replace placeholder text are actively misinforming crawlers.

The fix is tedious: real description copy, written by someone who has used the product, minimum 75 words, ideally 150 to 250 for considered purchases. No automation shortcut produces this well.


Finding 5: 66.8% of primary product images have non-meaningful alt text

189 of 283 stores (66.8%) had a primary product image with alt text that was empty, generic (“image”, “img”, “photo”), or filename-as-alt. Image alt text is what AI multimodal models pull when describing the product visually.

Alt text is dual-purpose: an accessibility label for screen readers, and the text AI multimodal engines use to caption an image when describing products. When ChatGPT or Gemini describes a product image, alt text is one of the inputs.

We classified the primary <img> on each PDP. An alt was “meaningful” if it contained at least one substantive product noun and was not a filename, generic placeholder, or empty.

Recognizable stores with non-meaningful or empty primary image alt text on the tested PDP:

  • Gymshark, EcoFlow, Decathlon, Fashion Nova, Sensibo, Nixplay, Reebok, Levi (.in), Cupshe, Forever 21, Boden, Steve Madden, David’s Bridal, Burga, Stanley, all empty or non-meaningful primary image alt on the PDP tested in the study (observed 2026-05-11). Full PDP URLs are in the public dataset.
  • Roborock got it right: alt = “Roborock Side Brushes Replacement for Qrevo Curv 2 Flow.” That is what AI engines want to see.
  • HarperCollins also got it right with book-title-and-author alt strings, which is exactly the use case where image-derived AI search wins.

When 66.8% of stores at this traffic tier are running primary product images with no usable alt, every multimodal AI search query in your category is a market where most of your competitors are also invisible. The store that writes proper alt text on every image wins that channel by default.


Finding 6: 1.1% of stores have FAQ schema. This is the largest underused tactic.

Only 3 stores out of 283 (1.1%) had FAQPage JSON-LD on the tested PDP. FAQ schema is one of the highest-yield AEO and rich-results moves, and effectively no Shopify store in the sample is using it.

FAQ schema does two things: it produces FAQ rich results in Google (expandable Q&A blocks that dominate vertical real estate), and it gives AI engines clean question-and-answer pairs to extract directly into AI Overviews and chat responses.

The barrier is low. Most themes have an FAQ section block. Most product pages have natural buyer questions (sizing, materials, compatibility, shipping, returns). Wrapping those Q&As in FAQPage JSON-LD is a 20-minute job.

1.1% of stores are doing it. 98.9% are leaving the rich-results real estate and the AI citation pathway empty. Differentiation does not get easier than a tactic where 98.9% of your competitors are doing nothing.


What this means for your store

If you want your store to actually appear in AI shopping recommendations, the order of operations, ranked by impact-to-effort:

1. Audit your Product schema. Open your top-selling PDP in Google’s Rich Results Test. If it doesn’t return a valid Product result, you are in the 36% of stores that AI engines cannot read. This is the first fix, every time.

2. Turn on AggregateRating in your review app. If you run Loox, Judge.me, Stamped, or Yotpo and you have visible reviews on the page, log into the app dashboard and confirm AggregateRating injection is on. This single toggle moves you out of the 80.8% gap.

3. Add Offer.availability. Whoever maintains your theme can add an availability flag to your Product Offer object in under an hour. Three values cover most cases: InStock, OutOfStock, PreOrder. Without this, AI engines cannot recommend you for “in stock” queries.

4. Write real product descriptions. Replace template placeholder copy. Get every PDP description above 75 words minimum, ideally 150 to 250 for considered purchases. This is the most expensive fix and the highest-leverage one, because it compounds: an AI engine that can extract use cases from your description will surface you across far more queries than a competitor with a 28-word blurb.

5. Add breadcrumb schema and meaningful image alt text. These are quick wins. Breadcrumb JSON-LD goes into the theme template. Alt text is a per-product field most theme editors expose.

6. Add FAQ schema to your top 10 PDPs. 98.9% of competitors aren’t. This is the cleanest competitive win available.

If your team doesn’t have the bandwidth to execute this, that is exactly what a specialist ecommerce SEO retainer is for. See our separate guide on how to choose the right ecommerce SEO company for what good execution looks like, what to pay, and what to avoid.


Verify this yourself

Every finding here is reproducible in under five minutes.

  1. Open the public dataset: github.com/cbz-agency/skurank-shopify-seo-research/blob/main/data/site-list.csv.
  2. Pick any store from the list. Open its /products.json to confirm it is still a live Shopify store.
  3. Find a product detail page on that store.
  4. Paste the PDP URL into Google’s Rich Results Test.
  5. Compare what Google extracts to what we recorded in data/raw-scrape.csv.

If you find a store where our flag disagrees with what you see live, write to research@sku-rank.com and we will re-check, update the dataset, and credit you in the methodology log.

Takedowns: if you operate a named store and would prefer not to be referenced by name, send a removal request to the same address and we will replace the named reference with an anonymized rank-band citation within 48 hours. The aggregate stat stays. The named example does not.


Limitations and what we will improve in v2

We want this study to be the best available read on Shopify AI shopping readiness, not the last word. The honest gaps in v1:

  • One platform. Shopify only. WooCommerce, Magento, BigCommerce, and headless stacks will each have different failure modes. A multi-platform v2 is the obvious next study.
  • One PDP per store. We sampled a single representative product page per store. Some stores may have schema on bestsellers but not on the random product we tested. Multi-PDP sampling per store is a v2 improvement.
  • Tranco bias toward higher-traffic stores. The findings represent stores ranked roughly in the top 200,000 globally. Brand-new stores and very long-tail stores are not represented. A separate sampling from a new-store source would test whether the gaps are larger or smaller at lower traffic tiers.
  • No CDN-level bot detection measured. As noted in Finding 1, robots.txt is the explicit signal site owners control. CDN edge behavior is a separate study with separate methods.
  • English-language storefronts only. Multi-locale stores were measured on their English variants. Non-English storefronts may differ.

If you have specific questions about the methodology or want to extend it for a related niche, write to research@sku-rank.com. We treat methodological feedback as a contribution and credit it in the next version’s log.


Appendix: data downloads


Frequently asked questions

Does my Shopify store need schema to show up in ChatGPT shopping?
Yes. AI shopping engines extract product information from JSON-LD structured data, not from rendered HTML alone. A product page without Product, Offer, AggregateRating, and BreadcrumbList schema is effectively invisible to AI shopping recommendations even if the page loads fine in a browser. In a study of 283 Shopify stores, 36% were missing Product schema entirely.
Should I block AI crawlers like GPTBot in my robots.txt?
Almost never. Of 283 Shopify stores analyzed in May 2026, only 2.1% block any major AI crawler. Blocking AI crawlers means your products cannot be recommended by ChatGPT, Claude, Perplexity, or Google's AI Overviews. For ecommerce retailers, the correct default is to allow these crawlers and focus on making structured data parseable.
Why don't my product reviews show as stars in Google search results?
The most common cause is missing AggregateRating schema. In a sample of 120 Shopify stores with visible review widgets on the product page, 80.8% had no AggregateRating in their JSON-LD. Fix: in your review app dashboard (Loox, Judge.me, Stamped, Yotpo), confirm AggregateRating injection is enabled.
What is the minimum word count for a Shopify product description?
The median product description across 283 Shopify stores is 28 words, and 27.9% of stores have descriptions under 50 words, which is below the threshold where AI engines can reliably extract use cases. A practical floor is 75 words. For considered purchases, aim for 150 to 250 words written by someone who has used the product.
What is the easiest schema win for a Shopify store?
FAQ schema. Only 1.1% of 283 Shopify stores have FAQPage JSON-LD on their product pages. Adding 4 to 6 buyer-question Q&A pairs to your top product pages, wrapped in FAQPage markup, produces FAQ rich results in Google and gives AI engines clean Q&A passages to cite directly in chat responses.
Are these findings specific to Shopify, or do they apply to WooCommerce and Magento?
This study covers Shopify only. The structured-data gaps are platform-agnostic in principle, but prevalence rates and theme defaults are Shopify-specific. A WooCommerce or Magento study would likely show different default-failure modes.

Our services

From the blog

Ready to put this into action?

Get a free SEO scan and see where your site stands today.

Get started

Let's talk about your SEO

Leave your details and we'll be in touch within 24 hours.