How To Audit Schema For Rich Results

published on 13 July 2026

If your rich results disappear, the cause is often simple: broken, missing, duplicate, or mismatched schema. I’d audit it in this order: check templates, test markup, compare schema to visible page content, fix the worst issues first, and track results in Google Search Console.

Here’s the short version:

  • I start with page templates, not random URLs
  • I check where schema comes from: (especially when you add schema to WordPress) theme, plugin, app, or JSON-LD and Microdata custom code
  • I test sample pages with:
  • I look for errors that block eligibility and warnings that limit detail
  • I compare schema fields to what users can see:
    • product name
    • price
    • stock status
    • author
    • publish date
    • FAQ text
  • I remove duplicate or old markup
  • I fix template-level problems first because one change can affect many pages
  • I monitor Search Console for 1 to 4 weeks after deployment

One reason this matters: pages with valid structured data can get 20% to 40% higher click-through rates. But one bad JSON-LD block, one missing required field, or one price mismatch can stop those rich results.

I’d treat the audit like a checklist, not a guessing game: validate the code, match it to the page, fix the biggest problems first, and keep checking after updates.

Schema Audit Checklist: 5 Steps to Fix Rich Results

Schema Audit Checklist: 5 Steps to Fix Rich Results

How to Use Google’s Rich Results Tester

Before testing, ensure you validate schema markup for Google rich results to catch syntax errors that might prevent the tool from processing your code.

1. Define the Audit Scope Before You Test Anything

Start at the template level. A single URL can hide problems that show up across every page built from that same template [1][6]. Fix the template once, and you may clean up hundreds or even thousands of pages in one shot [6].

List Your Page Templates and Schema Types

Make a list of each main page template and the schema types it should output. That list gives you a simple map for what to test next.

Page Template Common Schema Types
Homepage Organization, WebSite
Product Page Product, Offer, AggregateRating, BreadcrumbList
Blog Post / Article Article or BlogPosting, BreadcrumbList
FAQ Page FAQPage
Service Page Service, LocalBusiness
Contact / Location Page LocalBusiness, PostalAddress

Then test one sample URL for each template. For most sites, that means:

  • your homepage
  • one product page
  • one blog post
  • one FAQ page

Find Duplicate or Conflicting Schema Sources

Before you check whether the markup is valid, figure out where it comes from by understanding schema markup basics. That part matters more than people think.

On WordPress, schema might come from your theme, an SEO plugin, or both. On Shopify, your theme and a review app can each output Product markup on the same page. That’s where things get messy fast.

Here’s the simple way to check:

  • Open a sample URL
  • View page source
  • Search for application/ld+json
  • Flag any duplicate schema coming from themes, plugins, or apps

Pay close attention to duplicate Product, Organization, or BreadcrumbList blocks.

Once you’ve mapped your templates and schema sources, move on to validating each sample page in the next step.

Next, check syntax and Google rich results eligibility.

2. Validate Syntax and Google Rich Results Eligibility

Once you’ve set the scope, validate one representative page per template. The goal is simple: make sure each template is valid, follows Schema.org rules, and can qualify for Google rich results.

Run Each Template Through Validation Tools

Start with Google's Rich Results Test. It checks whether a page is eligible for SERP features like star ratings or price displays. Then use the Schema Markup Validator at validator.schema.org to catch JSON-LD syntax problems, vocabulary issues, and nesting mistakes. This is especially handy for schema types Google doesn’t clearly support yet. Schema Validator AI can also audit URLs, spot missing or broken properties, and flag rich result compatibility issues in a more beginner-friendly way.

Tool What It Checks When to Use It
Google Rich Results Test Google-required fields and eligibility To confirm if a page will show stars, prices, or snippets in Google
Schema Markup Validator Schema.org vocabulary, syntax, and nesting To debug raw syntax and check types Google doesn't explicitly support
Schema Validator AI Missing/broken properties, URL audits, rich result compatibility For audits of existing JSON-LD across templates
Search Console URL Inspection What Googlebot saw during the last crawl After deployment to confirm schema is being indexed correctly

