Structured data errors come in two kinds. Syntax errors mean the JSON-LD cannot be read at all, so search engines ignore the whole block. Missing or invalid required properties mean the markup is read but the page cannot get the matching rich result. Warnings are about recommended properties: the page stays eligible, but adding them can improve how it appears. Fix errors first, then warnings that are easy to fill.
What is the difference between an error and a warning?
An error, which Google reports as a critical issue, makes the item invalid and ineligible for its rich result. A warning, or non-critical issue, means a recommended property is missing or wrong; the item is still valid and eligible.
| Type | Example | Effect | Priority |
|---|---|---|---|
| Syntax error | Trailing comma, missing bracket | Whole block ignored | Fix now |
| Missing required property | Product without name | Item invalid for that rich result | Fix now |
| Invalid value | Date in the wrong format | Usually invalid | Fix now |
| Missing recommended property | Article without image | Still eligible | Fix when practical |
What are the most common JSON-LD syntax errors?
Most syntax errors come from hand-editing or from copying code through word processors. JSON is strict, so one stray character breaks the whole block.
- A trailing comma after the last item in an object or list.
- Curly "smart" quotes instead of straight quotes.
- Unescaped double quotes inside text, such as a course name with quotation marks.
- Missing commas, braces or square brackets.
- Comments, which JSON does not allow.
- HTML tags or template code that did not render, such as
{{ course.name }}.
{
"@context": "https://schema.org",
"@type": "Course",
"name": "Digital Marketing Course",
"description": "A 3-month live online course",
}
The comma after the description makes this invalid. Remove it and the block parses.
How do you fix missing required properties?
Check Google's documentation for the rich result you want, add every property it lists as required, and use values that are visible on the page. Each feature, such as Product, Article, Course or Event, has its own list. Your CMS or SEO plugin may need a field filled in, such as a price or an author, so fix the source data rather than patching one page.
Do not fill required fields with invented values just to remove an error. Google's structured data policies say markup must reflect the visible content, and misleading markup can lead to a manual action.
Where do you find errors across your whole site?
Use the rich result reports in Google Search Console. They appear under Enhancements (and Shopping, for product markup) once Google finds that type of markup on your site. Each report lists invalid items with the reason, valid items, and non-critical issues you could improve. Click an issue to see example URLs. See the Google Search Console guide for the wider tool.
How do you test a fix?
Test the corrected page with Google's tools before and after you publish, then ask Search Console to recheck the affected pages.
- Test the live URL or pasted code in the Rich Results Test, which shows which rich results the page is eligible for.
- Use the Schema Markup Validator at validator.schema.org for general Schema.org checks on types Google does not use for rich results.
- Deploy the fix, then click Validate fix in the Search Console report so Google rechecks the affected pages. Validation can take days or weeks.
How do you fix breadcrumb markup?
Use a BreadcrumbList with a ListItem for each level. Each item needs a position and a name, and every item except the last should have an item URL. Positions start at 1 and must be in order. Google's breadcrumb documentation has full examples.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Courses", "item": "https://www.example.com/courses" },
{ "@type": "ListItem", "position": 2, "name": "Data Science", "item": "https://www.example.com/courses/data-science" },
{ "@type": "ListItem", "position": 3, "name": "Python for Data Analysis" }
]
}
Common breadcrumb errors are missing position, relative URLs, and trails that do not match the breadcrumbs visitors see. Since early 2025 Google shows breadcrumbs in desktop results but not on mobile, where it shows the domain instead; the markup is still useful.
Checklist
- JSON-LD parses with no syntax errors.
- All required properties present with real, visible values.
- Recommended properties added where you have the data.
- Search Console reports checked monthly, fixes validated.
- Breadcrumb markup matches the visible breadcrumb trail.
How to check this with Spider
A Spider page audit checks that JSON-LD blocks parse, that common types include their key fields and that breadcrumb markup is present and well formed. Run a site crawl to find templates with errors across up to 2,000 pages. New to markup? Start with how to add structured data.
Check this on your own site
Spider's free check tests this and about 100 other things on any page, and links each problem to a guide like this one.