// LEARN / SCHEMA

Schema markup types: which schema to use

7,950 organic clicks/month is what the enzymes.bio audit was already producing, but the site still had a 1.4% CTR and 16,100 indexed pages fighting 591,000 not indexed. The question is not “should you add schema?” It is which schema to use for which page, and where JSON-LD actually changes search appearance.

Schema stack pyramid ranking Organization, Service/Product, Article, BreadcrumbList, and FAQPage markup

Schema types that matter

The enzymes.bio audit had 557,000 impressions/month, 7,950 organic clicks/month in May 2026, and an average position of 11.8 that still left a lot of queries stuck on page 2. That is the right context for schema markup types: it is usually not a traffic silver bullet, but it can change how Google understands page intent, entity relationships, and eligibility for enhanced search features.

Start with the page job, not the schema label. A product page needs Product, often with Offer, and sometimes AggregateRating if the data is real and visible. A content page may need Article, FAQPage, or BreadcrumbList. A local page may need LocalBusiness or Service. A company page often needs Organization. If the page type is wrong, JSON-LD can still validate and still be useless.

This page is written for JSON-LD only. That means one compact block in the <head> or body, not Microdata spread through HTML, and not RDFa. If you need implementation help, schema markup implementation is the service-page entry point, and schema validator is the quick check before you ship.

Schema types that matter

Product

Use on a real product detail page. Pair with Offer and a correct priceCurrency. On ecommerce, this is usually the highest-value schema markup type because it maps directly to transaction intent.

Article

Use on editorial content, guides, and news-like pages. Keep author, datePublished, and dateModified consistent with visible page content. Do not mark up an article if the page is mostly a landing page.

FAQPage

Use only when the page visibly shows a true question-and-answer section. If the answers are hidden behind tabs, accordions, or injected after load, make sure Google can render them and the content is still on page.

BreadcrumbList

Use on nearly every indexable page that has a real hierarchy. It helps Google understand site structure and may replace messy URL paths with cleaner result display.

Organization

Use on the brand or company entity page, often sitewide in a single global block. Add logo, sameAs, and legal name only if those values are stable and published.

Service

Use for service pages that sell expertise, not physical goods. This matters on pages like /services/technical-seo-audit/ where the page promise is the service itself, not a product SKU.

LocalBusiness

Use when there is a real local presence, address, and service area. If the business is remote-only, Organization plus relevant service schema may be cleaner than forcing a local entity.

VideoObject

Use when the page contains a real embedded video with a thumbnail, duration, and upload date. Video schema is often underused because people mark up embeds that are not central to the page.

Recipe

Use only for recipe content with ingredients, instructions, time, and nutrition where relevant. If the page is a thin listicle with a recipe mention, skip it.

Event

Use for time-bound events with a date, venue, and attendance model that is still factual at crawl time. Expired events should be removed or updated, not left to rot.

Hand-drawn infographic shows a JSON-LD pyramid of schema types and SEO metrics

Decision tree by page type

  1. 01

    Identify the page job

    Ask one question: what does this page exist to do? Sell a product, explain a topic, capture a lead, announce an event, or represent the company. That answer determines the primary schema markup type before you touch JSON-LD. For example, a category page may need BreadcrumbList and ItemList, while a product detail page needs Product first.

  2. 02

    Match visible content

    Only mark up content that is visible or clearly rendered to the user. If the page shows a price, include it in Offer. If the page shows FAQs, include FAQPage. If the page has a title, author, and date, Article is usually safe. Google is much happier with schema that mirrors the DOM than schema that guesses.

  3. 03

    Choose one primary entity

    Most pages need one main entity plus supporting schema. A service page can use Service as the primary entity and BreadcrumbList as support. A homepage can use Organization as the primary entity and WebSite or BreadcrumbList as support. Do not dump every type onto one page just because the validator accepts it.

  4. 04

    Add nested properties, not duplicates

    Use nested objects when the data belongs together. For a Product, nest Offer. For an Article, add author and publisher. For a BreadcrumbList, add ordered ListItem entries. This keeps the graph tighter and reduces conflicting entities across templates.

  5. 05

    Validate with the right tools

    Run the markup through the schema validator, then check Google’s Rich Results Test, then confirm the page in Indexing › Pages and Performance › Search results after rollout. Schema is not “done” until Google has crawled it and the page has had time to react.

