More and more shoppers are starting with ChatGPT and Perplexity instead of Google, and those tools recommend a shortlist of products directly. I got very curious about why some stores show up in those recommendations and identical-looking ones never do, so I built a small checker that reads a product page the way an AI shopping agent does.
Right now it grades a product URL on:
Product and Offer schema (price, currency, availability) present and server-rendered
Whether the schema is client-rendered and invisible to a non-JavaScript crawler
Whether AI crawlers (GPTBot, ClaudeBot, PerplexityBot) are allowed in robots.txt
The one that surprised me most, and the reason I built it: a lot of stores inject their Product schema with JavaScript, so it validates fine in the browser but is invisible to AI crawlers that do not run JS. The page looks perfect to the owner and blank to the agent.
Disclosure: I build Shopify tools, so I have a bias. The checker is free with no signup and I am mostly posting because I want to get the checks right.
So my actual question for this board: if you have tried to get products showing up in ChatGPT Shopping or Perplexity, what signal actually moved the needle for you, and what would you want a checker like this to test that I have not listed? Trying to make it genuinely useful rather than another surface-level score. Here it is if you want to run a product page through it: Free AI Shopping Readiness Checker
@Vlad_Gerasimchuk — Building an audit tool for AI Search Visibility (ChatGPT, Claude, Perplexity) hits a very specific “image ingestion bottleneck” that standard SEO checkers miss:
When LLM crawlers parse Shopify store product feeds, the AI visibility score drops from 98% down to 72% primarily due to two hidden image-pipeline failure modes:
Silent WebP Dropping by Importer Workers: When merchants import supplier CSVs referencing raw .webp image endpoints, Shopify’s CSV worker silently skips fetching the image binary without an error log. The text attributes index fine, but AI vision models and ChatGPT search parsers see blank media slots, severing the visual entity indexing path.
Variant-Image Row Mapping Dissociation: AI crawlers index variant-specific attributes (e.g. “Red Leather Collar”). If the CSV’s ‘Variant Image’ column is left blank on secondary size rows under the assumption that Shopify auto-inherits the color image, AI search engines fail to bind the variant entity to the visual asset.
Connecting your AI Visibility auditor to pre-import image normalization closes the gap. Tools like EasyCatch (a local Chrome extension) transpile supplier WebP images to static JPGs inside the browser sandbox and export Matrixify-compliant ZIPs with pre-mapped variant rows in 1 click — ensuring 100% media asset survival for AI search indexing. 100% Local-First so store data stays local.
The biggest needle mover I’ve seen is basic indexability plus consistent product data, not schema alone.
I’d add these checks:
Test OAI-SearchBot separately from GPTBot. GPTBot is mainly training-related, so allowing it does not mean the product can appear in ChatGPT search.
Compare visible price, availability, SKU/GTIN, JSON-LD, and feed data. Variant mismatches are common and can make the offer unreliable.
Check canonical tags, noindex headers, sitemap inclusion, and whether the URL is indexed in both Google and Bing. Merchants can submit the product sitemap to Bing Webmaster Tools today.
Look for first-party detail beyond supplier copy: dimensions, materials, compatibility, shipping time, returns, and FAQs in server-rendered HTML. Unique facts give assistants something specific to cite.
I’d also flag AggregateRating markup when the actual reviews are not visible on the page. That creates trust issues rather than helping.
The server rendered schema point is especially interesting. I’d also test product variants, shipping/return policy markup, price consistency between schema and visible content, and whether key product data is accessible without interaction, those could make the checker much more actionable.
Building on clickfromai’s point about Bing - there’s a feed layer worth separating out here. For ChatGPT Shopping specifically, the recommendations come from Microsoft’s Shopping Graph (Bing’s product index), not from live AI page crawling. So a product can have perfect page schema and still be absent if it was never submitted to Bing Merchant Center, or if there’s a mismatch between what’s in the feed and what the live page shows.
The check I’d add: feed-to-page consistency. Price, availability, GTIN. That delta between submitted feed data and current page is where a lot of silent failures happen, and it’s invisible to any page-level checker.
Your JS-injection finding matters most for Perplexity, which relies more heavily on direct page crawl. For the ChatGPT Shopping path the feed is the real gate, not the schema parser.
Separate thing worth surfacing in your checker: is the URL indexed in Bing at all? A product can pass every on-page check and still be in a dead zone because it never made it into Bing’s index. Submitting to Bing Webmaster Tools is the fix, but only if the merchant knows that’s where the gap is.
I’m thinking about turning my manga website into a Shopify store and starting to sell digital products related to my niche. Do you think Shopify would be a good option for this, and are there any suggestions for getting started with digital products?
I’m also interested in learning how websites can get properly cited or mentioned by AI bots and LLMs when they answer relevant questions. If anyone has experience with AI search visibility or LLM citations, I’d really appreciate some advice.
Worth separating two paths that fail independently: ChatGPT Shopping pulls from Bing’s Shopping Graph, so the gate is feed-level (in Bing Merchant Center + feed matching the live page on price/availability/GTIN). A perfect-schema page can still stay invisible if it was never submitted or the feed drifted. Perplexity and answer-citations are the other path, direct page crawl, so server-rendered content and keeping GPTBot/PerplexityBot unblocked in robots.txt do the work. Test both paths.
@danielcooper09 great niche to build on. For citations, focus that second path: server-render your pages and keep the quotable substance in the HTML rather than client-injected, and you’ll be in great shape.
This is a useful approach because AI visibility isn’t just about adding Product schema. I think checking the consistency between the product page, Merchant Center data, and what crawlers can actually access would be especially valuable. Things like price, availability, GTINs, variants and reviews can easily get out of sync, so having those checks in one place could make the audit much more practical.
This is great feedback, took two of them straight into the tool
The fake AggregateRating one is the sharpest. it now flags a page that ships rating schema with no matching visible reviews on the page, or a claimed rating with zero reviews, or an impossible value. that markup gets you demoted, not boosted, so a green score there was hiding a real risk. good catch Tim57
The feed vs crawl split too. the checker reads the crawl path, what an agent pulls off your live page. ChatGPT Shopping leans on Bing’s Shopping Graph, which is feed level, so a perfect page still won’t show there if you’re not in Bing Merchant Center with a matching feed. added a note that spells out both paths instead of implying one score covers everything
For the bots, it already separates OAI-SearchBot from GPTBot in the robots check, since one is the shopping crawl and one is training
Still measures the client-rendered schema thing from the original post, which is the one that quietly nukes the most stores
What i’m sitting on next: comparing the schema numbers against the visible page numbers (price, availability) instead of trusting the markup, since that mismatch is where a lot of these break