eg

js rendering diff checker.

see exactly what an llm sees when it fetches your page (no javascript)

LLM crawlers (GPTBot, ClaudeBot, PerplexityBot) fetch this exact HTML, none of them execute JavaScript. If product details are not in the raw HTML, they are invisible to LLMs.

> worked example

Paste https://www.allbirds.com/products/mens-tree-runners and click 'run check'. The tool performs a plain HTTP fetch, no JavaScript execution, and analyses the raw HTML. Result: 312 words, price found, no 'add to cart' text, no review count, JSON-LD type: Product. The page is not flagged as a SPA shell. That means the product name and price are visible to GPTBot and ClaudeBot, but the review count (rendered client-side) is invisible.

takeaway, If your price and CTA live inside a React component that renders after hydration, no LLM will ever see them, even if Googlebot indexes the page fine.

> when operators reach for this

  • Shopify developers migrating a storefront to a headless React frontend who need to verify product data is server-rendered before launch.
  • Ecommerce SEO leads checking whether key product signals (price, reviews, CTA) are in the static HTML and therefore visible to AI crawlers.
  • CMOs asking 'why isn't our store appearing in ChatGPT or Perplexity answers?', this tool shows exactly what those crawlers see.
  • Agencies auditing client sites for LLM-readiness and identifying pages where JavaScript rendering hides critical content.
  • Headless-commerce engineers comparing SSR vs CSR output to ensure structured data and product text survive the render pipeline.

> the calculation

  • spa detectionbody words < 200 AND any of: __NEXT_DATA__, #root, #app, data-reactroot, ng-version, data-server-rendered=false
  • product marker detectionprice: /[$£€]\d+/ · cta: 'add to cart'/'buy now' · reviews: /\d+ reviews?/ · availability: 'in stock'/'out of stock'

> related calculators, ai & llm visibility