Core schema types

Page typePrimary schemaUsually addAvoid

Product detail

Product

Offer, AggregateRating, BreadcrumbList

Article on a sales page

Blog post

Article

BreadcrumbList, ImageObject, author

Product unless it is a product review page with clear intent

FAQ page

FAQPage

BreadcrumbList

HowTo for plain Q&A

Service page

Service

Organization, BreadcrumbList, areaServed

Product unless the page is actually selling a SKU

Homepage

Organization

WebSite, sameAs, logo

FAQPage and Product

Location page

LocalBusiness

PostalAddress, openingHours, geo

Generic Organization only, if a local listing is the goal

Video page

VideoObject

BreadcrumbList, Article if editorial context exists

Marking up a player embed that is not the page focus

Recipe page

Recipe

HowTo-style step data only if the recipe actually has steps

Product or Article

Event page

Event

organizer, location, offers

Leaving expired dates in place

Ecommerce and service pages

For ecommerce, the default answer to which schema to use is usually Product. That does not mean every category page needs product markup, or that a filtered collection page should pretend to be a product page. On the enzymes.bio audit, the site had 16,100 indexed pages and 591,000 not indexed. In a setup like that, schema needs to be selective because Google already has more URLs than it can comfortably process.

For service businesses, Service is the cleanest starting point when the page is about a deliverable rather than a physical item. A technical SEO audit page, a migration page, or a schema implementation page should describe the service, the provider, and the business context. If there is a local office and the page is location-specific, add LocalBusiness on the location entity page, not everywhere.

The enzymes.bio audit also showed 0 external backlinks, which makes page intent and internal consistency more important. Schema does not replace links. It helps Google interpret the pages you already have. That is why BreadcrumbList, Organization, and Service are useful on service sites: they improve entity clarity without pretending to be something they are not.

If you want the ecommerce angle, read product schema for ecommerce. For FAQ-heavy pages, FAQ schema implementation is the narrower playbook.

JSON-LD examples

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Noise-cancelling headphones",
  "image": ["https://example.com/photos/1x1/photo.jpg"],
  "description": "Wireless headphones with active noise cancellation.",
  "sku": "NC-1024",
  "brand": {
    "@type": "Brand",
    "name": "ExampleAudio"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/noise-cancelling-headphones",
    "priceCurrency": "USD",
    "price": "299.00",
    "availability": "https://schema.org/InStock"
  }
}

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to choose schema markup types",
  "author": {
    "@type": "Person",
    "name": "Mike"
  },
  "datePublished": "2026-05-01",
  "dateModified": "2026-05-22",
  "mainEntityOfPage": "https://example.com/learn/schema-markup-types"
}

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Which schema should I use on a product page?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Use Product, usually with Offer and BreadcrumbList."
      }
    }
  ]
}

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Learn",
      "item": "https://example.com/learn/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Schema markup types",
      "item": "https://example.com/learn/schema-markup-types/"
    }
  ]
}

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Co",
  "url": "https://example.com/",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://www.linkedin.com/company/example"
  ]
}

Validation workflow

curl -s 'https://validator.schema.org/#url=https://example.com/learn/schema-markup-types' \
  -H 'Accept: text/html'

# Rich Results Test is the first pass for eligible result types.
# Then compare the rendered DOM in DevTools.

# In Chrome DevTools:
# 1. Open the page
# 2. Inspect the <script type="application/ld+json"> block
# 3. Confirm the rendered text matches the JSON-LD fields
# 4. Re-run after deploy
Hand-drawn diagram of common schema markup mistakes and a JSON-LD pyramid

