Schema Markup Checker & Report
Audit your LocalBusiness structured data and get a clear extraction-readiness score. Paste your JSON-LD, scan a live page, or import your Google business — then download a report with a prioritized fix list.
Paste your markup, scan a URL, or import your business to see a scored report here.
Key Takeaways
- A schema markup checker scores how completely your LocalBusiness structured data describes your business — the more complete and valid, the easier it is for search engines and AI assistants to extract and trust.
- The extraction-readiness score weights the fields that matter most for local SEO: a specific business type, name, address, geo coordinates, and opening hours carry the most points.
- Validity matters as much as presence — a malformed URL, out-of-range coordinates, or a generic type costs you points even when the field is technically there.
- The checker reads single objects and stacked @graph markup alike, so you can audit a LocalBusiness, Service, and FAQPage that share one block.
- Fixing missing fields is fast: build a corrected, validated block in the schema generator, paste it back, and re-run the check to confirm a higher score.
How it works
Four steps to a clean report.
- 01
Provide your schema
Paste your JSON-LD, enter a live page URL to scan, or import your business from Google — whichever is easiest.
- 02
We analyze it
The checker flattens any @graph, finds your LocalBusiness entity, and scores every recommended field for presence and validity.
- 03
Review the report
See your extraction-readiness score, category breakdown, a present-vs-missing checklist, and a list of concrete issues to fix.
- 04
Fix and re-check
Download the report as PDF, JSON, or Markdown, rebuild weak fields in the generator, then run the check again to confirm the gain.
What it does
What is a schema markup checker, and what does it score?
A schema markup checker reads the structured data on your website and tells you how completely and correctly it describes your business. Instead of guessing whether Google and AI assistants can understand your LocalBusiness markup, you get a concrete extraction-readiness score and a field-by-field breakdown of what's present, what's partial, and what's missing.
This tool focuses on LocalBusiness structured data — the JSON-LD that powers Knowledge Panels, map results, and rich snippets for businesses with a physical location or service area. It checks the fields that local search actually uses: your business type, name, address, phone, website, geo coordinates, opening hours, images, price range, and sameAs links.
Unlike a pass/fail validator, the checker is a scorecard. Two pages can both be 'valid' yet differ wildly in how useful their markup is. A block with only a name and a generic type is valid but thin. A block with a specific subtype, full NAP, coordinates, hours, and verified social links is the kind of entity Google can confidently reconcile with your Google Business Profile. The score reflects that difference.
You can check markup three ways: paste your JSON-LD directly, enter a live URL so we fetch the page and read every embedded block, or import your business from Google to score how complete a schema we could build from its public data. All three produce the same structured report.
Scoring model
How does the extraction-readiness score work?
The score runs from 0 to 100 and is the weighted sum of every recommended LocalBusiness field. Each field earns full points when it's present and valid, half points when it's present but partial or suboptimal, and zero when it's missing or malformed. The weights are fixed and deterministic — the same markup always produces the same score.
The heaviest weights go to the fields that disambiguate your entity: name and a structured address carry the most, followed by opening hours, geo coordinates, and a specific business type. Lighter-weight fields like price range and image still count, because rich results and AI summaries lean on them, but they won't make or break your score.
Validity is scored, not just presence. A url that isn't a real http(s) link, latitude and longitude outside the valid range, or sameAs entries that aren't URLs all drop you from full points to partial and surface as issues. A generic 'LocalBusiness' type scores partial rather than full, because a specific subtype sends a stronger category signal.
The report also groups fields into categories — Identity, Location, Contact, Hours, Media, and Trust signals — so you can see at a glance whether a whole area is weak. A business with perfect identity and contact data but no hours or coordinates will show a strong Identity bar and an empty Hours bar, telling you exactly where to invest.
What the score bands mean
- 85–100 (Excellent): your markup is complete and valid — engines and AI assistants have everything they need to extract and trust your entity.
- 70–84 (Good): solid coverage with a few gaps. Closing them usually means adding hours, coordinates, or sameAs links.
- 50–69 (Fair): the core is there but several high-value fields are missing or partial. Worth a focused pass.
- 0–49 (Needs work): key fields are absent, invalid, or no LocalBusiness entity was found. Rebuild from the generator.
Field priorities
Which schema fields matter most for local SEO?
Not every property is equal. Search engines reconcile your website with your Google Business Profile by matching identity and location signals, so those fields carry the most weight in the report. If you only have time to fix a few things, fix these first.
Match your NAP — name, address, and phone — character-for-character with your Google Business Profile. '123 Main St' and '123 Main Street' read as different strings to an entity-resolution system, and that inconsistency quietly weakens the link between your site and your listing.
Add the signals that confirm 'this is a real place that's open': structured opening hours, valid geo coordinates, and a specific business type. These are the properties that power 'Open now' badges, map placement, and category relevance — and they're the ones most often left out of hand-written markup.
Fix in this order
- 01Use a specific Schema.org subtype (Dentist, Plumber, HVACBusiness) instead of generic LocalBusiness.
- 02Provide a complete, structured PostalAddress that matches your GBP exactly.
- 03Add a non-empty name identical to your Google Business Profile name.
- 04Include an openingHoursSpecification for every day you're open.
- 05Add valid GeoCoordinates (latitude and longitude) for your exact location.
- 06Add a valid website url and a telephone in your listing's format.
- 07List sameAs URLs for your official social and directory profiles.
AI & answer engines
Why does schema completeness matter for AI assistants?
Search is no longer just ten blue links. AI assistants and answer engines increasingly summarize businesses directly, and they lean on structured data to do it accurately. When your markup is complete and unambiguous, an assistant can state your hours, location, and category with confidence. When it's thin or conflicting, the assistant either omits you or guesses.
Think of structured data as the machine-readable summary of your business. The extraction-readiness score is a proxy for how easily any automated system — a crawler, a rich-results pipeline, or a large language model — can lift clean facts from your page without inference. High-readiness markup turns into accurate citations; low-readiness markup turns into omissions.
This is also why consistency across your website schema, your Google Business Profile, and your directory listings matters more than ever. Every surface that agrees on your name, address, hours, and category reinforces the same entity. The checker can't see your GBP directly, but by scoring how complete and valid your markup is, it tells you whether your site is pulling its weight in that consensus.
Troubleshooting
What are the most common schema markup problems?
Most low scores come from a short list of recurring mistakes. None of them throw a hard error in a basic validator, which is exactly why they go unnoticed — the markup looks fine but quietly underperforms.
Frequent issues the checker catches
Generic LocalBusiness type
Falling back to the catch-all type when a specific subtype exists. It's valid, but it leaves an easy category signal on the table and scores partial.
Unstructured or missing address
A plain-text address string, or no address at all, instead of a structured PostalAddress with street, city, and region. Engines parse structured fields far more reliably.
No geo coordinates
Omitting latitude and longitude — or copying inaccurate ones — leaves your exact location ambiguous, especially in dense areas where many businesses share a block.
Missing opening hours
No openingHoursSpecification means no 'Open now' badge and a weaker freshness signal. This is one of the most commonly skipped high-value fields.
Invalid URLs in url or sameAs
Relative paths, typos, or non-URL text where a full http(s) link belongs. The checker flags these as invalid rather than counting them.
Stale data that conflicts with your GBP
Markup that no longer matches your Google Business Profile after a move or hours change. Conflicting signals are worse than missing ones — re-check after every update.
Glossary
Schema checker terms explained.
- Extraction readiness
- How easily an automated system — a crawler, rich-results pipeline, or AI assistant — can lift clean, unambiguous facts from your structured data. The checker scores it 0–100.
- JSON-LD
- JavaScript Object Notation for Linked Data. Google's preferred structured-data format — lives in a <script> tag, separate from visible HTML.
- @graph
- A JSON-LD array that stacks multiple linked entities (e.g. LocalBusiness + Service + FAQPage) in one block, cross-referenced by @id. The checker flattens and reads it.
- LocalBusiness
- A Schema.org type for a physical business with a fixed location or service area. Parent of specific subtypes like Restaurant, Dentist, and Plumber.
- Structured data
- Machine-readable code that explicitly describes a page's content to search engines, enabling rich results and Knowledge Panels.
- NAP
- Name, Address, Phone — the core identity fields for local SEO. Must match exactly across your schema, Google Business Profile, and directory listings.
- sameAs
- A Schema.org property listing URLs that identify the same entity (social profiles, directory pages). Strengthens entity confirmation across the web.
- OpeningHoursSpecification
- The Schema.org type defining business hours per day-of-week with opens and closes times. Powers 'Open now' badges in search.
- GeoCoordinates
- Latitude and longitude that pinpoint a business's exact location. Critical for disambiguating businesses at or near the same address.
- Rich results
- Enhanced search listings that show extra detail (hours, ratings, FAQs) pulled from structured data. Also called rich snippets.
- Knowledge Panel
- The info box on the right of Google results for recognized entities — fed partly by structured data and your Google Business Profile.
- Entity reconciliation
- How Google confirms that your website, GBP listing, and directory citations all refer to the same real-world business.
FAQ
Questions, answered.
Check your schema in one paste.
No signup, no credit card. Score your LocalBusiness markup, fix the gaps, and re-check — free.
Check my schema