Can software read your JSON-LD correctly?
It reports parsing errors, CDATA wrappers and unfilled template values.
What Check Engine measures
The check groups recorded JSON-LD errors from successful pages. It explains the most common error and a matching repair. CDATA wrappers are reported separately. Readable blocks are searched for unfilled template tags, including short identity fields. That identity-field test has a 300-character limit. Longer strings with braces are left out of that short-field test. For example, a short identity field containing an unfilled template tag can be checked up to the 300-character limit.
The check reads JSON-LD blocks, recorded errors and wrapper detections. It does not repair JSON or verify the truth of a readable value. Review the declared facts after fixing syntax.
How to read the result
Parsing failures are high severity. CDATA wrappers and unfilled template tags are medium. A block can be valid JSON yet still carry a literal template value, which is why the check includes a separate case after parsing.
Why it matters
Structured content must be readable before its fields can be interpreted. A saved parser error gives a concrete starting point for repair, while template placeholders need a different fix in the code that supplied the value.
How to fix it
Use the reported error and location to inspect the original block. Fix quoting, commas or leftover wrappers as appropriate, and ensure templates fill values before serving the page. Generate structured JSON through a serializer where possible. Parse the final served block again and check its factual content after syntax is repaired.
Read the JSON-LD error, not the guess
What we found in field audits
Problems in Structured data were found on 11 of the 14 sites we audited. These are area totals. Read the field-audit method.
Method note
backend/seo_engine/checks/structured.py, invalid_json_ld, revision 0bb8e8d3.
Common questions
Are JSON-LD syntax errors more serious than leftover CDATA wrappers?
Yes. Syntax failures get high severity. Leftover CDATA wrappers and template tags receive medium results.
How long can an identity field be for the unfilled-template check?
The identity value can reach a 300-character limit in that test. Longer brace-containing strings are left out of this comparison.
Can valid JSON-LD still contain unfinished template values?
Yes. Readable blocks are checked for unfilled template tags. Syntax validity alone does not ensure the declared value was filled.