---
title: "JSON-LD is injected by JavaScript (geo/jsonld-not-in-raw)"
description: "geo/jsonld-not-in-raw: Non-Google crawlers never run the script that injects the markup, and Google warns JS-generated Product markup makes Shopping crawls…"
canonical: https://void-design.vercel.app/rules/geo/jsonld-not-in-raw
lastModified: 2026-09-16
---

# JSON-LD is injected by JavaScript

`geo/jsonld-not-in-raw` · severity **error** · category AI search · detected by `void geo` and `void audit`

## Why it matters

Non-Google crawlers never run the script that injects the markup, and Google warns JS-generated Product markup makes Shopping crawls less frequent and less reliable.

## How to fix it

Render the <script type="application/ld+json"> in a Server Component so it's in the HTML response.

## References

- https://developers.google.com/search/docs/appearance/structured-data/generate-structured-data-with-javascript
- https://nextjs.org/docs/app/guides/json-ld

## More ai search rules

`void geo` reports 41 rules in this category. Generative-engine optimisation: whether AI crawlers that don't run JavaScript see the same content, valid and visible JSON-LD, an explicit AI robots policy, llms.txt, Markdown mirrors and answer-first writing.

- `ai-content-differs` AI crawlers get materially different HTML than browsers — [geo/ai-content-differs](https://void-design.vercel.app/rules/geo/ai-content-differs)
- `jsonld-parse-error` JSON-LD block is not valid JSON — [geo/jsonld-parse-error](https://void-design.vercel.app/rules/geo/jsonld-parse-error)
- `jsonld-unsafe` JSON-LD contains a literal </script or <!-- — [geo/jsonld-unsafe](https://void-design.vercel.app/rules/geo/jsonld-unsafe)
- `jsonld-missing` Page has no JSON-LD — [geo/jsonld-missing](https://void-design.vercel.app/rules/geo/jsonld-missing)
- `home-entity-missing` Home page lacks Organization + a single WebSite node — [geo/home-entity-missing](https://void-design.vercel.app/rules/geo/home-entity-missing)
- `jsonld-schema` JSON-LD @context isn't schema.org or @type isn't a schema.org type — [geo/jsonld-schema](https://void-design.vercel.app/rules/geo/jsonld-schema)
- `jsonld-required` Structured data type is missing Google-required properties — [geo/jsonld-required](https://void-design.vercel.app/rules/geo/jsonld-required)
- `jsonld-recommended` Structured data missing recommended properties — [geo/jsonld-recommended](https://void-design.vercel.app/rules/geo/jsonld-recommended)

Detected by `void geo` and `void audit`. Explain it in a terminal: `void rules geo/jsonld-not-in-raw`
