Skip to content

Unparsable structured data: find and fix the broken JSON-LD

Google found structured data with a syntax error, so it couldn't read that markup at all. Every item in this report is critical. When many pages share an error, a template is usually the cause.

In Search Console
  • Parsing error: Missing ',' or '}'

    Unparsable structured data report

    Critical
  • Parsing error: Missing ':'

    Unparsable structured data report

    Critical
  • Bad escape sequence in string

    Unparsable structured data report

    Critical
  • Invalid top level element

    Unparsable structured data report

    Critical

Critical: the item can't show as a rich result until it's fixed.

By Bruno Amorim · ·

A JSON-LD block that doesn't parse is invisible to Google. Its products, ratings, or breadcrumbs drop out of the other reports, so this report can explain a sudden fall in valid items.

MessageWhat's wrong
Parsing error: Missing ',' or '}'A comma is missing between two fields, or a brace isn't closed.
Parsing error: Missing ':'A field name has no colon before its value.
Parsing error: Missing '}' or object member nameGoogle expected a field name. A trailing comma before a closing brace can cause it.
Parsing error: Missing ',' or ']' in array declarationA list is missing a comma, or isn't closed.
Bad escape sequence in stringA backslash in text that JSON doesn't allow, such as \'.
Invalid top level elementThe outer layer of the block isn't a JSON object or list.
Duplicate unique propertyA property that may appear only once appears twice.
Invalid JSON documentGoogle couldn't read the block as JSON at all.

The report has more, such as Invalid number and Truncated Unicode character. Click any row to see the pages and the error details.

What breaks JSON-LD most

  • A hand edit. On Shopify's forum, one store added hasMerchantReturnPolicy and shippingDetails to main-product.liquid and missed a comma before the next field. That template runs on every product page, so one missing comma breaks all of them.
  • Text pasted in raw. A product name with a double quote, such as a 12" skillet, ends the string early. In Shopify Liquid, write values with the json filter, as in {{ product.title | json }}, so quotes are escaped.
  • A trailing comma after the last field. JavaScript allows it. JSON doesn't.
  • Two blocks in one script tag. Wrap them in a list, or give each its own tag.
Before: an unescaped quote and a trailing comma
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Cast Iron Skillet 12" Pre-Seasoned",
  "image": "https://example.com/photos/skillet.jpg",
}
</script>
After
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Cast Iron Skillet 12\" Pre-Seasoned",
  "image": "https://example.com/photos/skillet.jpg"
}
</script>

Find the broken line

  1. Open an example page from the report. View the source and search for application/ld+json.
  2. Paste the block into the Rich Results Test or the Schema Markup Validator. Both point to the line with the error.
  3. Still stuck? Google's help suggests starting from an empty object and adding your code back piece by piece until it breaks.
  4. Fix the template, plugin setting, or app that writes the block, not one page. One fix covers every page that uses it.

Once the block parses, Google can read what's in it. That can reveal new warnings in Merchant listings or other reports that the syntax error was hiding.

Confirm the fix

When all pages are fixed, click Validate fix on the issue. Google says validation usually takes up to about two weeks, and sometimes much longer.

On paid plans, CrawlCoach reads the HTML of your pages that are on Google and checks that every JSON-LD block parses. A block that doesn't goes in your fix list with the page and the steps, and CrawlCoach rechecks the live page to confirm the fix. When every page it reads from one template shares the error, it lists one template fix.

Questions

Does unparsable structured data stop my page from being indexed?

No. Google ignores the broken block. The page can still be indexed and show as a plain result. It loses any rich result that block would have given it.

I fixed the syntax error. Why do new warnings show up?

Google can now read the markup, so it checks the fields. Google's help says fixing a parsing error can reveal warnings and errors the syntax error was hiding.

How long does validation take for unparsable structured data?

Google's help says it usually takes up to about two weeks, and can take much longer.

Sources

Checked on October 8, 2026. Vendors change their tools and docs, so check the source if something looks different.

See which of your pages Google left out

Prices, stars, and breadcrumbs only show for pages in Google's index. CrawlCoach shows which of your pages Google left out, and the fix for each.

Get my free report

Free for up to 500 pages. No card needed. Sign in with the Google account you use for Search Console.

More structured data fixes

Related guides