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.
- Critical
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: 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.
| Message | What'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 name | Google expected a field name. A trailing comma before a closing brace can cause it. |
| Parsing error: Missing ',' or ']' in array declaration | A list is missing a comma, or isn't closed. |
| Bad escape sequence in string | A backslash in text that JSON doesn't allow, such as \'. |
| Invalid top level element | The outer layer of the block isn't a JSON object or list. |
| Duplicate unique property | A property that may appear only once appears twice. |
| Invalid JSON document | Google 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
hasMerchantReturnPolicyandshippingDetailstomain-product.liquidand 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
jsonfilter, 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.
<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><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
- Open an example page from the report. View the source and search for
application/ld+json. - Paste the block into the Rich Results Test or the Schema Markup Validator. Both point to the line with the error.
- Still stuck? Google's help suggests starting from an empty object and adding your code back piece by piece until it breaks.
- 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 reportFree for up to 500 pages. No card needed. Sign in with the Google account you use for Search Console.
More structured data fixes
- Merchant listings: missing fieldsA missing name, image, or offer price is critical: those products can't show as merchant listings until you fix it. A missing description, shippingDetails, hasMerchantReturnPolicy, or GTIN is non-critical and can wait.
- Breadcrumbs: missing fieldsEach Breadcrumbs "Missing field" error is a gap in your BreadcrumbList: an empty list, a crumb with no address, or a crumb with no name. It stops the breadcrumb trail from showing, not the page.
- Missing field "shippingDetails"This is a non-critical issue in the Merchant listings report, so your products can still show with their prices. Add shipping details if you want Google to show your shipping cost and delivery time too.