Skip to main content

Aloak Jawali

Types of Schema Markup: Which One Does Your Website Need?

Summarize with: ChatGPT Claude AI Google AI Grok Perplexity
Share:
Illustration of a web page linked to schema markup types such as Organization, Product, Article and LocalBusiness, with a rich result preview

Quick answer: what are the types of schema markup?

Schema markup is a small block of code, usually JSON-LD, that tells search engines exactly what a page contains: a product, a business, an article, an event, a job, and so on. It uses the shared schema.org vocabulary, which currently lists 826 types. Only a small subset of those can unlock special displays in Google Search. Google structured data gallery lists 25 supported features today.

The types most businesses actually use:

  • Organization: your brand name, logo, contact details and social profiles
  • LocalBusiness: address, opening hours and location for physical or service-area businesses
  • Product: price, availability, shipping, returns and ratings for ecommerce pages
  • Article: headline, author, date and image for blog and news content
  • BreadcrumbList: where a page sits in your site structure
  • VideoObject: thumbnail, duration and key moments for video content
  • Event, JobPosting, Recipe, SoftwareApplication: for sites built around those content types

The rule for choosing is simple: mark up what the page is mainly about, and only what visitors can see on the page. Then test it with Google Rich Results Test and the Schema Markup Validator.

One expectation to set early: schema makes a page eligible for richer search results. It does not guarantee them, and Google states that structured data manual actions don’t affect how a page ranks in web search.

What is schema markup, in plain English?

Think of schema markup as the nutrition label on a food package. The package design tells a shopper a lot, but the label states the facts in a standard format anyone can read quickly. Your web page is the package. Schema markup is the label, written for search engines.

Without it, Google reads “$29.99” on a page and has to infer whether that is a price, a discount or a shipping fee. With Product markup, you state it directly: this is the price, this is the currency, and the item is in stock.

Three terms get mixed up a lot, so here is how they relate:

Term What it means Example
Structured data Any standardized format for describing page content to machines The general idea of labeling data
Schema.org The shared vocabulary of types and properties, maintained as an open project Product, price, availability
Schema markup Structured data written using the schema.org vocabulary and added to a page A JSON-LD block describing one product

Formats: JSON-LD, Microdata and RDFa

Google accepts three formats. It recommends JSON-LD because it is the easiest to implement and maintain at scale.

Format How it works Best for
JSON-LD (recommended) A separate <script> block, usually in the page <head> Almost every site, including WordPress
Microdata Attributes added inside existing HTML tags Older themes and templates that already use it
RDFa Attributes added to HTML, common in some CMS and publishing setups Specific CMS and linked-data projects

For product and tech teams, JSON-LD has a practical advantage: it keeps the markup separate from the visible layout. Designers can change the page without breaking the structured data, as long as the facts stay the same.

Why schema matters: how it helps and what it means for the business

Schema earns its place when it changes how your result looks and how clearly search engines understand your brand. It is not a ranking shortcut. Here is where the value shows up.

  1. Eligibility for rich results. Star ratings, prices, stock status, breadcrumbs, video thumbnails and event dates all depend on structured data. A richer listing can take more space and answer a shopper’s first question before the click.
  2. Clearer entity signals. Organization markup connects your name, logo, website and social profiles. That helps Google show consistent brand details in knowledge panels and attribution.
  3. Cleaner product data. For ecommerce, Product markup on the page works alongside your Merchant Center feed. Consistent price and availability across both reduces mismatches.
  4. Measurable in Search Console. Once Google detects supported markup, Search Console shows rich result reports, so your SEO team can track valid items and errors over time.

Google has published case studies from sites that added structured data. These are self-reported results from specific sites, so treat them as examples of what is possible, not a forecast:

Site (per Google) Reported result
Rotten Tomatoes 25% higher click-through rate on pages with structured data
Food Network 35% increase in visits after enabling search features on 80% of pages
Nestlé 82% higher click-through rate on pages shown as rich results

Business outcomes to track by schema type

Schema type Search feature it can enable Business metric to watch
Product Price, availability, ratings, shipping and returns in results Product page CTR, add-to-cart rate from organic
LocalBusiness Hours, address and actions in the knowledge panel Calls, direction requests, bookings
Organization Logo and brand details in knowledge panels Branded search CTR, brand consistency
Article Richer article appearance with title and larger images Organic sessions, newsletter sign-ups
VideoObject Video thumbnails, key moments, live badges Video views from Search, time on page
JobPosting Listings inside Google’s job search experience Qualified applications, cost per hire
Event Event listings with dates and venues Ticket sales, registrations

