Schema.org Structured Data: Which Types Actually Earn Rich Snippets

Schema.org Structured Data: Which Types Actually Earn Rich Snippets

Schema.org structured data does not push a site up the rankings, but it changes what the snippet looks like: stars, price, stock status, breadcrumbs or a block of questions. As of publication, Google actually renders rich results for only about two dozen types, and half of them serve narrow niches such as recipes or events. For a regular business site, five or six types do the real work: Product, Article, LocalBusiness, Organization, BreadcrumbList and, with restrictions, FAQ and Review. Below we cover what structured data is, which types make sense for your site, which mistakes cancel the effect and how to check that Google has read everything.

SEO specialist comparing a plain search snippet with a rich snippet built from schema markup on a laptop screen

What structured data is and why Google asks for JSON-LD

Structured data helps a search engine understand what exactly is on the page: not just "text with the number 1,299" but a product priced at 1,299, in stock, rated 4.7. The vocabulary used to describe such entities is called Schema.org. It is maintained jointly by Google, Microsoft, Yahoo and Yandex, so one markup is readable by all of them.

Technically, there are three ways to add markup: attributes inside the HTML (microdata), RDFa attributes, or a separate JSON-LD script. Google officially recommends JSON-LD: the block sits apart from the layout, a redesign does not break it, and a CMS can generate it easily. Here is a minimal product markup:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Delonghi Magnifica S coffee machine",
  "image": "https://example.com/img/magnifica-s.jpg",
  "sku": "ECAM22.110",
  "brand": { "@type": "Brand", "name": "Delonghi" },
  "offers": {
    "@type": "Offer",
    "price": "399",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.7", "reviewCount": "128" }
}
</script>

The script goes into <head> or right before the closing <body> tag. One condition matters most: everything inside the JSON-LD must be visible to a human on the same page. If you mark up a 4.7 rating, that rating has to appear on the page somewhere.

Which types Google actually shows in snippets

The full list of supported types lives in Google's structured data gallery. The list keeps changing: in recent years Google removed some types and restricted others. Here is the state of play at publication time, worth rechecking every six months.

  • Product. Price, currency, availability, rating and review count in the snippet. The main type for an online store. Also feeds merchant listings, the product blocks that appear without a Merchant Center account.
  • Article / NewsArticle / BlogPosting. Date, author, image. Affects Discover and the Top Stories block; in classic results the effect is modest.
  • LocalBusiness. Address, opening hours, phone, coordinates. Helps Google tie the site to its Google Business Profile.
  • Organization. Logo, name, contacts, social profiles. Feeds the company knowledge panel. The separate Logo type merged into Organization in 2024.
  • BreadcrumbList. Instead of a grey URL, the snippet shows a trail like "Home › Catalog › Coffee machines". The cheapest type to implement with a visible effect.
  • FAQPage. Since August 2023, Google shows rich FAQ results only for government and health authority sites. For commercial sites the markup stays valid, but no block appears in results.
  • HowTo. Removed from results entirely in September 2023. No point marking it up.
  • Review / AggregateRating. The stars. Since 2019 Google has ignored self-serving reviews: an AggregateRating on an Organization or LocalBusiness type will not make it into the snippet. Stars work on Product, Recipe, Book, Course, Event, SoftwareApplication and a few others.

There are also Event, Recipe, JobPosting, Course, Video, SoftwareApplication and Dataset. These are not "extra" types, they simply serve specific niches: event agencies, food media, job boards, online schools.

TypeWhere it showsWho needs it
Product + Offer + RatingPrice, stock, starsOnline stores, price lists
BreadcrumbListBreadcrumbs instead of URLSites with 2+ levels
OrganizationKnowledge panel, logoEvery company
LocalBusinessLocal results, mapClinics, garages, cafes, salons
Article / BlogPostingDiscover, date and authorMedia, blogs
FAQPageFAQ block (government, health)Clinics, public services
EventDate, venue, ticketsConcerts, conferences, courses
JobPostingGoogle Jobs blockCareer sections, job boards
VideoPreview, duration, key momentsPages with own video

Leave an application

Enter your name and email, our managers will contact you as soon as possible.
By submitting the form you agree to our privacy policy.

