What is schema markup?
The types worth your time, the two that no longer earn anything, and the rule that turns markup into a manual action.
Schema markup is a standard vocabulary you add to a page’s HTML to tell search engines what the page is about in machine-readable terms — that this string is a price, that one is an author, that number is a rating out of five. The page looks identical to a human. What changes is that a search engine no longer has to guess.
Schema markup, structured data, JSON-LD: which word is which
These three get used interchangeably and they are not the same thing. Structured data is the general idea: data in a predictable shape rather than free prose. Schema.org is the specific shared vocabulary — the agreed list of types like Product, Article, LocalBusiness and the properties each one accepts. JSON-LD is one of three syntaxes for writing that vocabulary into a page, alongside Microdata and RDFa.
Use JSON-LD. Google recommends it, and the practical reason is that it sits in one self-contained <script> block instead of being threaded through your markup as attributes on the elements that happen to display the values. Microdata couples your structured data to your layout, so a redesign silently breaks it. JSON-LD survives a redesign untouched.
What it actually gets you
This is where most explanations overclaim, so here is the careful version. Google has been consistent that structured data is not a ranking factor. Adding Product markup does not move you up the page.
What it does is make you eligible for a rich result: the star rating under a review, the price and stock status under a product, the breadcrumb trail replacing a raw URL, the event date and venue. Those change how much space you occupy and how much a searcher can tell before clicking. That is a click-through effect, not a position effect — and it is real, but it is a different mechanism from ranking, and knowing which one you are buying keeps expectations honest.
There is a second, newer reason that matters more each year. AI answers — Google’s AI Overviews, ChatGPT, Perplexity — have to extract facts from a page to summarize or cite it. Explicit structured data gives them an unambiguous version of the facts your prose states loosely. Nobody publishes the weighting, so treat this as sound practice rather than a measurable win, but the direction is not in doubt.
The types worth your time
Schema.org has hundreds of types. Perhaps eight matter for most sites, and the filter is simple: use a type only if you have the data it wants and the data is visible on the page.
Organization and WebSite — who publishes the site, its logo, its social profiles, its search action. One copy, on the homepage, referenced from everywhere else by @id. BreadcrumbList — the cheapest genuine win available, because it replaces the URL in your result with a readable hierarchy and every site with sections already has the data.
Article or BlogPosting for editorial content, with a real author and a real date. Product with Offer for anything for sale — this is the one with the largest visible payoff and the strictest rules. LocalBusiness for anywhere with an address and opening hours. Event, Recipe and VideoObject if you genuinely publish those.
Two types not to add
HowTo is gone. Google removed HowTo rich results in 2023. Tutorials written before then still recommend it and you will find plenty of them; the markup is now inert. Do not spend time on it.
FAQPage no longer produces a SERP accordion either. Google narrowed FAQ rich results to health and government sites in August 2023 and then retired the feature entirely on 7 May 2026. So do not add FAQPage expecting a search appearance — that specific return no longer exists.
Equally, do not rip out FAQPage you already have. It is still valid structured data, it still gives answer engines clean question-and-answer pairs to extract, and it costs a few hundred bytes. Removing it buys nothing. The honest summary: neutral, keep it if it is there, do not add it for Google’s sake.
The rule that causes the most trouble
Structured data must describe what is actually on the page, visible to the person reading it. Markup claiming a 4.8-star rating from 200 reviews on a page that displays no reviews is a policy violation, not a clever shortcut.
The penalty is not a ranking drop. It is a structured data manual action, which makes the site ineligible for rich results — you lose the thing you were trying to gain, and you find out through Search Console rather than through your traffic. Self-serving review markup, where a business marks up its own five-star opinion of itself, is the most common version of this.
How to check whether yours works
Three tools, in the order you should reach for them.
The Rich Results Test — search.google.com/test/rich-results — is the one that matters, because it reports what Google specifically will do with your markup, including which rich result you have qualified for. Use it while you are writing the markup.
The Schema Markup Validator at validator.schema.org checks your syntax against the full vocabulary rather than against Google’s subset. Useful when the Rich Results Test says nothing is wrong but also nothing is eligible, which usually means you have used a valid type Google does not build a rich result from.
Search Console is the only one of the three that tells you the truth at scale. Its enhancement reports cover every page Google has actually crawled, so they catch the case where the template is fine but 300 product pages are missing a price. Check it a week after deploying, not the same afternoon.
Getting it wrong quietly
Three failure modes are worth naming because none of them look like errors.
Markup injected by JavaScript that never gets rendered. If a tag manager writes your JSON-LD after load, Google may see it — or may not, depending on rendering. Server-rendered markup in the initial HTML has no such ambiguity. See JavaScript SEO and rendering for why this class of problem is so hard to spot.
Two conflicting copies on one page. A theme adds Article, a plugin adds another with a different author, and Google picks one arbitrarily. Search your rendered HTML for application/ld+json and count the blocks.
Markup on a page that cannot be indexed. Perfect structured data on a noindex page is perfectly ignored. Rich results require the page to be in the index first, which is why indexability is the check that comes before this one.
Where to start
In order: Organization and WebSite on the homepage, BreadcrumbList across every section, then Article or Product depending on what you publish. Validate each with the Rich Results Test as you go, then check Search Console a week later to see it at scale.
Our free site check reports whether your pages carry structured data at all and flags the common mistakes — missing markup, duplicate blocks, markup on pages that are not indexable. It is the fastest way to find out whether this is worth your afternoon. If the check says your pages are not indexed in the first place, fix that before touching schema: crawled, currently not indexed covers the most common reason.
Frequently asked questions
- What is schema markup?
- Schema markup is structured data added to a page's HTML using the Schema.org vocabulary, which tells search engines what the content means rather than leaving them to infer it — that a string is a price, a date, an author or a rating. It is normally written as JSON-LD in a script tag, and it changes nothing about how the page looks to a visitor.
- Does schema markup improve SEO rankings?
- Not directly. Google has been consistent that structured data is not a ranking factor. What it does is make a page eligible for rich results such as star ratings, prices and breadcrumbs, which take up more space in search results and tell searchers more before they click. That raises click-through rather than position — a real benefit, but a different mechanism from ranking.
- Which schema markup format should I use?
- JSON-LD. Google recommends it, and it sits in one self-contained script block instead of being spread across your HTML as attributes the way Microdata is. That decoupling matters practically: Microdata is tied to the elements displaying the values, so a redesign can silently break it, while JSON-LD survives a redesign untouched.
- Should I add FAQ schema to my pages?
- Not for Google search appearance. Google narrowed FAQ rich results to health and government sites in August 2023 and retired the feature entirely for all sites on 7 May 2026, so FAQPage markup no longer produces a SERP accordion. If you already have it, there is no reason to remove it — it remains valid structured data that answer engines can parse for question and answer pairs, and it costs very little.
- Can schema markup get my site penalized?
- Yes, if it describes something not present on the page. Marking up a star rating on a page that displays no reviews, or a price that does not appear, can trigger a structured data manual action that makes the site ineligible for rich results. Self-serving review markup, where a business marks up its own rating of itself, is the most common cause. The rule is that structured data must match visible page content.
- How do I test whether my schema markup is working?
- Use Google's Rich Results Test while writing the markup, because it reports which rich result you have actually qualified for rather than just whether the syntax parses. Use validator.schema.org when the markup is valid but nothing is eligible, which usually means the type has no rich result. Then check Search Console's enhancement reports about a week later — that is the only source that covers every page Google has crawled.
- Is HowTo schema still worth adding?
- No. Google removed HowTo rich results in 2023, so the markup no longer produces any search feature. Plenty of tutorials published before that date still recommend it, which is why it keeps getting added to new sites. Spend the effort on Organization, BreadcrumbList and Article or Product markup instead.