What about AI Overviews, AI Mode and AEO?

This is where many schema guides overpromise. Google’s guide to optimizing for generative AI features lists “overfocusing on structured data” as a myth. It states that structured data isn’t required for generative AI search and there is no special schema.org markup to add. It also says structured data is still worth using as part of your SEO strategy because it supports rich result eligibility.

My take: use schema to describe your pages accurately, not as an AEO hack. The work that helps you get cited is still clear, original, well-structured content on crawlable pages.

Types of schema markup Google supports (2026)

Google structured data gallery lists 25 features, checked in September 2026. Schema.org has hundreds more types, and you can use them, but these are the ones tied to a visible feature in Google Search.

Business, brand and commerce

Feature Main schema.org type What it can show Typical user
Organization Organization Logo, legal name, address, contact details, identifiers Every company site
Local business LocalBusiness and subtypes Hours, ratings, directions, booking or order actions Clinics, restaurants, stores, service businesses
Product Product, Offer Price, availability, review ratings, shipping, returns Ecommerce and D2C brands
Review snippet Review, AggregateRating Star rating or review excerpt Product, recipe, software, book and local pages
Software app SoftwareApplication Ratings, description, link to the app SaaS and mobile apps
Vacation rental VacationRental Property details, location, ratings Rental platforms (check eligibility rules)

The Product feature covers more than one appearance. Google Rich Results Test checks merchant listings, product snippets, return policies, shipping policies and loyalty programs separately.

Content and publishing

Feature Main schema.org type What it can show Typical user
Article Article, BlogPosting, NewsArticle Title, images, date, author Blogs, news, content marketing
Breadcrumb BreadcrumbList Page position in the site hierarchy Any site with categories
Video VideoObject Thumbnail, duration, key moments, live badge Sites hosting video
Image metadata ImageObject Creator, license and credit in Google Images Photographers, stock libraries
Profile page ProfilePage Details about one person or organization Author pages, creator platforms
Speakable SpeakableSpecification Sections suitable for text-to-speech News publishers
Subscription and paywalled content isAccessibleForFree Tells Google content is paywalled, not cloaked Subscription publishers
Movie Movie Movie carousel with titles and images Film and review sites
Recipe Recipe Image, ratings, cook time, calories Food blogs, recipe sites
Carousel ItemList A gallery of items from one site Used with Recipe, Course list, Restaurant or Movie

Community, jobs, events and education

Feature Main schema.org type What it can show Typical user
Discussion forum DiscussionForumPosting Forum threads and replies Communities, forums
Q&A QAPage One question with user answers Q&A communities, support forums
Event Event Dates, venue, ticket details Venues, ticketing, conferences
Job posting JobPosting Listing in Google’s job search experience Careers pages, job boards
Employer aggregate rating EmployerAggregateRating Employer rating in job search Employer review sites
Course list Course A list of courses from one provider Edtech, universities
Education Q&A Quiz Flashcards for students Study and flashcard sites
Math solver MathSolver Step-by-step math help Math learning tools
Dataset Dataset Listing in Google Dataset Search Research bodies, open data portals

Schema types Google no longer shows as rich results

If you read an older schema guide, some of the types it recommends no longer produce a Google feature. The markup can stay on the page, but don’t expect a visual result from it.

Type Status Source
FAQ (FAQPage) Stopped appearing May 7, 2026; documentation removed June 2026 Google changelog
Practice problem Documentation removed January 2026 Google changelog
Book Actions, Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement, Vehicle Listing Phased out from mid-2025 Google Search Central blog, June 2025
HowTo Retired in 2023 Google Search Central announcement, 2023

Google’s June 2025 post notes that these changes don’t affect ranking, and that the types can still be used outside Google Search.

Which business should use which type of schema?

Start with the business model, then map schema to page templates, not to individual URLs. A template-level plan scales: one Product template can mark up 5,000 product pages.

