Technical SEOGoogle
Check JSON-LD values after Google's parser change
Google reported a change to JSON-LD unescaping in August 2026. Inspect parsed field values as well as syntax, especially where templates escape content more than once.

Jump to a section
A structured-data block can be valid JSON and still describe a product incorrectly. An ampersand left as & in a product name is one example. Google’s August 2026 parser announcement makes it worth checking the values a tool reads, not just whether the JSON parses.
Where the extra escaping comes from
JSON-LD is machine-readable data embedded in the page. A template may first escape text for HTML and then pass that text through another escaping step before placing it inside a JSON string.
If the intended name is Bolt & Nut, an HTML entity left in the parsed value is not an equivalent result. Syntax validation may accept the string while missing that the content is wrong.
JSON has its own escaping rules. RFC 8259, section 7 requires quotation marks, backslashes and control characters to be escaped. An ampersand can appear as & in a JSON string; \u0026 is also a JSON representation of that character when encoded as a single Unicode escape.
Use a proper serializer and the framework’s supported way to embed JSON safely in HTML. Do not solve an escaping problem by placing untrusted strings directly in a script element.
What Google reported
Google said its JSON-LD extraction would apply one pass of HTML unescaping, according to the 21 August report carrying its announcement.
Our earlier explanation said one partly escaped value was “fine” while another was broken. That was misleading. What matters is whether the parsed value matches the intended content. Relying on a search engine to repair repeated escaping is fragile, regardless of how many passes it performs.
Correct structured data can make a page eligible for supported rich results. It does not guarantee that Google will display one, and this parser change alone does not explain every lost rich result.
Check the output of each template
- Fetch a representative page and inspect its
application/ld+jsonblocks. Include names with ampersands, quotation marks and non-ASCII characters in the sample. - Parse the JSON and read the resulting values. Compare names, prices, currency and availability with the visible page and the source product data.
- Use the Rich Results Test to inspect Google’s interpretation of the supported markup.
- Trace a mismatch back to the template or serialization step, then check other pages using that template.
Retain an example of the failing output and its corrected value. That gives the next theme or plugin update something concrete to be checked against.


