A

Discovery

HIGH

Product pages discoverable without JavaScript

At least one product page is discoverable from a non-JavaScript crawl of the sitemap or initial HTML. AI shopping crawlers do not run JavaScript; without server-rendered product pages, agents can't see your catalog.

What this check looks for

AI shopping crawlers like OAI-SearchBot, ChatGPT-User, PerplexityBot, and Perplexity-User do not execute JavaScript. They read the initial HTML response only. If your storefront is fully client-rendered or your product URLs are absent from the sitemap, these crawlers see an empty store. This check is the single, scored explanation for why the ~30 product-level checks (structured data, product data, images) come back `na` on a JS-only storefront: the products were never discoverable in the first place.

Which AI surfaces it affects

  • ChatGPT (ACP)90
  • Perplexity90
  • Meta AI70
  • Microsoft Copilot60
  • Google AI Mode (UCP)50

Weighted against the live specs — ACP 2026-04-17, UCP 2026-04-08.

How to fix it

Make product pages discoverable without JavaScript

Shopify

Developer
  1. Shopify's Online Store storefronts are server-rendered by default; confirm products appear in `/sitemap.xml`.
  2. On a Hydrogen / headless storefront, configure Hydrogen's server-rendered routes so the product page HTML carries name + price + JSON-LD.

Platform docs ↗

BigCommerce

Developer
  1. Confirm products appear in `/xmlsitemap.php`.
  2. On a Catalyst / headless build, ensure product routes are server-rendered (use Next.js' `getServerSideProps` or static-generated routes).

WooCommerce

A few minutes
  1. Confirm Yoast SEO or Rank Math publishes a product sitemap.
  2. Verify product pages return full HTML in the initial response (View Source on a product URL — name, price, and JSON-LD should be visible).

Custom / headless

Developer
  1. Switch product routes to server-side or static rendering so the first HTML response contains the product data.
  2. Embed JSON-LD Product markup in the server-rendered HTML.
  3. Add every product URL to your sitemap and reference the sitemap from robots.txt.
<!-- Server-rendered product page HTML (no JS required) -->
<!doctype html>
<html>
  <head>
    <title>Acme Widget — Acme Goods</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@type": "Product",
      "name": "Acme Widget",
      "offers": { "@type": "Offer", "price": "29.00", "priceCurrency": "USD" }
    }
    </script>
  </head>
  <body>
    <h1>Acme Widget</h1>
    <p>$29.00</p>
  </body>
</html>

The spec it's pinned to

  • Google merchant listing — crawlable content

    Google's merchant-listing guidance and AI-shopping crawlers (OAI-SearchBot, PerplexityBot) prefer server-rendered HTML so product data is visible without JavaScript execution.

Google — JavaScript SEO basics

Does your store pass this check?

Run the full audit — 82 checks across five AI shopping surfaces. Most tools only check whether you get mentioned; we check whether an agent can buy from you.

Related discovery checks

← All 82 checks