Business type Key page templates Schema to prioritize Usually skip
D2C and ecommerce brand Home, category, product, blog Organization, Product with Offer, AggregateRating (real reviews only), shipping and return policy, BreadcrumbList LocalBusiness if you have no physical store
SaaS or tech startup Home, product or pricing, blog, careers Organization, SoftwareApplication, Article, VideoObject for demos, JobPosting Product markup on feature pages that aren’t sold as items
Local service business Home, location pages, services LocalBusiness subtype (for example Dentist, Restaurant, Plumber), Organization Star ratings from reviews about your own business (see below)
Multi-location retail or franchise Store locator, individual store pages One LocalBusiness per location page, Organization on the main site Putting every location’s markup on the homepage
Publisher or blog Articles, author pages, categories Article or BlogPosting, ProfilePage and Person for authors, BreadcrumbList Markup for content not visible on the page
Media and video creators Video pages, series pages VideoObject with key moments, Article for write-ups Video markup on pages where the video isn’t the main content
Events and ticketing Event pages, venue pages Event, Organization Events that are sales or coupons presented as events
Recruiters and HR teams Careers, job detail pages JobPosting, Organization Keeping expired jobs marked up
Edtech and course providers Course catalog, lessons Course (list), Quiz, MathSolver where relevant Course Info markup (retired)
Communities and support forums Threads, Q&A pages DiscussionForumPosting, QAPage FAQPage for user-generated questions
Recipe and food sites Recipe pages Recipe, VideoObject, ItemList for carousels Recipe markup on non-recipe content

One rule catches a lot of local and service businesses. Google review snippet documentation links to its guidelines on self-serving reviews for LocalBusiness and Organization: reviews you host about your own business aren’t eligible for star snippets. Your Google Business Profile is the better place for those reviews.

Which types of websites benefit most from schema.org markup?

Sites where Google has a matching feature and the query has commercial or practical intent tend to see the clearest benefit:

  • Ecommerce stores, because price, availability and ratings help shoppers compare before clicking
  • Local businesses, because hours, location and actions answer “near me” intent
  • Job boards and careers pages, because JobPosting feeds Google’s job search experience
  • Event, recipe and video sites, because each has a dedicated display

A B2B services site with mostly informational pages can still use Organization, Article and BreadcrumbList. The visible payoff will usually be smaller, so keep the effort in proportion.

How to choose the right schema: a 5-question framework

Run each page template through these questions, in order. If a template fails question 1 or 2, stop there.

  1. What is this page mainly about? Pick one primary type that matches the main content: a product, an article, a job, a location. Google’s guidelines ask you to include the main type that reflects the page’s focus.
  2. Is every fact I plan to mark up visible on the page? If the price, rating or author isn’t shown to visitors, don’t put it in the markup.
  3. Does Google have a feature for this type? If yes, follow that feature’s required and recommended properties. If no, the markup can still describe the page, but set expectations accordingly.
  4. What supporting types add context? Common pairs: Product + BreadcrumbList, Article + Person author, Recipe + VideoObject. Link related items with @id.
  5. Who keeps it accurate? Prices, stock, job status and event dates go stale. Assign an owner or generate the markup from the same data source as the page.

Worksheet for your team

Copy this into a spreadsheet and fill one row per template.

Page template Example URL Primary type Supporting types Required properties present? All facts visible? Tested in both tools? Owner
Product page /products/…            
Blog post /blog/…            
Location page /locations/…            

Worked example (hypothetical)

This is an illustrative example, not a real client. Imagine a D2C protein powder brand with a Shopify-style store, a blog and one flagship retail store.

Template Schema plan Why
Homepage Organization with logo, sameAs social links, contact point Establishes the brand entity once
Product page Product + Offer (price, currency, availability), AggregateRating from on-page reviews, shipping and return details, BreadcrumbList Supports merchant listing and product snippet eligibility
Collection page BreadcrumbList Product rich results are meant for individual product pages, not lists
Blog post BlogPosting with Person author, BreadcrumbList Clear authorship and site structure
Retail store page LocalBusiness subtype Store with address, hours, geo Matches the Business Profile listing
Old FAQ block on product pages Keep the visible FAQ for shoppers; FAQPage markup is optional FAQ rich results no longer appear in Google Search

Quick pre-launch checklist

  • ☐ One primary type per template, matched to the main content
  • ☐ All required properties from the Google feature guide are filled
  • ☐ Every marked-up fact is visible on the page
  • ☐ No duplicate markup from two plugins or a plugin plus theme
  • ☐ Prices, stock and dates pull from the live data source
  • ☐ Rich Results Test shows no errors for the Google feature
  • ☐ Schema Markup Validator shows no syntax or vocabulary errors
  • ☐ Search Console rich result reports checked after launch

How to add schema markup to a website

