Free tool · Structured data · Google docs checked October 4, 2026
Check your schema against Google’s current rules, then get the fixed code
Paste JSON-LD or the HTML of any page. This schema checker reads JSON-LD, Microdata and RDFa, tests every item against the required and recommended properties in Google’s documentation, flags rich results Google has retired, finds duplicate markup from themes, plugins and apps, and writes corrected JSON-LD for you. It runs in your browser, so nothing you paste is uploaded.
May 7, 2026
FAQ rich results stop showing in Google Search, for every site.
June 15, 2026
Google removes its FAQ structured data documentation.
January 6, 2026
Practice problem documentation removed from Google’s docs.
September 9, 2025
Docs removed for course info, estimated salary, learning video, special announcement and vehicle listing.
Paste your structured data
JSON-LD on its own, or a full page of HTML. You can also drop an .html or .json file on the box.
How to get the code from a live page
Open the page, press Ctrl+U (Windows) or Cmd+Option+U (Mac), select all and copy. Paste it above. This shows the HTML your server sends.
Many Shopify apps, tag managers and review widgets add schema with JavaScript, so page source misses it. Right-click the page, choose Inspect, right-click the <html> line, then Copy, then Copy outerHTML.
Drag this button to your bookmarks bar. On most pages, click it to copy the rendered HTML, then paste it here.
Copy page HTMLYour code is checked inside your own browser. It is not uploaded, stored or shared. No sign-up and no limits.
What this schema checker tests
Many free validators only check that the JSON parses or that the schema.org vocabulary is right. Google’s own Rich Results Test only reports the types it has a rich result for. This checker runs four layers of checks in one pass, and tells you what each finding means for Google Search.
1. Syntax, with the exact line
Trailing commas, missing commas, curly quotes from Word or Google Docs, comments, single quotes, unclosed brackets, HTML entities such as ", two objects in one script tag, and template code a theme never filled in. Every problem comes with a line number you can jump to, and most are repaired for you.
2. Google’s rich result requirements
Each item is tested against the required and recommended properties for all 25 features in Google’s search gallery, including the separate product snippet and merchant listing rules. A missing required property is an error. A missing recommended property is a warning.
3. Values, not only names
Dates and durations in ISO 8601, prices without symbols or thousands separators, ISO 4217 currency codes, two-letter country codes, schema.org enumeration values for availability and condition, full URLs, GTIN length and check digit, rating scales and review counts.
4. The whole page
Duplicate Product, Organization, WebSite and Article markup, the plugin or app that most likely wrote each block, retired rich results, ratings Google will not show, @id references that point nowhere, and names that do not appear in the visible page text.
Our schema checker vs Google’s Rich Results Test, the Schema Markup Validator and other tools
Google itself points people to two tools: start with the Rich Results Test to see which Google rich results a page can get, and use the Schema Markup Validator for generic schema.org checks without Google-specific validation. Both are good at what they do. Neither writes corrected code, and neither tells you which features Google has retired. Here is how the main options compare, read from each tool’s own page on October 4, 2026.
| What you need | Hustle Marketers schema checker | Google Rich Results Test | Schema Markup Validator | Keywords Everywhere validator | Classy Schema viewer | Screaming Frog SEO Spider |
|---|---|---|---|---|---|---|
| Official word on Google eligibility | No. Built on Google’s docs | Yes | No | No | No | No |
| Check a live URL directly | Paste source or rendered HTML | Yes | Yes | Yes, 25 a day free | Yes | Yes, crawls whole sites |
| Schema added by JavaScript | Yes, via rendered HTML or the bookmarklet | Renders the page | Extracts injected markup | URL mode reads server HTML only. Pasted HTML works | Not stated | Optional rendering (paid licence) |
| JSON-LD, Microdata and RDFa | All three | All three | All three | JSON-LD only | JSON-LD and Microdata | All three |
| Google required and recommended properties | All 25 gallery features | Types with a Google feature | No, by design | Yes | No | Yes |
| Explains types with no rich result (Service, WebPage) | Yes, item by item | Shows no items detected | Not its scope | Not stated | Not stated | Not stated |
| Flags retired rich results (FAQ, HowTo) with dates | Yes | Not stated | Not its scope | Lists FAQ Page as supported | Not stated | Not stated |
| Duplicate Product or Organization markup | Yes, with the likely plugin or app | Shows item counts | Not stated | Not stated | Not stated | Not stated |
| Value checks: dates, prices, currencies, GTIN check digit | Yes | Flags invalid values | Syntax mistakes | Not stated | Not stated | Not stated |
| Writes corrected code | Yes, plus a form to fill missing values | Not stated | Not stated | Shows the property path, then a separate generator | Not stated | Not stated |
| Converts Microdata to JSON-LD | Yes | Not stated | Not stated | No | Not stated | Not stated |
| Every schema.org type and property | Google types plus common types | Google features only | Yes | 15 types checked in depth | Validates schema.org (scope not stated) | Yes |
| Where your code goes | Stays in your browser | Google’s servers | Online service | URL checks use its server. Pasted code stays in your browser | Not stated | Desktop app |
| Price and limits | Free, no sign-up, no limit | Free | Free | Free. 25 URL checks a day, 50 with a free API key. Pasted code unlimited | Not stated | Paid licence needed for structured data validation. Free version crawls up to 500 URLs |
“Not stated” means the tool’s own page does not mention the feature, so we do not claim it either way. Tools change, so check each one before you rely on a row. Hustle Marketers is not affiliated with Google, schema.org or any tool listed.
Use this checker to find and fix
Paste the page, read what is wrong in plain English, copy the corrected JSON-LD, fill in anything missing, and check again before you publish.
Use the Rich Results Test to confirm
Once the page is live, test the URL in Google’s Rich Results Test. It is the official answer on which Google rich results the page can show.
Use a crawler for a whole site
For hundreds of pages, use a crawler such as Screaming Frog or Sitebulb, and watch the enhancement reports in Google Search Console.
Which schema types still get rich results in Google in 2026
Google’s search gallery lists 25 structured data features, last updated June 15, 2026. FAQ, HowTo and Service are not among them. If a guide or plugin tells you to add FAQ schema for rich results, it is out of date.
| Google feature | schema.org type | Required by Google |
|---|---|---|
| Article | Article, NewsArticle, BlogPosting | Nothing required. Recommended: headline, image, datePublished, dateModified, author |
| Breadcrumb | BreadcrumbList | itemListElement with at least two ListItems, each with position and name, and item on all but the last |
| Carousel | ItemList | itemListElement with at least two ListItems, each with position and url (or item with name and url on an all-in-one page), for Course, Movie, Recipe or Restaurant items |
| Course list | Course | name and description, at least 3 courses inside carousel markup |
| Dataset | Dataset | name and description. Used only by Dataset Search, not Google Search (clarified November 5, 2025) |
| Discussion forum | DiscussionForumPosting | author, author.name, datePublished, and text, image or video |
| Education Q&A | Quiz | hasPart Questions with text, eduQuestionType Flashcard and acceptedAnswer |
| Employer aggregate rating | EmployerAggregateRating | itemReviewed, ratingValue, ratingCount or reviewCount |
| Event | Event | name, startDate, location with address. Physical locations only |
| Image metadata | ImageObject | contentUrl, plus creator, creditText, copyrightNotice or license |
| Job posting | JobPosting | title, description, datePosted, hiringOrganization, jobLocation or applicantLocationRequirements |
| Local business | LocalBusiness and subtypes | name and address only |
| Math solver | MathSolver with LearningResource | url, usageInfo, potentialAction, learningResourceType |
| Movie | Movie in an ItemList | name and image |
| Organization | Organization, OnlineStore and subtypes | Nothing required. Recommended: name, url, logo, sameAs and more |
| Product snippet | Product | name, plus review, aggregateRating or offers |
| Merchant listing | Product with Offer | name, image, offers with a price above zero and priceCurrency |
| Product variants | ProductGroup | name, with each variant meeting the product rules |
| Profile page | ProfilePage | mainEntity (Person or Organization) with name |
| Q&A | QAPage | One Question with name, answerCount and an accepted or suggested answer with text |
| Recipe | Recipe | name and image |
| Review snippet | Review, AggregateRating | Review: author and reviewRating.ratingValue. AggregateRating: ratingValue plus ratingCount or reviewCount. Both on a supported item type |
| Software app | SoftwareApplication and subtypes | name, offers.price, and aggregateRating or review |
| Speakable (beta) | SpeakableSpecification | cssSelector or xPath |
| Subscription and paywalled content | isAccessibleForFree with WebPageElement | isAccessibleForFree. Recommended when false: hasPart as a WebPageElement with a .class cssSelector for each paywalled section |
| Vacation rental | VacationRental | name, identifier, at least 8 images, latitude, longitude, containsPlace with occupancy. Hotel Center partners only |
| Video | VideoObject | name, thumbnailUrl, uploadDate |
Retired or limited, with dates
| Feature | Type | Status in Google Search |
|---|---|---|
| FAQ | FAQPage | Not shown for any site from May 7, 2026. Documentation removed June 15, 2026 |
| How-to | HowTo | Limited to desktop in August 2023, then removed from desktop in September 2023. No longer documented or listed by Google |
| Practice problem | Quiz (practice problem markup only; Quiz flashcards still qualify for Education Q&A) | Deprecation announced November 5, 2025. Documentation removed January 6, 2026 |
| Course info, estimated salary, learning video, vehicle listing | Course (course info only), Occupation, VideoObject (learning video only), Car | Retirement announced June 12, 2025. Documentation removed September 9, 2025 |
| Special announcement | SpecialAnnouncement | Deprecated from July 31, 2025. Documentation removed September 9, 2025 |
| Sitelinks search box | WebSite with SearchAction | Documentation removed November 29, 2024. The SearchAction part does no harm but no longer does anything. Keep WebSite markup with name and url, because Google uses it for site names |
| Fact check | ClaimReview | Being phased out of Google Search. Still used by the Fact Check Explorer |
| Book actions | Book | Only for book providers onboarded with Google |
| Dataset | Dataset | Used by Dataset Search, not Google Search results (Google clarified this on November 5, 2025) |
Valid schema.org is never harmful because a feature retired. FAQPage, HowTo and Service markup are still valid vocabulary. They just do not produce a rich result in Google Search.
Why the Rich Results Test says “No items detected”
The Rich Results Test only reports structured data that can become a Google rich result. When it finds nothing it can use, it says so, even if your markup is perfectly valid. These are the usual reasons, and what this checker shows you instead.
| Reason | What is going on | What to do |
|---|---|---|
| The type has no Google feature | Service, WebPage, Person, Place and plain ItemList are valid schema.org, but Google has no rich result for them. WebSite has none either, though Google reads it for site names. | Nothing, if the markup describes the page accurately. Our checker labels these “No rich result” so you know it is not an error. |
| The feature was retired | FAQPage stopped producing rich results on May 7, 2026. HowTo, special announcement and others went earlier. | Keep or remove the markup. It no longer earns a rich result either way. |
| The JSON could not be parsed | One trailing comma or curly quote makes Google skip the whole block. Search Console lists these under Unparsable structured data. | Paste the code here. We show the line and repair it. |
| The markup is added late by JavaScript | A widget or tag manager inserts the script after the page loads, or the code test cannot run the page’s scripts. | Test the live URL rather than a code snippet, and check the rendered HTML here. |
| Google cannot fetch the page | The page is behind a login, blocked in robots.txt, or on a staging site. | Use the code snippet option, or paste the HTML here. |
The schema errors we see most, and how to fix them
| Problem | Why it matters | Fix |
|---|---|---|
| Duplicate Product markup | A Shopify theme and a reviews app, or WooCommerce and an SEO plugin, each output their own Product. Google can read two products with half the data each. | Keep one complete Product. Turn off the duplicate in the app or plugin settings, or merge the rating into the theme’s Product. |
| Price with a symbol or comma | "$1,299.00" is text, not a price. Merchant listings need a number above zero. | "price": "1299.00" plus "priceCurrency": "USD". |
| Missing image on a product | Image is required for merchant listings, along with name and offers. | Add "image" with the full URL of the product photo. |
| Image URL starting with // | Common in Shopify themes. Some parsers do not treat it as a full URL. | Output the full URL starting with https://. |
| Dates in local formats | "October 4, 2026" or "04/10/2026" are not ISO 8601. The second one could be April or October. | "2026-10-04", or with time and timezone "2026-10-04T09:00:00-05:00". |
| availability written as text | "in stock" is not a schema.org value. | "https://schema.org/InStock". |
| Template code in the output | Values such as {{ product.title }} or %%title%% mean the theme or plugin never filled them in. | Fix the template that prints the markup. |
| Stars on your own business | Google does not show review stars for a business’s own LocalBusiness or Organization markup when it controls the reviews, including embedded review widgets. | Keep reviews on the page for visitors, and do not expect stars in search for them. |
| Ratings inside Service markup | Service is not a supported review snippet type, so the stars cannot show. | Use ratings only on supported types such as Product, Recipe or SoftwareApplication. |
| Invalid GTIN | A wrong length or check digit means the number is not a real barcode. | Copy the GTIN from the packaging or your supplier, and check it with our GTIN check digit calculator. |
How to test schema markup on a live page
- Get the code. Copy the page source, or the rendered HTML if apps or a tag manager add schema with JavaScript. The help box above shows three ways.
- Check and fix it here. Work through the errors first, then the warnings. Copy the corrected JSON-LD and fill in any required value we could not know, such as a product image.
- Publish, then test the live URL. Run the page through Google’s Rich Results Test, which is the official check, and use URL Inspection in Search Console to request indexing.
- Give Google time. Google notes it may take several days after publishing for a page to be found and crawled. Watch the enhancement reports in Search Console for errors across the whole site.
Platform notes: Shopify, WordPress and WooCommerce
Shopify
- Themes output Product markup, and many review, SEO and feed apps add another. Check for two Product items.
- Uninstalling an app does not always remove code it added to your theme. Old app snippets can keep printing markup.
- Shopify’s structured_data filter, used by Dawn and Horizon, shows no review or aggregateRating in Shopify’s documented output, so star ratings usually come from a reviews app.
WordPress
- SEO plugins such as Yoast SEO output one connected
@graphthat links items by@id. Paste the full page so references resolve. - Two SEO plugins active at once usually means two WebSite and two Organization items.
- Variables like
%%title%%in the output mean a template was not replaced.
WooCommerce
- WooCommerce outputs its own Product markup. Some SEO and schema plugins add a second one, which shows up as two Product items.
- For variable products with different prices, WooCommerce can output an AggregateOffer with lowPrice and highPrice. That works for product snippets, but merchant listings need an Offer with a single price.
- For variable products, consider ProductGroup with hasVariant.
Schema checker questions
Is schema markup a ranking factor?
Google does not document structured data as a ranking factor. It documents two uses: helping Google understand the page, and making the page eligible for rich results. Google’s policies also say a structured data manual action removes rich result eligibility and does not affect how the page ranks in web search.
Does valid schema guarantee a rich result?
No. Valid markup makes a page eligible. Google decides whether to show a rich result, and it can hold one back if the marked-up content is hidden, misleading, or breaks its structured data policies.
Is FAQ schema still worth adding in 2026?
Not for rich results. Google stopped showing FAQ rich results for all sites on May 7, 2026, and removed the documentation on June 15, 2026. FAQPage is still valid schema.org, so existing markup does no harm, but adding it will not produce an FAQ result in Google Search.
Should I use JSON-LD, Microdata or RDFa?
Google supports all three and recommends JSON-LD, because it is the easiest to add and maintain. If your site uses Microdata, this checker converts it to JSON-LD for you.
Does JSON-LD have to go in the head?
No. Google documents JSON-LD in a script tag in the head or the body of the page. What matters is that the script is in the HTML Google renders and that it describes content on that page.
Why does my code pass here but fail in the Rich Results Test?
The usual causes are that the live page is different from the code you pasted, the markup is added by JavaScript that did not run, Google cannot fetch the page or its resources, or the page breaks a content rule we cannot see, such as markup for content that is not on the page. The Rich Results Test is the official answer, so trust it when the two disagree.
How long until rich results show after I fix my schema?
Google has to recrawl the page first. Google notes it may take several days after publishing for a page to be found and crawled. You can request indexing with URL Inspection in Search Console, but Google does not promise how soon it will recrawl.
Does Google need schema markup for AI Overviews?
No. Google says you don’t need new machine readable files, AI text files or markup to appear in its AI features. Structured data still helps Google understand your pages, and the same rules about matching visible content apply.
Can this checker test a URL?
Browsers do not let one site read another site’s pages, so for now you paste the page source or rendered HTML. The bookmarklet in the help box copies a page’s HTML in one click. To check a whole site, use a crawler and Search Console.
Is the code I paste stored anywhere?
No. The checker runs entirely in your browser and sends nothing anywhere. Nothing you paste is uploaded to Hustle Marketers or anyone else.
Want the schema fixed for you?
We fix structured data on Shopify, WordPress, WooCommerce, Magento and custom sites, from duplicate app markup to complete Product, LocalBusiness and Article graphs, as part of our technical SEO work. Send us the report this tool gave you and we will tell you what is worth fixing first.
Related guides and tools on Hustle Marketers
How this checker works. The rules come from Google Search Central’s structured data documentation, the search gallery and the documentation changelog, all read on October 4, 2026, plus the schema.org vocabulary. Property names and types are checked against the types Google uses and common schema.org types. A type we do not recognize is reported as a note, not an error, because schema.org has hundreds of types. The date at the top of this page shows when the rules were last checked against Google’s documentation.
Primary sources