Common mistakes

  • Using Product on a lead-gen service page because it feels close enough.

  • Adding FAQPage when the questions are not visible on the page.

  • Marking up only the homepage and ignoring the rest of the site graph.

  • Copying a plugin preset without checking whether the page is an article, service, or product.

  • Using multiple conflicting main entities on one URL.

  • Leaving stale Event dates or outdated price values in the JSON-LD.

  • Expecting schema to fix thin content, crawl issues, or a zero-link profile like the enzymes.bio audit’s 0 external backlinks.

FAQ

Which schema markup types should I use first?

Start with the page’s primary job. For most sites that means Organization on the brand entity, BreadcrumbList sitewide, then Product, Article, Service, FAQPage, or LocalBusiness depending on the page. If you need a shortcut, validate the page in the schema validator and compare it with Google’s Rich Results Test.

Do I need every schema type on one page?

No. More types is not better. One main entity plus supporting markup is usually enough. A product page often needs Product and BreadcrumbList, while a blog post needs Article and BreadcrumbList. Adding unrelated types creates noise, not clarity.

What is the difference between schema.org types and rich results schemas?

schema.org is the vocabulary. Rich results are Google’s eligible presentation formats. Some schema types map directly to rich results, like Product or FAQPage, while others mainly improve entity understanding and context.

Should I use Microdata or JSON-LD?

Use JSON-LD. It is easier to maintain, easier to template, and less brittle during theme changes. It also keeps the markup separate from the visible HTML, which makes audits and QA faster.

Can schema increase clicks without moving rankings?

Yes, sometimes. On a page already averaging position 11.8, a clearer result template or richer snippet can improve CTR. That is especially useful when the site already has 557,000 impressions/mo but only 1.4% sitewide CTR.

How do I know which pages are worth the effort?

Prioritize pages with high impressions, high commercial value, or unstable search appearance. In GSC, start in Performance › Search results, then cross-check template groups in Indexing › Pages and Enhancements › Product snippets, Enhancements › FAQ, or Enhancements › Breadcrumbs.

// FAQ

Common questions

Which schema markup types should I use first?
Start with the page’s primary job. For most sites that means `Organization` on the brand entity, `BreadcrumbList` sitewide, then `Product`, `Article`, `Service`, `FAQPage`, or `LocalBusiness` depending on the page. If you need a shortcut, validate the page in the [schema validator](/tools/schema-validator) and compare it with Google’s Rich Results Test.
Do I need every schema type on one page?
No. More types is not better. One main entity plus supporting markup is usually enough. A product page often needs `Product` and `BreadcrumbList`, while a blog post needs `Article` and `BreadcrumbList`. Adding unrelated types creates noise, not clarity.
What is the difference between schema.org types and rich results schemas?
`schema.org` is the vocabulary. Rich results are Google’s eligible presentation formats. Some schema types map directly to rich results, like `Product` or `FAQPage`, while others mainly improve entity understanding and context.
Should I use Microdata or JSON-LD?
Use JSON-LD. It is easier to maintain, easier to template, and less brittle during theme changes. It also keeps the markup separate from the visible HTML, which makes audits and QA faster.
Can schema increase clicks without moving rankings?
Yes, sometimes. On a page already averaging position `11.8`, a clearer result template or richer snippet can improve CTR. That is especially useful when the site already has `557,000 impressions/mo` but only `1.4%` sitewide CTR.
How do I know which pages are worth the effort?
Prioritize pages with high impressions, high commercial value, or unstable search appearance. In GSC, start in `Performance › Search results`, then cross-check template groups in `Indexing › Pages` and `Enhancements › Product snippets`, `Enhancements › FAQ`, or `Enhancements › Breadcrumbs`.
// FREE-AUDIT

Get a free 30-minute technical SEO audit

Send your URL and one symptom. You'll get a Loom walkthrough back within 48 hours — no sales call.

Request a free audit
In plain English: Start with the page’s job, map it to one primary JSON-LD type, validate it, then measure CTR and enhancement coverage in GSC after Google recrawls.