There are three common routes. Pick based on who owns the site and how custom your templates are.

Method How it works Good for Watch out for
SEO plugin (WordPress) Plugins such as Yoast SEO, Rank Math or AIOSEO output Organization, Article and BreadcrumbList automatically; WooCommerce adds product data Small teams, blogs, standard stores Two plugins outputting the same types; generic settings left unfilled
Template code (JSON-LD in the theme or app) Developers generate JSON-LD from the same data that renders the page Custom sites, headless builds, large catalogs Needs dev time and a test step in releases
Tag manager or JavaScript Markup injected after page load Quick pilots when theme access is limited Google can read JavaScript-generated structured data, but it adds a rendering dependency; test the rendered page

Step by step

  1. Map templates to types using the framework above.
  2. Read the Google feature guide for each type and list its required and recommended properties.
  3. Check what already exists. Paste a live URL into the Rich Results Test before adding anything. Many WordPress sites already output markup through the theme or an SEO plugin.
  4. Write or configure the JSON-LD. Keep one source of truth for each type.
  5. Test the code snippet, then test the live URL after publishing.
  6. Monitor Search Console rich result reports for errors and warnings.

Worked example: Restaurant schema in JSON-LD for a local service business

PERU FOOD in Oakland is used here for illustration. The street address, phone number, coordinates, hours and URLs are placeholders. This block would sit on the restaurant’s homepage or location page, and every value must match what the page and the Google Business Profile show.

Restaurant is a subtype of LocalBusiness. Google guidelines ask you to use the most specific type that fits, so a restaurant should use Restaurant rather than the generic LocalBusiness.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "@id": "https://www.example.com/#restaurant",
  "name": "PERU FOOD",
  "url": "https://www.example.com/",
  "image": "https://www.example.com/images/peru-food-lomo-saltado.jpg",
  "description": "Peruvian restaurant in Oakland serving ceviche, lomo saltado and pollo a la brasa.",
  "telephone": "+1-510-555-0142",
  "priceRange": "$$",
  "servesCuisine": "Peruvian",
  "menu": "https://www.example.com/menu/",
  "acceptsReservations": "True",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Example Street",
    "addressLocality": "Oakland",
    "addressRegion": "CA",
    "postalCode": "94612",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 37.8044,
    "longitude": -122.2712
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Sunday"],
      "opens": "11:30",
      "closes": "21:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Friday", "Saturday"],
      "opens": "11:30",
      "closes": "22:00"
    }
  ],
  "sameAs": [
    "https://www.instagram.com/example-peru-food"
  ]
}
</script>

 

What each part does:

  • @type: Restaurant: tells Google this is a restaurant, not just any local business
  • @id: a stable identifier so other markup on the site (menu or event pages) can point back to the same restaurant
  • name, address, telephone: the core business details, written exactly as on the Google Business Profile
  • geo: map coordinates for the location
  • openingHoursSpecification: open 11:30 a.m. to 9 p.m. Tuesday to Thursday and Sunday, and until 10 p.m. Friday and Saturday; Monday is left out because the restaurant is closed
  • servesCuisine, priceRange, menu, acceptsReservations: details diners check before choosing where to eat
  • sameAs: links the restaurant to its official social profiles

Why there are no star ratings in this example: Google treats reviews a business hosts about itself as self-serving, so they aren’t eligible for review snippets under LocalBusiness. PERU FOOD’s reviews belong on its Google Business Profile, where diners already look for them.

Keeping it accurate: Update the markup whenever hours change, especially holiday hours. Markup that says “open” when the Business Profile says “closed” sends mixed signals to Google and to diners.

On WordPress, a block like this usually goes on the homepage or the location page, added through a code snippets plugin or your SEO plugin’s local business settings. If your SEO plugin already outputs LocalBusiness or Organization, extend that output instead of adding a second one.

How to test schema markup: Rich Results Test vs Schema Markup Validator

Use both tools. They answer different questions.

 # Google Rich Results Test Schema Markup Validator
Question it answers Is this page eligible for a Google rich result? Is this valid schema.org markup?
Types covered Only Google-supported rich result types Any schema.org type
Input Live URL or code snippet Live URL or code snippet
Formats JSON-LD, Microdata, RDFa JSON-LD, Microdata, RDFa
Extras Crawl check, smartphone or desktop user agent, search preview for some types, shareable results for about 90 days Shows the full extracted structure, including types Google ignores
Best used for Launch checks on product, article, local, video and job pages Debugging nesting and vocabulary, and checking types outside Google’s gallery

