Skip to main content
sus.botdocs
  • SEO
  • AI
  • QA
  • Privacy
  • Accessibility
  • Security
  1. Docs
  2. AI
  3. The content exists only after JavaScript runs
  4. Markup, links or key facts appear only after JavaScript has run

AI finding

Markup, links or key facts appear only after JavaScript has run

AI Warning Severity: High

Part of the audit The content exists only after JavaScript runs. Finding id: ai.sourceMissingRenderedParts.

What it costs you

A crawler that does not run JavaScript gets the page without these parts. An AI answer about you then has no price, no phone number, no markup and no links to follow from this page.

What to do

Send these parts in the HTML the server returns, not in a script that fills them in afterwards.

What it checks

  • Structured data added by a script
  • Price or key facts appear only after scripts
  • Links appear only after scripts run
  • Page source shows placeholder or loading text

How to fix it

Print the JSON-LD from the page template

  1. Find out which script adds the JSON-LD: usually a tag manager or a client-side framework.
  2. Print the JSON-LD from the page template instead, so it is in the HTML the server returns.

How to check: curl the URL and search the output for application/ld+json. Then run this rule again.

Put the content in the server response

  1. Find out which script adds the missing part: a tag manager, a client-side framework or a widget.
  2. A client-side application: turn on server-side rendering or prerendering for these routes, so the first response holds the content and the links.

How to check: curl the URL and search the output for the price, the phone number and the links. Then run this rule again.

A real case

An SEO consultant tested a site that builds all its content with JavaScript: ChatGPT said it could not read the pages, Perplexity found no content on any address tested, and Claude got pages without visible content. Comparison pages that did not depend on JavaScript were read by all three.

Source: Glenn Gabe, GSQI, 11 August 2025

Thresholds

Thresholds for Markup, links or key facts appear only after JavaScript has run
NameDefaultMeaning
key_fact_selector[itemprop='price'], [data-price], .price, [itemprop='telephone'], a[href^='tel:']CSS selector for the facts an answer should be able to quote: price, phone number, opening hours. Set it per site.
min_rendered_links5A page whose source has no links is reported when the rendered page has more links than this.
placeholder_pattern(?i)(loading\.\.\.|please enable javascript|you need to enable javascript|this (site|app|page) requires javascript)Regular expression for the text a page shows before its script has run. Add the phrases of the site's own languages.

How to verify by hand

Logs showing AI bots fetch the HTML but not the script and data requests.

What this relies on

Most AI crawlers do not run JavaScript, so they see the source version.

  • All audits
  • About sus.bot
  • Open the app
  • Contact support