← Guides

Why ChatGPT can't see your store: 7 reasons and fixes

How ChatGPT actually "sees" a site — and where the chain breaks

ChatGPT, Perplexity and Google AI Mode learn about your products differently from a shopper. Their bots — GPTBot, OAI-SearchBot, PerplexityBot, ClaudeBot — first have to find your site, then fetch the page, then parse the price and availability out of it, and only then can the model name you in an answer. Break any step and you are simply not in the answer.

Across our audits of 63 stores in Moldova and Romania the median AI-readiness score is 38 out of 100 — for most shops the chain breaks somewhere. And the traffic is real: over two weeks in July a three-store panel logged about 1,005,146 AI-bot hits, and bots requested a single product 73,715 times. Here are the 7 most common break points, each with a check and a fix.

Reason 1. robots.txt blocks GPTBot and OAI-SearchBot

Many themes, "SEO plugins" and old how-tos disallow AI bots by default. If robots.txt has Disallow: / for GPTBot or OAI-SearchBot, ChatGPT simply isn't allowed to fetch your pages.

Check. Open https://your-store.com/robots.txt and look for User-agent: GPTBot, OAI-SearchBot, PerplexityBot, Google-Extended blocks.

Fix. Remove Disallow for the bots you want to reach you. But never block Googlebot or Bingbot — that kills classic search. The Botmetria firewall has that safety catch built in.

Reason 2. Images and pages return 403/406 to bots

This is problem #1 in our data. Anti-bot rules in Cloudflare, ModSecurity and hosting panels routinely cut anything that doesn't look like a browser — so the bot gets 403 or 406 instead of a product image, and sometimes the whole page.

Check. Pretend to be a bot:

curl -A "GPTBot" -I https://your-store.com/wp-content/uploads/product.jpg

200 OK is good; 403/406 means you're being blocked.

Fix. Whitelist verified AI bots. Botmetria verifies them against vendors' published IP ranges, not just the User-Agent, so spoofers are rejected while the real GPTBot and ClaudeBot get through.

Reason 3. No JSON-LD with price and availability

To state a price, a model reads markup, not on-page text: schema.org/Product with an offers block carrying price, priceCurrency and availability. No markup, and the model won't be sure of the price — so it won't confidently recommend you.

Check. In the page source (Ctrl+U) look for application/ld+json containing "@type": "Product" with a price.

Fix. Serve valid JSON-LD on every product page:

{"@context":"https://schema.org","@type":"Product",
 "name":"Example Sneakers","offers":{"@type":"Offer",
 "price":"1499","priceCurrency":"MDL",
 "availability":"https://schema.org/InStock"}}

The Botmetria WooCommerce plugin outputs this for you.

Reason 4. The content is drawn by JavaScript only

Simple rule: bots that run JS are people; crawlers usually don't. If your React or Vue store paints the price and description in the browser, GPTBot downloads an empty shell with no product in it.

Check.

curl -A "GPTBot" -s https://your-store.com/product/item | grep -i "price\|MDL"

If the price isn't in the response, the model won't see it either.

Fix. Turn on server-side rendering (SSR) or prerendering, or at least put price and availability into JSON-LD in the initial HTML.

Reason 5. No llms.txt and no clean Markdown

Even with open pages, an AI agent prefers a digest. llms.txt gives a short map of the store; clean text/markdown gives a product card with no banners or scripts. Most shops have neither.

Check. Open https://your-store.com/llms.txt; a 404 means it's missing.

Fix. Build llms.txt with our 30-minute guide and serve Markdown to agents.

Reason 6. The site is slow or times out

Bots have their own patience limit. If the first byte takes seconds, or the server occasionally returns 5xx, the crawler leaves before it ever reaches the product.

Check. Measure response time and status codes on product pages; in the audit this is the "Hygiene" category.

Fix. Caching, a CDN and optimized images — the same things that speed the site up for people speed it up for bots.

Reason 7. Nobody mentions you

A model builds its answer from more than your domain. If your brand isn't in directories, marketplaces and reviews, the model has nothing to corroborate you with — so it names someone the web actually talks about.

Check. Ask ChatGPT and Perplexity "where can I buy [your product] in Moldova" and see if you appear.

Fix. List your store in local directories and marketplaces, gather reviews, and earn mentions in relevant articles.

Check all 7 in a minute

Working through this by hand is slow. The free Botmetria audit checks all of it at once from a URL and returns a 0–100 score across five categories — Discovery, Product data, Logistics, Hygiene and Agent Markdown — pointing straight at where the chain breaks. See how nearby shops score in the MD/RO rating, and how many bots already crawl your niche in the AI-traffic index.

FAQ

How do I quickly tell whether ChatGPT can see my site?

Run the free Botmetria audit on your URL — in a minute it checks robots.txt, the status codes bots get, JSON-LD, llms.txt and speed, and returns a 0–100 score. Or do it by hand: open robots.txt and fetch a couple of pages with curl using the GPTBot User-Agent.

Should I block ChatGPT's bots in robots.txt?

Your call, but if you want to appear in ChatGPT and Perplexity answers, don't block GPTBot, OAI-SearchBot or PerplexityBot. Just never touch Googlebot or Bingbot — blocking those kills classic SEO.

Why do bots get a 403 on my product images?

Usually anti-bot rules in Cloudflare, ModSecurity or your hosting that cut any non-browser User-Agent. It's the #1 issue in our audits. Fix it by whitelisting verified AI bots — Botmetria checks them against vendors' published IP ranges.

Related guides

Check your store for free

A 60-second audit shows how ready your store is for AI agents — and exactly what to fix first.

Run the free audit