Types of Schema Markup: Every Major Type Explained with Examples

Last Updated: February 25, 2026 · 18 min read

Schema.org defines over 800 types. In practice, about 15 of them cover the vast majority of websites and are the ones Google actively uses to generate rich results. This guide walks through each of those 15 types: what they are for, what rich result they can unlock, which properties are required, and a complete JSON-LD example you can copy and adapt.

Use the table below to jump to the type most relevant to your site, or read through all of them — understanding the full picture helps you spot opportunities on pages you may not have thought to mark up.

Article / NewsArticle / BlogPosting

Used for: Blog posts, news articles, editorial contentRich result: Top Stories carousel, article card with image

Required properties:

headlinedatePublishedauthorimage
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "10 Tips for Better Sleep",
  "datePublished": "2026-02-25T09:00:00Z",
  "dateModified": "2026-02-25T09:00:00Z",
  "author": { "@type": "Person", "name": "Sam Jones" },
  "publisher": {
    "@type": "Organization",
    "name": "HealthBlog",
    "logo": { "@type": "ImageObject", "url": "https://healthblog.com/logo.png" }
  },
  "image": "https://healthblog.com/sleep-tips.jpg"
}

Product + Offer

Used for: Any page selling a productRich result: Price, availability, star rating, shipping in search

Required properties:

nameoffers.priceoffers.priceCurrencyoffers.availability
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Wireless Earbuds Pro",
  "image": "https://shop.com/earbuds.jpg",
  "brand": { "@type": "Brand", "name": "AudioCo" },
  "offers": {
    "@type": "Offer",
    "price": "59.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2026-12-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "318"
  }
}

Recipe

Used for: Food blogs, cooking websites, recipe pagesRich result: Recipe card with image, rating, cook time, calories

Required properties:

nameimagerecipeIngredientrecipeInstructions
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Classic Chocolate Chip Cookies",
  "image": "https://recipes.com/cookies.jpg",
  "author": { "@type": "Person", "name": "Carol Baker" },
  "totalTime": "PT35M",
  "recipeYield": "24 cookies",
  "recipeIngredient": [
    "2 cups plain flour",
    "1 cup chocolate chips",
    "125g butter"
  ],
  "recipeInstructions": [
    { "@type": "HowToStep", "text": "Preheat oven to 180°C." },
    { "@type": "HowToStep", "text": "Mix butter and sugar until creamy." }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9", "reviewCount": "542"
  }
}

LocalBusiness

Used for: Businesses with a physical location or service areaRich result: Knowledge Panel, Maps listing, local pack

Required properties:

nameaddresstelephoneurl
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "The Corner Café",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 High Street",
    "addressLocality": "Bristol",
    "postalCode": "BS1 2AB",
    "addressCountry": "GB"
  },
  "telephone": "+44-117-555-0101",
  "url": "https://cornercafe.co.uk",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "07:30", "closes": "17:00"
    }
  ]
}

Event

Used for: Concerts, webinars, conferences, sports eventsRich result: Event listing in Google Events carousel

Required properties:

namestartDatelocationeventStatuseventAttendanceMode
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Bristol Tech Summit 2026",
  "startDate": "2026-06-15T09:00:00Z",
  "endDate": "2026-06-15T18:00:00Z",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "Watershed Media Centre",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "1 Canons Road",
      "addressLocality": "Bristol"
    }
  },
  "offers": {
    "@type": "Offer",
    "price": "49.00",
    "priceCurrency": "GBP",
    "url": "https://tickets.techsummit.com"
  }
}

FAQPage

Used for: FAQ sections, support pages, informational pagesRich result: Expandable Q&A dropdowns in search (government/health mainly)

Required properties:

mainEntity array of Questions with acceptedAnswer
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How long does shipping take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Standard shipping takes 3–5 business days."
      }
    },
    {
      "@type": "Question",
      "name": "Do you offer free returns?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, returns are free within 30 days of purchase."
      }
    }
  ]
}

HowTo

Used for: Step-by-step tutorials, DIY guides, instructional contentRich result: Numbered step previews on mobile and voice

Required properties:

namestep array of HowToStep with text
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to Change a Bicycle Tyre",
  "totalTime": "PT20M",
  "step": [
    {
      "@type": "HowToStep",
      "name": "Remove the wheel",
      "text": "Loosen the axle nuts and lift the wheel out of the frame."
    },
    {
      "@type": "HowToStep",
      "name": "Remove the tyre",
      "text": "Use tyre levers to prise the tyre off the rim."
    },
    {
      "@type": "HowToStep",
      "name": "Fit the new tyre",
      "text": "Push one bead onto the rim, insert the tube, and push the second bead on."
    }
  ]
}

VideoObject

Used for: Pages with an embedded or hosted videoRich result: Video thumbnail and duration in search results

Required properties:

namedescriptionthumbnailUrluploadDatecontentUrl or embedUrl
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "How to Install a Kitchen Tap",
  "description": "Step-by-step guide to replacing a kitchen tap in under 30 minutes.",
  "thumbnailUrl": "https://videos.com/tap-install-thumb.jpg",
  "uploadDate": "2026-02-20T00:00:00Z",
  "duration": "PT22M30S",
  "embedUrl": "https://www.youtube.com/embed/dQw4w9WgXcQ",
  "publisher": {
    "@type": "Organization",
    "name": "DIY Home Guide"
  }
}

Organization

Used for: Your brand's homepage or about pageRich result: Knowledge Panel, brand recognition across all pages

Required properties:

nameurllogo
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://yoursite.com/#organization",
  "name": "Acme Corporation",
  "url": "https://yoursite.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://yoursite.com/logo.png",
    "width": 512, "height": 512
  },
  "sameAs": [
    "https://twitter.com/acmecorp",
    "https://linkedin.com/company/acmecorp",
    "https://en.wikipedia.org/wiki/Acme_Corporation"
  ]
}

Which types should you add first?

The answer depends on your site type. Here is a straightforward priority order:

Every siteOrganization + WebSite + BreadcrumbList

These establish your brand entity, enable sitelinks searchbox, and improve URL display. Low effort, high value on every page.

Blog / content siteArticle + BreadcrumbList

Makes you eligible for Top Stories and article cards. Add FAQ or HowTo to specific posts that have that format.

E-commerceProduct + Offer + BreadcrumbList

Shows price, availability, and ratings in search. Directly drives more clicks on product pages.

Restaurant / caféRestaurant + Menu + AggregateRating

Populates your Knowledge Panel with opening hours, menu, and rating. Drives local search traffic.

Events websiteEvent + Organization

Gets you into the Google Events carousel which is shown above organic results for event searches.

Recipe websiteRecipe + BreadcrumbList

Recipe cards with images dominate food search results. Highest CTR of any rich result type.

Multiple schema types on one page

A page can — and often should — have more than one schema type. A product page might have Product, BreadcrumbList, and potentially FAQPage if it has a Q&A section. An article page might have Article, BreadcrumbList, and a HowTo section. Each schema type is a separate <script> block.

<!-- Product schema -->
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "Product", ... }
</script>

<!-- BreadcrumbList schema — separate block -->
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "BreadcrumbList", ... }
</script>

<!-- FAQPage schema — separate block -->
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "FAQPage", ... }
</script>

Validate Your Schema Markup

Paste any of the examples above with your own data and check them for errors instantly.

Validate Schema Now →