Details above are from Google Rich Results Test help page.

A simple testing workflow

  1. Paste the code snippet into the Rich Results Test before publishing. Fix errors (missing required properties) first, then review warnings (missing recommended properties).
  2. Run the same snippet through the Schema Markup Validator to catch vocabulary or nesting issues.
  3. Publish, then test the live URL in the Rich Results Test. This confirms Google can crawl the page and see the rendered markup.
  4. Inspect the URL in Search Console and request indexing if the page is new.
  5. Check the rich result reports in Search Console over the following weeks.

Two practical notes from Google’s documentation. The Rich Results Test ignores comments inside JSON-LD, but the JSON-LD standard doesn’t support them, so remove comments before publishing. And a page that is blocked by robots.txt or noindex can’t be tested at all.

A valid result in either tool means the page is eligible, nothing more. Google does not guarantee that correct markup will produce a rich result.

Common schema mistakes (and how to fix them)

Most of these come straight from Google general structured data guidelines. Breaking the quality rules can lead to a manual action that removes rich result eligibility.

Mistake Why it’s a problem Fix
Marking up content visitors can’t see Google asks that marked-up content be visible on the page Only mark up facts shown on the page
Fake or self-serving reviews Can lead to a manual action Use genuine on-page reviews; keep business reviews on your Business Profile
Wrong type for the content Google’s example: a woodworking site labeling instructions as recipes Match the type to the page’s main purpose
Missing required properties Items without them aren’t eligible for rich results Follow each feature guide’s required list
Stale prices, stock or dates Google won’t show rich results for outdated time-sensitive content Generate markup from live data
Duplicate output from plugins and theme Conflicting values for the same item Keep one source per type; check with the Rich Results Test
Blocking pages with robots.txt or noindex Google can’t read the markup Keep marked-up pages crawlable and indexable
Treating schema as a ranking or AEO hack Google says no special markup is needed for AI features Use schema for accuracy, invest in content quality

Recent changes worth knowing

Date Change What to do
June 2026 Google removed FAQ rich result documentation Keep useful on-page FAQs; drop FAQ rich result tracking
May 2026 Google published its guide to optimizing for generative AI features, calling out “overfocusing on structured data” as a myth Don’t sell or buy schema as an AI visibility fix
May 7, 2026 FAQ rich results stopped appearing in Google Search Remove FAQ CTR targets from reports
January 2026 Practice problem documentation removed Edtech sites: review Quiz and Math solver instead
September 2025 Six retired types removed from Search Console reports and the Rich Results Test Clean up dashboards that tracked them
June 2025 Google announced it would phase out seven lesser-used types Stop building new markup for those features

Sources: Google Search Central documentation updates, Simplifying the search results page (June 2025)

FAQs about schema markup

1. What is schema markup in layman’s terms?

Schema markup is a label for search engines. It states facts about a page in a standard format, such as “this is a product, it costs $49.99, and it’s in stock,” so search engines don’t have to guess.

2. How many types of schema markup are there?

Schema.org lists 826 types. Google Search supports 25 structured data features in its gallery, and each feature uses one or more of those types. Most businesses need five to eight types in practice.

3. Does schema markup improve SEO rankings?

Not directly. Schema helps search engines understand a page and makes it eligible for rich results, which can improve click-through rate. Google notes that even a structured data manual action only removes rich result eligibility and doesn’t change how the page ranks.

4. What is the best schema for SEO?

There is no single best type. The best schema is the one that matches the page’s main content: Product for product pages, Article for blog posts, LocalBusiness for location pages. Organization and BreadcrumbList are useful on almost every site.

5. Is FAQ schema still worth adding in 2026?

Not for rich results. Google stopped showing FAQ rich results on May 7, 2026. A visible FAQ section can still help readers, and the markup can stay, but it won’t create an FAQ display in Google Search.

6. Does schema markup help with AI Overviews or ChatGPT?

Google says structured data isn’t required for its generative AI features and there is no special markup to add. Other AI assistants don’t publish clear rules on how they use schema. Accurate markup is still good practice, but content quality and crawlability matter more.

7. How do I add schema markup to my website?

On WordPress, start with your SEO plugin’s built-in schema settings, then add custom JSON-LD for types it doesn’t cover. On custom sites, generate JSON-LD in your page templates. Test with the Rich Results Test and the Schema Markup Validator before and after publishing.