Structured data added by JavaScript: what AI systems do not see

In brief

Your JSON-LD is injected by JavaScript and absent from the raw HTML: Google usually reads it on its second pass, but AI systems (ChatGPT, Perplexity, Claude) and many parsers only read the raw HTML and never see it. Include the JSON-LD in the server-rendered HTML.

WarningRecommendations

What is it?

The JSON-LD is injected by JavaScript, absent from the raw HTML.

Why it hurts SEO and AI

Google usually reads it on the second pass, but AI systems and many parsers only see the raw HTML: your structured data is invisible to them. The attribution/citation benefit is lost exactly where it matters most.

When it is NOT a problem

  • A complete JSON-LD is already present in the raw HTML and the JavaScript only adds a second, secondary one.
  • The injected data type is minor (for example a BreadcrumbList) with no attribution or rich-result stakes.
  • The page is not meant to be indexed or cited by answer engines.
Before
<!-- Raw HTML: no schema -->
<head>
  <!-- JSON-LD added later by JS -->
</head>
After
<!-- Raw HTML: schema present from the start -->
<script type="application/ld+json">
{ "@context":"https://schema.org", "@type":"Product", "name":"Trail running shoe" }
</script>

Google eventually reads the injected JSON-LD, but AI systems that do not render JavaScript never see it.

How to fix it

  1. View the raw page source (Ctrl+U) and look for the script type=application/ld+json tag: if it is not there, it is injected by JavaScript.
  2. Render the JSON-LD server-side (SSR/SSG) so it appears in the response HTML.
  3. Validate the schema with Google's Rich Results Test.
  4. Re-crawl to confirm the JSON-LD is present in the raw HTML.

This scan checks what is missing from the raw HTML but appears in the JavaScript render

Is this issue on your site?

Is your structured data in the source code, or only after JavaScript? Enter a URL: Seogard compares the raw HTML and the render and shows you what AI systems do not see. Free, no credit card.

  • No credit card
  • Result in ~30 s

What you get back

Structured data readable by 100% of machines, not just Google.

Seogard catches this regression automatically — through its SSR checker.

Frequently asked questions

Do AI systems like ChatGPT read JSON-LD injected by JavaScript?

Almost never. Most AI crawlers fetch the raw HTML without running JavaScript: a client-side JSON-LD is invisible to them.

Does Google still see my structured data?

Yes, usually on its second rendering pass. But JSON-LD present in the raw HTML is read immediately and by every machine, not just Google.

Related rules

Updated July 10, 2026