Does structured data improve rankings

No. Google has been saying this for years, and our practice at Query confirms it: a page with flawless JSON-LD and a page without it are ranked by the same signals: content, links, technical foundation, user behaviour. Markup is not a ranking factor. It works on a different metric: CTR, the share of people who click your result out of the ten sitting next to it.

The logic is simple. A snippet with price, stars and stock status takes more space, looks more concrete and filters out irrelevant clicks: a visitor sees the price and either comes to you deliberately or does not come at all. In our experience, the CTR gain from correct rich snippets in commercial niches is measured in tens of percent of the baseline rather than single digits, but it depends heavily on what your neighbours in the results are showing. If everyone in the top ten has stars, markup simply keeps you from falling behind.

The second benefit is indirect. Structured data gives Google clean entities: this is the brand, this is the model, this is the price. That feeds the knowledge panel, product blocks and, these days, AI overviews, which also lean on machine-readable entities from the page. Markup is not an engine, it is a translator between your site and the search engine.

Developer validating a page's JSON-LD schema markup in the Rich Results Test on an office monitor

Typical mistakes that get markup ignored or penalised

Google does not penalise the absence of markup, but it does issue manual actions for deceptive markup. Here is what we most often find during audits.

  1. Marking up invisible content. The JSON-LD contains an FAQ with ten questions, and none of them are on the page. Or a 4.9 rating when the site has no reviews at all. This is a direct violation and triggers the "Misleading structured data" manual action.
  2. Fake and self-assigned ratings. AggregateRating without real reviews, or a company rating on the company's own site. The stars will either never show or will be removed along with the domain's other rich results.
  3. Duplication. The SEO plugin adds Organization, the theme adds Organization, the developer added another one by hand. Three blocks with different phone numbers. Google picks one at random or none at all.
  4. Product on a category page. The Product type describes one specific item. On a listing of 40 products, either mark each one inside an ItemList or do not mark them up at all.
  5. Missing required fields. Offer without a currency, Product without a name, Article without a date. The validator flags an error, and the snippet never appears.
  6. Stale price and availability. The markup was done once at launch, and the product has long since changed price. A mismatch between page and snippet also falls under the rules.

A separate story: marking up everything "just in case". We at Query have seen sites with 15 types on the homepage. Zero benefit, and the chance of getting something wrong grows. Mark up what has a chance of showing and what describes the real entity of the page.

How to check that Google has read it all

There are two tools, and they complement each other.

  • Rich Results Test (search.google.com/test/rich-results). Paste a URL or code and within half a minute you see which types were detected, which required fields are missing and whether there are warnings. It shows only the types that produce rich results. For general Schema.org validation there is validator.schema.org.
  • Search Console reports. The Enhancements section has a separate report for each type: how many pages are valid, how many have errors and which errors exactly. This is data from real crawling, not a one-off check. It also shows the moment Google stopped seeing the markup after a template update.

The routine after implementation: run the test on two or three typical pages, request re-indexing via URL Inspection, check the Search Console report after a week or two and manually google a few of your own pages. Valid markup does not guarantee display: Google decides on its own when a rich snippet is appropriate. Without valid markup, though, the chance is zero.

Implementation is usually part of technical SEO optimisation, and if the CMS cannot generate JSON-LD from product cards, a developer gets involved for site improvements. Most often it is one or two days of work: the product template, the article template, a global Organization block and breadcrumbs.

Where to start: a short plan

  1. Check the current state: Rich Results Test on the homepage, a product or service page and one article. Markup is often already there from a plugin, but with errors or duplicates.
  2. Pick three or four types for your format: a store needs Product, BreadcrumbList and Organization; a service site needs LocalBusiness, Organization, BreadcrumbList and Article for the blog.
  3. Generate JSON-LD from CMS data, not by hand: prices and availability must update automatically.
  4. Remove duplicates and anything a human cannot see on the page.
  5. Two weeks later, compare the Enhancements reports in Search Console and the page CTR in the Performance report before and after.

Structured data will not replace content and links, but one or two days of work gives you a snippet that gets clicked more often. It is one of the few technical steps with a fast, measurable result.

Other articles

Other services

Get in touch
Messengers