As you review the output, split issues into two buckets: blocking errors and lower-priority warnings.

If your schema is loaded with JavaScript or GTM, inspect the rendered page, not just the page source. That detail matters. Schema can appear in the browser and still fail to reach Googlebot [9][10].

Validation tools usually report two issue types: errors and warnings. Errors mean required fields are missing, which blocks rich result eligibility. Warnings mean recommended fields are missing. The markup can still appear in search, but it’s less complete [6].

A Product page is a good example. If name or other required product data is missing, that’s a hard stop. If brand or sku is missing, that’s a warning. You should still fix it, but it won’t usually stop eligibility. The same pattern applies to Article markup: if required fields are missing, the page won’t qualify for rich results [5][9].

Schema Type Required Properties (Errors) Recommended Properties (Warnings)
Product name, and one of: review, aggregateRating, or offers brand, description, image, sku, mpn
Article headline, image, author, publisher, datePublished dateModified, mainEntityOfPage, description
FAQPage mainEntity, name (Question), acceptedAnswer, text (Answer) None
BreadcrumbList itemListElement, position, name, item None

A couple of formatting details can trip people up fast. Dates need to use ISO-8601 format, such as 2026-07-13. Prices need to match the on-page value and use U.S. currency formatting, such as $29.00. If the schema price and visible price don’t match, Google can issue a manual action for misleading structured data [3][10].

3. Compare Schema to Visible Page Content

Valid markup has to line up with what people can see on the page. If the schema says one thing and the page says another, rich results may be held back. Bigger gaps can even lead to a manual action [4][11]. So the next step is simple: check each live template against its schema, field by field.

Match Key Schema Fields to On-Page Details

For each template in your audit scope, open the live page and compare it side by side with the schema output. The fields that drift most often are the ones that change all the time: prices, dates, stock status, and author names.

Here’s what to review for each schema type:

Schema Type Fields to Verify Against the Page
Product Name, price, currency, availability, review count
Article Headline, author name, datePublished, dateModified
LocalBusiness Business name, address, phone number, opening hours
FAQPage Every question and answer should be visible on the page

Don’t just check that the fields exist. Check that the values match exactly.

For example, the author shown on the page should match author.name in schema.

On LocalBusiness pages, the business name, address, and phone number should exactly match the footer or contact page details. The address should also be structured as a PostalAddress object [11][12].

As you review pages, log every mismatch using a schema markup audit checklist. That makes it easier to sort hard blockers before lower-priority warnings in the next step.

Remove Stale, Misleading, or Duplicate Markup

Once you’ve checked field-level matches, look for schema tied to content that changed, vanished, or now appears more than once.

This shows up a lot on dynamic pages. A product page may update the visible price after a sale ends, but the schema can still show the old amount if it’s hardcoded or stuck in cache. Inventory issues work the same way. If schema says InStock but the page clearly says "Sold Out", Google gets mixed signals [4].

Only mark up content that users can actually see. If FAQ answers sit in collapsed accordions or behind a hidden state, they should not be included in schema [5][11].

Also watch for page-level duplicates caused by repeated components or cached fragments. WordPress themes and SEO plugins sometimes both output schema for the same entity, like two Organization blocks. That can confuse search engines and lead Google to ignore both [7][12]. If you find duplicates, turn off one source so the page has a single version of that schema.

Remove Product and Offer markup from discontinued products [1].

4. Prioritize Fixes and Document the Audit

Once you've logged every mismatch, error, and duplicate from the earlier steps, turn that list into a ranked action plan. The goal is simple: fix what will move the needle first, then track every change so you can check it after deployment. Start with high-traffic, high-converting templates and pages with commercial intent [6].

Fix Blocking Errors Before Warnings

Start with the issues that stop rich results from showing up at all: invalid JSON-LD, missing required fields, and content mismatches. These can block rich results entirely and, if the markup looks misleading, may trigger manual spam actions [6][3][4].

This is where template-level fixes can save a lot of time. One change to a template can clear the same error across hundreds of URLs in one shot [6].

