2026-09-27

robots.txt, security plugins and AI shopping bots: a WooCommerce checklist

To be readable by AI shopping assistants, a WooCommerce store should allow OAI-SearchBot, Claude-SearchBot and PerplexityBot in robots.txt and make sure no security plugin, CDN or host rule blocks them. Blocking training bots such as GPTBot is your choice and doesn't affect shopping visibility.

A WooCommerce store can have a perfect product catalog and still be invisible to AI shopping agents, because the crawlers never get the page. There are two places that happens: robots.txt, which asks crawlers to stay out, and firewalls (security plugins, CDNs, hosting rules), which block them outright. The first is easy to see. The second usually isn't.

This checklist covers both, with the exact user agents to look for and commands to test them.

The AI crawlers, and what each one does

Each vendor now runs separate bots for training, search indexing and user-requested fetches, and you can treat them differently.

User agent Vendor What it does Follows robots.txt?
GPTBot OpenAI Collects content that may train models Yes
OAI-SearchBot OpenAI Indexes pages for ChatGPT search and shopping answers Yes
ChatGPT-User OpenAI Fetches a page when a person asks ChatGPT about it May not ("robots.txt rules may not apply")
ClaudeBot Anthropic Training Yes
Claude-SearchBot Anthropic Indexes pages for Claude's search results Yes
Claude-User Anthropic Fetches a page when a person asks Claude Yes, according to Anthropic
PerplexityBot Perplexity Indexes pages for Perplexity's answers Yes
Perplexity-User Perplexity Fetches a page for a live user Generally not
Google-Extended Google A robots.txt token (not a crawler) controlling use in Gemini models Yes

Sources: OpenAI's crawler overview, Anthropic's crawler help page, Perplexity's crawler docs.

For shopping visibility, the search bots matter most: OAI-SearchBot, Claude-SearchBot and PerplexityBot build the indexes that product recommendations come from. The user bots matter when a shopper pastes your link. The training bots are a separate question.

A robots.txt that allows search and blocks training

If you want to be recommended but would rather not have your content used for model training, this is a reasonable starting point:

# AI search and user-requested fetches: allowed
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
Allow: /

# Model training: not allowed
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: Google-Extended
Disallow: /

# Everyone else: your normal rules
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/

Two details that trip people up:

WooCommerce URLs that must stay crawlable

When you tighten robots.txt, it's easy to block something a shopping agent needs. Keep these open:

Cart, checkout and account pages can stay disallowed: there's nothing there for a crawler, and keeping bots out saves your server work.

Where WordPress robots.txt comes from

WordPress serves a virtual robots.txt unless a real robots.txt file exists in your site's root folder, in which case the file wins and the virtual rules are ignored. SEO plugins usually offer an editor for the virtual one. So if your edits don't show up, check for a physical file (your host's file manager shows it).

Also check Settings → Reading → "Discourage search engines from indexing this site". With it on, WordPress asks every crawler not to index your pages.

The part robots.txt doesn't show: firewalls

Security plugins, CDNs and hosts can block crawlers by user agent, by IP reputation or by rate, and the crawler never gets far enough to read robots.txt. Common causes:

Test it

Ask for the same product page as a browser and as each bot, and compare:

URL=https://yourstore.com/product/your-product/
curl -s -o /dev/null -w "browser          %{http_code}\n" -A "Mozilla/5.0" "$URL"
for bot in OAI-SearchBot ChatGPT-User Claude-SearchBot Claude-User PerplexityBot Perplexity-User GPTBot ClaudeBot; do
  printf "%-16s " "$bot"
  curl -s -o /dev/null -w "%{http_code}\n" -A "Mozilla/5.0 (compatible; $bot/1.0)" "$URL"
done

If the browser gets 200 and a bot gets 403, 406, 429 or 503, or a challenge page, something is blocking that bot.

Read the result carefully

Some CDNs verify crawlers by IP address: a request claiming to be OAI-SearchBot from your laptop is obviously fake, so it gets blocked, while the real crawler from OpenAI's published IP ranges gets through. OpenAI publishes those ranges for each of its bots, and good CDNs use them. So a block in this test means look at your firewall's bot settings and logs, not necessarily that the real crawler is blocked. If the logs show real crawler requests (from the vendor's published IPs) being blocked, that's the one to fix.

Want to know if AI assistants can read your business's website? Our free AI visibility checker looks at it in about 20 seconds, including your robots.txt, and our guide on why a business doesn't show up on ChatGPT explains the other reasons.

Checking all of this from inside WordPress

The free LeyMish AI Shopping Readiness plugin does both checks from your own store:

It also checks that the store is live, which catches WooCommerce's "coming soon" mode, the other common reason crawlers see nothing. Everything runs on your site with no outside calls.

The short version

  1. Store live, and search engines not discouraged.
  2. robots.txt allows OAI-SearchBot, Claude-SearchBot and PerplexityBot on product pages.
  3. The user bots aren't blocked (they may ignore robots.txt, but a firewall still stops them).
  4. No security plugin, CDN or host rule blocks those user agents. Test it, then confirm in the logs.
  5. Training bots: your call. Blocking them doesn't hurt shopping visibility.

FAQ

What should a WooCommerce robots.txt contain?

Allow product pages, product category pages, product images in /wp-content/uploads/ and your sitemap. Cart, checkout and account pages can stay disallowed. Add a Sitemap line with the full URL.

Where is the WooCommerce robots.txt file?

WordPress serves a virtual robots.txt at yourstore.com/robots.txt unless a real robots.txt file exists in the site's root folder, in which case the file wins. SEO plugins usually offer an editor for the virtual one.

Should I block GPTBot on my WooCommerce store?

That is your call. GPTBot collects content that may train models, and blocking it doesn't hurt shopping visibility. The search and user-request bots are the ones to keep open.

Why can an AI bot still not read my store when robots.txt allows it?

A firewall, security plugin or CDN may block the user agent before robots.txt matters. Test with curl using the bot's user agent, then check your firewall logs.

Does blocking the Store API matter?

Blocking /wp-json/ in robots.txt is common and mostly harmless for search. A firewall rule on it is different, because it can stop agents reading product data directly.