Types of Schema Markup Worth Your Time

types of schema markup

Schema.org defines more than 800 types. Google supports around thirty as search features. That gap is the entire reason most structured data projects waste effort — teams work through a long list of types of schema markup from an old blog post and ship a dozen that Google does nothing with.

The useful way to think about this is in three buckets: types that produce a visible rich result today, types that feed Google’s understanding without showing anything, and types that are effectively dead. Know which bucket you are in before you write a line of JSON-LD.

Types that still earn visible rich results

These are actively supported and are where implementation time converts into SERP real estate. If you only do a handful, do these.

  • Product — price, availability, and aggregate rating in the listing. The highest-value type for ecommerce, and one of the few where the display change is immediate and obvious.
  • BreadcrumbList — replaces the raw URL string with a readable hierarchy. Cheap to implement sitewide, low risk, and it works on virtually any site with categories.
  • Event — dates, venue, and ticket availability, with eligibility for the events experience in search. Essential for venues, promoters, and anyone running a calendar.
  • Recipe — ratings, cook time, calories, and image carousel eligibility. One of the oldest and most reliably displayed features.
  • VideoObject — video thumbnails, duration, and key moments. Increasingly important as video results are blended into standard SERPs.
  • JobPosting — required for inclusion in Google’s job search experience. Not optional if you run a careers site.
  • LocalBusiness — supports local discovery and pairs with your Business Profile. The subtypes matter here; use Restaurant, Dentist, or whatever fits rather than the generic parent.

Each has required properties documented by Google, and missing one required property means no eligibility at all. A Product without price and currency inside an offers block does nothing regardless of how complete the rest is.

Types that work invisibly

Some markup never produces a snippet but still earns its place. Google uses structured data to build its understanding of entities and relationships, and that understanding influences things you cannot see in a SERP screenshot.

Organization is the clearest example. On your homepage it declares your legal name, logo, contact details, and social profiles in one machine-readable block. It rarely changes how a listing looks, but it is the standard input for knowledge panel data and entity disambiguation:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Outdoors",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://www.linkedin.com/company/example-outdoors",
    "https://en.wikipedia.org/wiki/Example_Outdoors"
  ]
}
</script>

Person markup does similar work for author entities, which matters if you publish bylined content and want authors recognized consistently across sites. WebSite with a SearchAction declares your internal search endpoint. Article and its subtypes NewsArticle and BlogPosting clarify publication dates, authorship, and publisher — no guaranteed snippet, but they are the standard for editorial content and are required for some Google News surfaces.

Types that are effectively dead

This is the part most guides have not updated, and it is where people lose weeks.

FAQPage markup was heavily reduced in August 2023. Google now shows FAQ rich results almost exclusively for authoritative government and health sites. Add FAQ schema to a commercial blog post today and it will validate perfectly and display nothing. The markup is not harmful, but treating it as a way to grab extra SERP real estate is a strategy that stopped working three years ago.

HowTo markup was dropped from desktop results and then retired as a search feature entirely. Same situation: valid vocabulary, no display. If your CMS is auto-generating HowTo blocks on every tutorial, that is wasted page weight and a maintenance surface with no return.

The lesson generalizes. Google adds and removes structured data features regularly, and the only reliable source is its own search gallery documentation, which is updated when features change. Check it before starting any implementation, not after.

Review and rating markup: supported but restricted

Review snippets deserve their own treatment because the rules are strict and the penalty for getting them wrong is severe.

Google explicitly disallows self-serving reviews — you cannot publish review or AggregateRating markup about your own business or your own products on your own site and expect it to display. Reviews must come from genuine independent parties. Markup for third-party products you sell can be valid; markup that says your own company is rated 4.9 stars based on testimonials you collected is not.

Beyond that, the universal rule applies with force here: markup must match visible page content. A rating in the JSON-LD that appears nowhere on the rendered page is a structured data spam violation, and Google’s response is to remove rich result eligibility across the site, not just for the offending URL. Plenty of plugins will generate exactly this. Audit what they output.

How many types should one page carry

One primary type describing what the page is, plus supporting types where they genuinely apply. A product page reasonably carries Product and BreadcrumbList. An event page carries Event and BreadcrumbList. A homepage carries Organization and WebSite.

Stacking types does not multiply your chances. It multiplies your chance of contradiction — two blocks naming different authors, a Product block and an Article block disagreeing about what the page is, or duplicate Organization markup from a theme and a plugin running simultaneously. If you have inherited a site with several plugins each emitting schema, the first job is deduplication, not addition.

Choosing types for your specific site

Work from your content, not from a list. A quick mapping:

  1. Ecommerce — Product with Offer sitewide, BreadcrumbList, Organization on the homepage. That is most of the available value.
  2. Publisher or blog — Article or BlogPosting, Person for authors, Organization for the publisher, VideoObject where you embed video.
  3. Local service business — the most specific LocalBusiness subtype that fits, with address, opening hours, and service area, plus Organization.
  4. SaaS or B2B — Organization, WebSite, Article on the blog. SoftwareApplication exists but produces little in general web search.
  5. Events, recipes, jobs, courses — the matching type is non-negotiable, because it is the entry ticket to a dedicated search surface.

Validate and monitor, then stop touching it

Google’s Structured Data Testing Tool was retired; anything still recommending it is out of date. Use the Rich Results Test to check eligibility for a specific Google feature, the schema.org validator for full vocabulary syntax checking, and Search Console’s Enhancements reports to see how Google treats your live pages over time with per-feature error counts and example URLs.

Test one page per template rather than every URL. If the product template validates, all 4,000 product pages validate. Then leave it alone and watch the Performance report filtered by search appearance to see whether click-through rate actually moved.

Structured data sits on top of technical health, not in place of it. SEO Rocket’s technical audits handle the layer underneath — full-site crawls verified past 900 pages with the real titles, URLs, and H1 text attached to each issue, plus PageSpeed and Core Web Vitals from real-user field data. It does not generate schema for you, which is deliberate: choosing types is a judgment call, and this is the list to make it from.