Services Industries Work Playbook Journal About Pricing Contact Book a Call

Technical SEO

Google’s JSON-LD Parser Just Got Stricter: What to Check on Your Site

· 4 min read · AmnoSoft

Google Search Central has confirmed its JSON-LD extraction now applies only a single pass of HTML unescaping. Double-escaped entities will no longer be unrolled, and that can quietly invalidate your structured data.


This is a small change with a disproportionate blast radius, and it will hit templated sites hardest — exactly the sites that rely most on structured data.

What changed

Previously, Google’s extraction was forgiving about double-escaped HTML entities inside JSON-LD blocks. If your CMS escaped an ampersand once and your template escaped it again, the parser would generally still unroll it and read valid JSON. It now applies a single unescaping pass. Anything escaped twice stays broken.

Why this happens so often

Almost every case we see comes from the same pattern: a template engine that auto-escapes output, wrapped around content that a CMS has already escaped on save. Nobody wrote the bug — it emerges from two safe defaults meeting each other.

  • Product names containing an ampersand, typically a brand name.
  • Article headlines with typographic quotation marks.
  • FAQ answers with any inline HTML at all.
  • Author or organisation names carrying accented characters.

How to check

Fetch the rendered HTML of a representative page from each template and search for double-escaped sequences inside your JSON-LD block. Then validate every template type — not one page per site, one page per template. The failure is template-level, so a single broken template can invalidate thousands of URLs while your homepage tests clean.

The Rich Results Test reports the parse failure, but only for the exact URL you submit. Search Console’s enhancement reports will show the drop-off in aggregate, usually a week or two after the damage is done.

How to fix it properly

Do not patch the symptom by hand-editing content. Build the JSON-LD object in code and serialise it with your language’s JSON encoder, then output it raw into the script tag with template auto-escaping explicitly disabled for that block. One escaping layer, applied deliberately.

Then add a validation step to CI. A structured-data test that runs on every deploy costs an afternoon to build and catches this class of error permanently. Structured data breaks silently, which is precisely why it needs an automated check rather than a quarterly audit.

Quick answers

About technical seo.

View the rendered HTML source of one page per template and look for escaped entity sequences such as a double-escaped ampersand inside your JSON-LD script tag. If the JSON does not parse when you paste it into a validator, the escaping is the likely cause.

Only indirectly and late. Search Console enhancement reports show items dropping out, typically a week or more after the fact. The Rich Results Test catches it per URL. Neither alerts you proactively, which is why CI validation matters.

No, this specific change applies to JSON-LD extraction. That said, JSON-LD remains Google’s recommended format and is far easier to generate and validate programmatically than inline microdata.

Let's talk

Want this handled
properly?

We do this work for clients every week. Thirty minutes, free — bring your site and we will tell you what we would fix first.

Book a 30-minute call

30 min · Zoom or phone · Your timezone


You'll be talking to Nurullah.

Founder & CEO. No account manager in between — if you book or fill in the form, it comes to Nurullah directly.

Prefer we reach out?

Leave your details. We'll reply within one business day.

Ballpark budget (optional, helps us prep)

By submitting you agree to our privacy policy. We never share your details. No marketing emails.