We’re currently working on a client site where we recently switched their React code from client-side rendering to server side rendering. You can read about the reasons and the impact here: Don't Use Client-Side Rendering in React (for E-Commerce Sites)
Now that the HTML is being somewhat structured before being sent to the client we’re seeing that there’s still another layer of data that doesn’t get “painted” on the server side.
For some background, this is an e-commerce site with a lot of complex inventory. We work with a lot of automotive clients so we’re no stranger to categories, sub-categories, sub-sub-categories, vehicle fitment data, and more. This site is no exception.
So, what we’re seeing now is that, while the page structure is being fully rendered on the server side, the actual product data is still coming in as a JSON object that JS then needs to parse and paint into the DOM.
This means that there’s still rendering being done on the client-side. A big no-no when it comes to Google SEO.
In auditing this site and figuring out what to do next, we asked ourselves some questions about how Google understands this content
- Does Google know to wait until the DOM is painted using JS before indexing?
- Will Google understand the product data even though the formatting is not in JSON-LD?
- If we output a separate set of JSON-LD code, will this confuse Google or get the page marked as spam
Does Google Know to Wait Until the Dom Is Painted Using JS Before Indexing?
Yes … but with caveats:
Googlebot can render JavaScript, and it typically does wait to render and index the final DOM.
However, rendering JavaScript takes longer and may be deferred—especially for large sites or those with inefficient JS.
Google uses a two-phase indexing:
- First, it indexes whatever is in the raw HTML.
- Later (possibly days or weeks later), it returns to render the page and index the JavaScript-rendered content
✅ If the essential content is only available post-JS, Google can see it, but you are relying on delayed indexing and higher crawl/render costs.
2. Will Google Understand the Product Data Even Though the Formatting Is Not in Json-Ld?
Probably not.
Google primarily supports structured data in:
- JSON-LD (preferred)
- Microdata
- RDFa
A giant JSON object embedded in HTML is not something Google parses for structured data.
Even if the data is technically there in the source, it will not trigger rich results or structured data understanding unless it's in a recognized format (e.g., application/ld+json). So while Google may index the visible product content,
it will not treat your raw JSON object as structured data.
3. If We Output a Separate Set of Json-Ld Code, Will This Confuse Google or Get the Page Marked as Spam?
No, it will not confuse Google if done correctly.
In fact, this is the best practice. Google encourages you to include JSON-LD for structured data even if the page content is generated dynamically.
The only caution is: make sure the JSON-LD data matches the visible content (after rendering). If they are contradictory or misleading, then Google might:
- Flag it as spammy or manipulative
- Ignore the structured data entirel
✅ As long as your JSON-LD is accurate and reflects what users actually see (eventually), it is safe and highly recommended.
Recommendation Summary
- JavaScript-rendered content
- Product data in raw JSON
- Extra JSON-LD output
Suggestion
- Acceptable, but slow; consider SSR, hydration, or prerendering if SEO-critical
- Not usable by Google; wrap it in valid JSON-LD
- Encouraged, as long as it matches visible page content
If you’re having these kinds of problems and don’t know where to turn for help, drop us a line! We live for these kinds of technical deep dive problems.