Schema Checker: Free Structured Data and Schema Markup Tester

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.

All 25 features in Google’s gallery JSON-LD, Microdata and RDFa Line-by-line JSON errors Writes corrected code No sign-up, nothing 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.

Try a sample:
Helps us turn relative links into full URLs.
Drop the file to check it
The checker needs JavaScript and a current browser (Chrome, Edge, Firefox or Safari 16.4 or newer). If you see this message after the page has loaded, please update your browser.
How to get the code from a live page
1. Page source

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.

2. Rendered HTML

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.

3. One-click bookmarklet

Drag this button to your bookmarks bar. On most pages, click it to copy the rendered HTML, then paste it here.

Copy page HTML

Your 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 &quot;, 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.

Errors, warnings and notes. An error stops the item from being read or makes it ineligible for its rich result. A warning is a recommended property that is missing, or a value worth checking. A note explains something you should know, such as a type that has no rich result in Google.

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 needHustle Marketers schema checkerGoogle Rich Results TestSchema Markup ValidatorKeywords Everywhere validatorClassy Schema viewerScreaming Frog SEO Spider
Official word on Google eligibilityNo. Built on Google’s docsYesNoNoNoNo
Check a live URL directlyPaste source or rendered HTMLYesYesYes, 25 a day freeYesYes, crawls whole sites
Schema added by JavaScriptYes, via rendered HTML or the bookmarkletRenders the pageExtracts injected markupURL mode reads server HTML only. Pasted HTML worksNot statedOptional rendering (paid licence)
JSON-LD, Microdata and RDFaAll threeAll threeAll threeJSON-LD onlyJSON-LD and MicrodataAll three
Google required and recommended propertiesAll 25 gallery featuresTypes with a Google featureNo, by designYesNoYes
Explains types with no rich result (Service, WebPage)Yes, item by itemShows no items detectedNot its scopeNot statedNot statedNot stated
Flags retired rich results (FAQ, HowTo) with datesYesNot statedNot its scopeLists FAQ Page as supportedNot statedNot stated
Duplicate Product or Organization markupYes, with the likely plugin or appShows item countsNot statedNot statedNot statedNot stated
Value checks: dates, prices, currencies, GTIN check digitYesFlags invalid valuesSyntax mistakesNot statedNot statedNot stated
Writes corrected codeYes, plus a form to fill missing valuesNot statedNot statedShows the property path, then a separate generatorNot statedNot stated
Converts Microdata to JSON-LDYesNot statedNot statedNoNot statedNot stated
Every schema.org type and propertyGoogle types plus common typesGoogle features onlyYes15 types checked in depthValidates schema.org (scope not stated)Yes
Where your code goesStays in your browserGoogle’s serversOnline serviceURL checks use its server. Pasted code stays in your browserNot statedDesktop app
Price and limitsFree, no sign-up, no limitFreeFreeFree. 25 URL checks a day, 50 with a free API key. Pasted code unlimitedNot statedPaid 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 featureschema.org typeRequired by Google
ArticleArticle, NewsArticle, BlogPostingNothing required. Recommended: headline, image, datePublished, dateModified, author
BreadcrumbBreadcrumbListitemListElement with at least two ListItems, each with position and name, and item on all but the last
CarouselItemListitemListElement 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 listCoursename and description, at least 3 courses inside carousel markup
DatasetDatasetname and description. Used only by Dataset Search, not Google Search (clarified November 5, 2025)
Discussion forumDiscussionForumPostingauthor, author.name, datePublished, and text, image or video
Education Q&AQuizhasPart Questions with text, eduQuestionType Flashcard and acceptedAnswer
Employer aggregate ratingEmployerAggregateRatingitemReviewed, ratingValue, ratingCount or reviewCount
EventEventname, startDate, location with address. Physical locations only
Image metadataImageObjectcontentUrl, plus creator, creditText, copyrightNotice or license
Job postingJobPostingtitle, description, datePosted, hiringOrganization, jobLocation or applicantLocationRequirements
Local businessLocalBusiness and subtypesname and address only
Math solverMathSolver with LearningResourceurl, usageInfo, potentialAction, learningResourceType
MovieMovie in an ItemListname and image
OrganizationOrganization, OnlineStore and subtypesNothing required. Recommended: name, url, logo, sameAs and more
Product snippetProductname, plus review, aggregateRating or offers
Merchant listingProduct with Offername, image, offers with a price above zero and priceCurrency
Product variantsProductGroupname, with each variant meeting the product rules
Profile pageProfilePagemainEntity (Person or Organization) with name
Q&AQAPageOne Question with name, answerCount and an accepted or suggested answer with text
RecipeRecipename and image
Review snippetReview, AggregateRatingReview: author and reviewRating.ratingValue. AggregateRating: ratingValue plus ratingCount or reviewCount. Both on a supported item type
Software appSoftwareApplication and subtypesname, offers.price, and aggregateRating or review
Speakable (beta)SpeakableSpecificationcssSelector or xPath
Subscription and paywalled contentisAccessibleForFree with WebPageElementisAccessibleForFree. Recommended when false: hasPart as a WebPageElement with a .class cssSelector for each paywalled section
Vacation rentalVacationRentalname, identifier, at least 8 images, latitude, longitude, containsPlace with occupancy. Hotel Center partners only
VideoVideoObjectname, thumbnailUrl, uploadDate

Retired or limited, with dates

FeatureTypeStatus in Google Search
FAQFAQPageNot shown for any site from May 7, 2026. Documentation removed June 15, 2026
How-toHowToLimited to desktop in August 2023, then removed from desktop in September 2023. No longer documented or listed by Google
Practice problemQuiz (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 listingCourse (course info only), Occupation, VideoObject (learning video only), CarRetirement announced June 12, 2025. Documentation removed September 9, 2025
Special announcementSpecialAnnouncementDeprecated from July 31, 2025. Documentation removed September 9, 2025
Sitelinks search boxWebSite with SearchActionDocumentation 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 checkClaimReviewBeing phased out of Google Search. Still used by the Fact Check Explorer
Book actionsBookOnly for book providers onboarded with Google
DatasetDatasetUsed 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.

ReasonWhat is going onWhat to do
The type has no Google featureService, 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 retiredFAQPage 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 parsedOne 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 JavaScriptA 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 pageThe 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

ProblemWhy it mattersFix
Duplicate Product markupA 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 productImage 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 outputValues 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 businessGoogle 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 markupService 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 GTINA 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
Remember the visible content rule. Google’s structured data policies say not to mark up content that is not visible to readers of the page. When you paste full HTML, this checker compares names and headlines in your markup with the page text and warns you when they do not match.

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 @graph that 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.

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

Scroll to Top