After that, move to important pages that have no schema at all, like pricing pages or service pages. Then work through warnings, such as missing recommended properties. Those don't block eligibility, but they can limit how complete the rich result appears. Last, clean up deprecated properties and old vocabulary so you don't have to circle back later [6].

Severity Typical Examples SEO Impact Next Step
Tier 1 - Critical Invalid JSON-LD, missing required fields, content mismatches Blocks rich results; may trigger manual action Fix immediately on high-traffic templates
Tier 2 - Gap Important pages with no schema Missed rich result visibility Generate and deploy new JSON-LD blocks
Tier 3 - Warning Missing dateModified, aggregateRating Limits rich result completeness Batch into the next sprint
Tier 4 - Hygiene Deprecated properties, non-standard vocabulary Cleanup work later Address during routine maintenance

Once the top fixes are queued, log each change so deployment and retesting don't turn into guesswork.

Record What Changed on Each Template

Fixing issues without documentation creates a new mess: no one knows what changed, when it changed, or who handled it. Keep a simple spreadsheet or project tracker with these columns:

  • URL
  • Template
  • Schema Type
  • Issue
  • Severity
  • Owner
  • Status
  • Deployment Date

Record the deployment date so you know when to retest after launch. Template edits and plugin updates can quietly break markup, which is why scheduled audits matter [2][8].

After deployment, recheck the updated pages in Search Console.

5. Monitor Results in Search Console and Repeat the Audit

After you roll out the fixes you documented, make sure Google has crawled the updated markup. Deployment isn't the finish line. Schema markup can fail quietly when a CMS update, plugin tweak, or template refresh changes the JSON-LD without any obvious page-level clue. That's why steady monitoring matters.

Use Search Console to Confirm Fixes

Open the Enhancements reports in Google Search Console. Each schema type has its own report that shows how many items are Valid, have Warnings, or have Errors. Use that data to confirm the fixes at the template level, not just on a single URL.

For pages that matter most to the business, use the URL Inspection tool to check that Googlebot sees the corrected markup. Then use Request Indexing or Validate Fix to help move recrawling along.

Don't expect the numbers to shift overnight. Validation requests and recrawl processing can take one to four weeks to fully appear in Search Console [7]. One template change can trigger the same error across dozens of URLs. So keep an eye on the trend lines during that window. If errors jump all at once, that's usually a template-level regression, not a one-page problem.

Once errors move back to Valid, check Performance > Search Appearance to see if rich result clicks start to climb. Look at the pattern over time. A single report snapshot won't tell you much.

Set a Recurring Audit Schedule

A quarterly full audit works well for most teams. If you run a high-volume e-commerce site or publish a lot of content, monthly audits are usually a better fit because templates and product data change more often.

Between full audits, review the Enhancements reports every week so you can catch new validation errors early. It also makes sense to run an extra audit after things like:

  • redesigns
  • theme changes
  • plugin updates
  • catalog imports
  • major campaigns

Schema Validator AI's URL audit tools can help you recheck key template URLs after those changes, so you can confirm the markup still qualifies for rich results.

FAQs

How do I find duplicate schema on a page?

View the page source in your browser and search for application/ld+json. Each match is a separate schema block, which makes it easy to spot duplicate markup and see where you may need to merge things.

If you want a faster check, Schema Validator AI can audit your markup and help flag redundant schema blocks that may cause conflicts.

What errors block rich results most?

The biggest blockers are missing required properties and invalid data types.

Other common issues include:

  • Schema type mismatches
  • Empty fields
  • Parsing errors from broken JSON

Rich results can also fail when CMS updates cause implementation drift, JavaScript-injected schema isn't executed by crawlers, or content sits behind login walls or consent banners.

How often should I audit schema markup?

Schema markup auditing isn't a one-time check. It's a regular maintenance task.

You should audit it on a routine basis, especially after template changes, CMS updates, or site-wide refactors. Those are some of the most common moments when schema breaks.

It also helps to check structured data each week in Google Search Console. That makes it easier to spot patterns or sudden jumps in errors before they turn into a bigger mess.

One more thing: build validation into your content and deployment workflows. That extra check helps keep your schema accurate and eligible for Rich Results.

Related Blog Posts

Read more