Structured data errors: how to find and fix them across a site

Broken JSON-LD and missing required properties cost rich results. How to audit schema markup across every page, not one URL at a time, and fix it.

Structured data is easy to add and easy to break. A theme update drops a comma, a plugin outputs a second Product block without a price, a template stops filling in the image. Nothing looks different on the page, but rich results quietly disappear.

This guide covers the two kinds of structured data errors, why testing one URL isn’t enough, and how to audit markup across a whole site.

What is structured data, and why does it break?

Structured data describes a page in the schema.org vocabulary so search engines can understand it and show rich results: prices and ratings, breadcrumbs, event dates, recipe details. Google’s introduction to structured data recommends JSON-LD, a <script type="application/ld+json"> block, because it’s the easiest to implement and maintain at scale.

Because the markup is usually generated by templates and plugins, errors are rarely one-offs. One broken template means every product, article or location page has the same problem.

What are the two kinds of structured data errors?

1. Invalid JSON-LD

A missing comma, an unescaped quote, a trailing bracket. JSON is strict: one syntax error and the whole block is ignored, along with every rich result it could have earned.

Common causes:

Fix: correct the JSON in the template, then re-test.

2. Missing required properties

The JSON is valid, but an item lacks a property Google requires for its rich result. Google’s documentation is explicit that you must include all the required properties for an item to be eligible. These are the required properties Crawlens checks for common types:

Type Required properties checked
Product name, plus one of offers, review or aggregateRating
Offer price or priceSpecification
Article / BlogPosting / NewsArticle headline
BreadcrumbList itemListElement
LocalBusiness (and subtypes like Restaurant, Store, Hotel) name, address
Event name, startDate, location
Recipe name, image
VideoObject name, thumbnailUrl, uploadDate
Review itemReviewed, reviewRating, author
JobPosting title, datePosted, description, hiringOrganization

They’re minimums: each rich result type in Google’s documentation has its own page listing required and recommended properties, and that page is the reference to check before you change a template.

Fix: add the missing properties to the template, or remove markup for types you don’t want as rich results. Google notes it’s better to supply fewer but complete and accurate properties than many incomplete ones.

Does valid markup guarantee rich results?

No. Complete markup makes a page eligible; Google decides whether to show the rich result. Some types are also restricted: since 2023, FAQ rich results are only shown for well-known, authoritative government and health websites. FAQPage markup can still describe a page, but most sites won’t see the rich result.

How do you find structured data errors across a site?

Test templates with Google’s Rich Results Test. It’s the authoritative check for one URL: which rich results the page is eligible for, and what’s missing. Run it on one page per template.

Monitor with Search Console. The rich result reports show valid and invalid items Google has found, grouped by issue.

Crawl the whole site. Testing one URL per template misses pages where the data is different: a product with no price, an article with an empty headline, a location without an address. A crawler that parses structured data on every page finds those. Crawlens reads JSON-LD and microdata on every page and runs two checks:

Check What it flags Severity
Invalid JSON-LD JSON-LD blocks with syntax errors Warning
Structured data missing required properties Items missing the properties listed above Warning

Open any URL to see its parsed structured data alongside its other SEO fields, and filter the URL table to find every page from the same template.

A workflow that scales

  1. Crawl and sort structured data issues by URL pattern to find the templates behind them.
  2. Fix the template, not individual pages.
  3. Validate one fixed page per template in the Rich Results Test.
  4. Re-crawl and compare with the previous crawl: the issues should show up as fixed.
  5. Watch Search Console’s rich result reports as Google recrawls.

Checklist

Frequently asked questions

What is structured data?

Structured data is code that describes a page's content in a standard vocabulary (schema.org), such as a product's name, price and rating. Google uses it to understand the page and to show rich results.

Which structured data format does Google recommend?

Google recommends JSON-LD, because it's the easiest to implement and maintain at scale. Microdata and RDFa are also supported.

Does valid structured data guarantee rich results?

No. Including all required properties makes a page eligible for rich results, but Google decides whether to show them. Quality and accuracy of the markup still matter.

What happens if JSON-LD has a syntax error?

The whole block is ignored, so none of the structured data in it counts, and any rich results it would have earned are lost.

Can I still get FAQ rich results?

Since 2023, Google only shows FAQ rich results for well-known, authoritative government and health websites. FAQPage markup can still describe a page, but most sites won't get the rich result.

· Founder, Crawlens

Dien builds Crawlens, a desktop crawler for technical SEO audits, and writes about the checks it runs: crawling, indexing, JavaScript rendering and Search Console data.

Audit your own site with Crawlens

Crawl, run 70 checks, and see them next to Search Console and Core Web Vitals data.

Download free for Windows