Structured data errors: fix 'Missing field' and invalid JSON
A structured data error (critical issue) blocks the rich result; a warning doesn't. How to fix missing fields, invalid JSON and wrong value types.
LLaunchScaler·Published ·10 min read
A structured data error is a critical issue that makes an item invalid, so it cannot appear as a rich result; a warning is a non-critical issue, usually a missing recommended property, and the item stays eligible. Fix errors first: a missing required property ("Missing field"), a JSON syntax error that stops the whole block from being read, or a value of the wrong type.
Google's Search Console reports split issues the same way. Critical issues sit in a table called "Why items are invalid", and non-critical ones in "Improve item appearance". Only the first table costs you rich results. Everything below follows that order: syntax, then required properties, then everything else.
What is the difference between a structured data error and a warning?
An error means the item is invalid. Search Console defines an invalid item as one that "has at least one critical issue preventing it from appearing as a rich result." A warning means the item is valid but incomplete: Google says fixing non-critical issues can "help improve the quality of your structured data" but "isn't necessary to be eligible for rich results."
The rule behind it is in Google's general guidelines: "Items that are missing required properties are not eligible for rich results." Recommended properties are different: "The more recommended properties that you provide, the higher quality the result is to users." Google adds that it is "more important to supply fewer but complete and accurate recommended properties" than every property with badly formed data.
The Rich Results Test reports one of these statuses for a URL or code snippet, which tells you at a glance which case you are in:
Status in the Rich Results Test
What it means
Eligible for a rich result?
N valid item(s) detected
Required properties present, no critical issues
Yes
Questions, answered
What people ask about this
01
What is the difference between a structured data error and a warning?
An error is a critical issue: the item is invalid and cannot appear as a rich result. A warning is a non-critical issue, usually a missing recommended property: the item stays valid and eligible, and fixing it only improves how it can appear.
02
What does 'Structured data with syntax errors detected' mean?
Even a clean result is not a promise. Google states it "does not guarantee that your structured data will show up in search results, even if your page is marked up correctly according to the Rich Results Test."
Should you use the Rich Results Test or the Schema Markup Validator?
Use both, for different questions. The Rich Results Test checks your markup against Google's rules for its rich result types, using Google's list of required properties. The Schema Markup Validator checks that markup is valid schema.org, including types Google does not use for rich results.
Google made the split explicit in 2021, when it moved its old Structured Data Testing Tool to schema.org as the Schema Markup Validator. Its purpose, in Google's words: "to check syntax and compliance of markup with schema.org standards," while "the tool will no longer check for Google Search rich result types."
Question
Tool
Why
Will this page qualify for a Google rich result?
Rich Results Test
Checks Google's required properties per type
Is this valid schema.org at all?
Schema Markup Validator
Checks vocabulary and syntax, any type
What did Google see on my live page?
Rich Results Test (URL mode) or URL Inspection
Fetches as Google, uses the rendered page
Which pages across my site have the issue?
Search Console rich result reports
Lists affected items from Google's crawl
Is my markup valid for a type Google has no rich result for (Google's example is ExercisePlan)?
Schema Markup Validator
The Rich Results Test only checks Google's supported types
Two details of the Rich Results Test are worth knowing. It fetches the page "as Google-InspectionTool," so a robots.txt block or a login stops it. And it ignores comments inside JSON-LD, which the JSON-LD standard does not allow, so remove comments before you publish even when the test passes.
What does "Structured data with syntax errors detected" mean?
It means Google found a structured data block it could not parse, so it cannot even tell what type it was meant to be. Search Console lists these in the Unparsable structured data report, where "all items in this report are critical structured data errors; there are no warnings or valid items." One bad character voids the whole block, not just the field it sits in.
The report names the error types. These are the ones hand-edited JSON-LD hits most:
Error in Search Console
Typical cause
Fix
Parsing error: Missing ',' or '}'
A missing comma between two properties
Add the comma after the previous value
Parsing error: Missing '}' or object member name
A trailing comma after the last property, so the parser expects another name
Remove the trailing comma
Invalid JSON document
A top-level syntax error, such as two objects in one script tag with no array around them
Wrap them in [ ] with a comma between, or use two script tags
Parsing error: Missing ':'
A property name with no colon
Add the colon between name and value
Bad escape sequence in string
A backslash before a character that JSON cannot escape
Remove the backslash or escape it as \\
Empty escape sequence in string
A lone backslash, often before a quote
Escape quotes as \"
Incorrect value type
A string where a number or array is expected
Use the type the property's documentation names
Invalid number
A number written with a currency symbol or thousands separator
Write 9.99, not $9.99 or 1,000
A broken block and its fix:
<!-- Broken: trailing comma, and an unescaped quote in the description -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Acme",
"description": "The "fast" invoicing app",
}
</script>
<!-- Fixed -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Acme",
"description": "The \"fast\" invoicing app"
}
</script>
The surest way to avoid these is to never hand-write JSON-LD in a template. Build the object in code and serialise it with JSON.stringify, which cannot produce a trailing comma or an unescaped quote. To find an error in a long block, Google suggests "starting from an empty object, then add back content from your broken code piece by piece until you find the error." Expect new warnings once it parses: Google notes that fixing a parsing error can reveal issues that "were hidden because the item could not be parsed at all."
What does "Missing field" mean, and which fields are required?
"Missing field" names a property the rich result type expects and your markup lacks. Whether it is an error depends on the type's documentation: a missing required property makes the item invalid, and a missing recommended one is a warning. The same field can be required for one type and optional for another, so always check the type's own page.
The types a SaaS site uses most show the range:
Type
Required by Google
Commonly missing
Result when missing
SoftwareApplication (software app rich result)
name, offers.price, and either aggregateRating or review
offers, or any rating
Invalid: no rich result
Article, BlogPosting
None; every property is recommended
image, author, datePublished
Warning at most; still eligible
Review snippet (AggregateRating)
ratingValue, ratingCount or reviewCount, and itemReviewed of a supported type unless the rating is nested in that item
The count, or the reviewed item
Invalid
For a SaaS product page, the software app type is where most "Missing field" errors come from. Google requires offers.price, and for a free app says to "set offers.price to 0"; writing "price": "Free" is an incorrect value type. It also requires a rating or review, which catches many sites that mark up their app with no ratings at all. The full working example, and the review rules that apply to ratings you collect yourself, are in SoftwareApplication schema for SaaS.
Articles are the opposite case. Google's Article documentation says "there are no required properties," so a blog post missing image or author gets warnings, not errors. The author properties still matter for how Google identifies who wrote the piece; Article schema with author markup covers the format Google asks for.
Which structured data errors do SaaS sites hit most?
Beyond syntax and missing fields, the errors that cost SaaS sites rich results are policy problems the Rich Results Test cannot see. Google says rich results can fail when "the structured data is incorrect in a way that the Rich Results Test was not able to catch," or when marked-up content is not visible or not representative of the page.
Work through these fixes in order:
Check that every rating you mark up is shown on the page. Google's review guidelines say that if you use AggregateRating, "users should be able to see that aggregate rating on the page."
Remove ratings copied from elsewhere. Google says "Don't aggregate reviews or ratings from other websites," so star ratings imported from a review platform do not belong in your markup.
Take star ratings out of your own Organization markup. Google's self-serving rule makes pages where "the entity that's being reviewed controls the reviews about itself" ineligible for stars when they use LocalBusiness or Organization markup.
Remove markup for content that is not on the page. Google's guidelines say: "Don't mark up content that is not visible to readers of the page."
Drop markup for features Google no longer lists. FAQ is not among the structured data features in Google's search gallery as updated in June 2026, so FAQPage markup earns no rich result there; FAQ schema after Google's deprecation covers what changed.
Fix misspelled types and properties, such as Organisation for Organization. Organisation is not a schema.org type, so the block does not describe an organisation at all; the Schema Markup Validator checks names against the vocabulary, and Organization schema markup has a correct block to copy.
How do you find every page with the error in Search Console?
Open Search Console, then the Enhancements section of the menu, where each rich result type Google found on your site gets its own report. A report appears only if Google found valid markup of a supported type, and unparseable markup has its own Unparsable structured data report. Each report lists critical and non-critical issues with example URLs.
Read the numbers carefully. The reports "aren't a comprehensive list of all detected items" but "a sample," counts are items rather than pages, and each issue's example table is limited to 1,000 rows. Use URL Inspection to check a specific URL the report does not list. Because one template usually produces every instance, fix the template, not the pages.
Then fix and validate in this order:
Test one affected URL in the Rich Results Test and read the exact error.
Fix the template or component that generates the markup.
Re-test the live URL until it shows valid items.
In the Search Console report, open the issue and click Validate fix.
Allow time. Google says it "may take several days after publishing a page for Google to find and crawl it."
See every structured data finding with its evidence and fix
LaunchScaler's free scan checks a page's structured data from the outside: it flags JSON-LD that does not parse or uses an invalid type, and markup that is missing required properties for its type. The full audit, $19 once for the domain, opens each of those checks to the evidence it found and the exact fix, and adds the checks the free run leaves out, including whether your homepage has Organization markup and whether content pages carry Article or Product markup. Run the free scan first, then open the full audit from your report.
The Rich Results Test found JSON-LD or other markup it could not parse, such as a missing comma, an extra comma or an unescaped quote. Google cannot tell what type the block was meant to be, so the whole block is ignored until the syntax is fixed.
03
What does 'Missing field' mean in structured data?
A property Google needs for that rich result type is absent. If the property is required, the item is invalid; for a software app, name, offers.price and either aggregateRating or review are required. If it is only recommended, the message is a non-critical warning.
04
Should I use the Rich Results Test or the Schema Markup Validator?
Use the Rich Results Test to check eligibility for Google's rich results, and the Schema Markup Validator to check that markup is valid schema.org, including types Google does not use for rich results. Google refocused its old testing tool into the Schema Markup Validator in 2021 for exactly that split.
05
How long does it take for fixed structured data to show in Search Console?
Google has to recrawl the page first, which its documentation says may take several days after publishing. After fixing, click Validate fix on the issue in the Search Console report so Google rechecks the affected pages.
Set twitter:card to summary_large_image, give X an image it can fetch, allow Twitterbot, then test in the post composer. X caches cards for up to 7 days.