SEO · Checklist

Schema Markup for B2B Websites: 9 Types Worth Adding (With Code to Copy)

Schema markup will not lift a weak page up the rankings. What it does is remove guesswork: it tells search engines and AI systems exactly who you are, what a page is and who stands behind it.

For a B2B website, that clarity is worth an afternoon of work. Most sites need only a handful of types, added once to each page template. The trouble is that advice online still recommends types Google no longer shows, so this list is current to November 2026 and says plainly which types earn a visible result and which only add clarity.

Use the finder below to see which types your page needs, copy the code for each, and tick the ones you already have.

The short answer

Most B2B websites need nine schema types at most: Organization, WebSite and BreadcrumbList across the site, Article and Person for content, Service for service pages, and LocalBusiness, VideoObject or SoftwareApplication only where a page fits them. Use JSON-LD, mark up only what visitors can see, and skip FAQ markup: Google stopped showing FAQ rich results on 7 May 2026.

Quick finder

Which schema does this page need?

Pick the kind of page you are working on. The types it needs are marked in the list below.

Choose a page type to see its list.

0 of 0 types in place

1. Organization

  • Core
  • Home or About page

Organization markup states the basic facts about your company: name, website, logo, profiles and contact details. Google says it helps it understand and tell your organization apart from others, and some properties can influence the logo shown in results and details in the knowledge panel.

No property is required, but the useful ones are name, url, logo (at least 112 by 112 pixels), description, sameAs links to your official profiles, and contact details. Put it on the home page or the About page, and keep the facts identical to what your pages and profiles say.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Ltd",
  "url": "https://www.example.com/",
  "logo": "https://www.example.com/images/logo-512.png",
  "description": "Industrial sensors and calibration services.",
  "sameAs": [
    "https://www.linkedin.com/company/example",
    "https://www.youtube.com/@example"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "sales",
    "email": "sales@example.com",
    "telephone": "+1-555-0100"
  }
}
</script>

2. WebSite

  • Core
  • Home page only

WebSite markup is the main signal Google reads to choose the site name shown in search results. It belongs on the home page of the domain or subdomain, not on inner pages, and it needs only a name and a URL. Add alternateName for shorter or older versions of your name, in order of preference.

One catch: the Rich Results Test does not check site names. Use the Schema Markup Validator instead.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Example",
  "alternateName": ["Example Ltd", "EX Sensors"],
  "url": "https://www.example.com/"
}
</script>

4. Article and BlogPosting

  • Core
  • Posts and case studies

Article markup, or its more specific form BlogPosting, tells Google who wrote a piece and when. Google's article documentation requires no properties but recommends a headline, images, the published and modified dates, and an author with a name and a URL that points to a page about that person.

Dates deserve care. Google's guidance on byline dates asks for a visible, labelled date that matches the markup, and no future dates. Change dateModified only when the content really changes.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "How to Choose a Calibration Partner",
  "image": ["https://www.example.com/images/calibration-16x9.jpg"],
  "datePublished": "2026-11-09T09:00:00+00:00",
  "dateModified": "2026-11-09T09:00:00+00:00",
  "author": [{
    "@type": "Person",
    "name": "Alex Morgan",
    "url": "https://www.example.com/team/alex-morgan/"
  }]
}
</script>

5. LocalBusiness

  • Only if it fits
  • Only with a real address

LocalBusiness markup describes a physical place of business. Google's local business guidelines require a name and the address of that location, and recommend a phone number, URL and opening hours. If you have several offices, give each one its own page and its own markup.

Two cautions. First, use it only for an address people can visit or that you actually work from. Second, do not default to the old ProfessionalService type: schema.org now flags it as deprecated because it was confused with Service. Plain LocalBusiness, or a specific subtype that truly fits, is safer.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Example Ltd, Springfield office",
  "url": "https://www.example.com/locations/springfield/",
  "telephone": "+1-555-0100",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1 Example Street",
    "addressLocality": "Springfield",
    "postalCode": "00000",
    "addressCountry": "US"
  },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "09:00",
    "closes": "17:30"
  }]
}
</script>

6. Service

  • Core
  • Service pages

Google has no rich result for the Service type, and we would rather say so than pretend otherwise. We still add it to every service page, because it states your offer in terms no system has to guess: what the service is, who provides it and where it is available.

Keep it honest and close to the visible copy. If the page says you serve clients worldwide, say the same in areaServed. If it names a specific region, use that.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "Sensor calibration",
  "serviceType": "Calibration service",
  "description": "On-site and lab calibration for pressure and temperature sensors.",
  "url": "https://www.example.com/services/calibration/",
  "provider": {
    "@type": "Organization",
    "name": "Example Ltd",
    "url": "https://www.example.com/"
  },
  "areaServed": "Worldwide"
}
</script>

7. VideoObject

  • Only if it fits
  • Pages with a video

If you publish product demos, webinar recordings or lab tours, VideoObject helps Google find and present them. Its video guidelines require three properties: a name, a thumbnail URL and an upload date. A description, the duration and a content or embed URL are recommended.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "Calibration lab tour",
  "description": "A four-minute walk through our calibration lab.",
  "thumbnailUrl": ["https://www.example.com/video/lab-tour-thumb.jpg"],
  "uploadDate": "2026-10-20T08:00:00+00:00",
  "duration": "PT4M12S",
  "contentUrl": "https://www.example.com/video/lab-tour.mp4"
}
</script>

8. SoftwareApplication

  • Only if it fits
  • Software and SaaS pages

For SaaS and other software products, SoftwareApplication can show a rating and price in results. The bar is higher than for other types: Google's software app guidelines require a name, a price (0 if free) and a rating or review. Only use it when real ratings from real users appear on the page.

The values below are placeholders. Replace every one with your own.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Example Monitor",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": { "@type": "Offer", "price": "49.00", "priceCurrency": "USD" },
  "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.6", "ratingCount": "120" }
}
</script>

9. Person

  • Core
  • Author and team pages

Article markup recommends an author with a URL. That URL should land on a real page about the person, and Person markup on that page completes the link: name, role, employer and official profiles. There is no rich result for it. The value is that your authors' expertise is stated once, clearly, and connected to everything they write.

JSON-LD
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Alex Morgan",
  "jobTitle": "Head of Engineering",
  "url": "https://www.example.com/team/alex-morgan/",
  "worksFor": {
    "@type": "Organization",
    "name": "Example Ltd",
    "url": "https://www.example.com/"
  },
  "sameAs": ["https://www.linkedin.com/in/example"]
}
</script>

Types to Skip, or Stop Expecting Results From

Plenty of schema advice online is out of date. These are the types worth leaving off your list, or keeping without expecting a rich result.

FAQPage
Google stopped showing FAQ rich results on 7 May 2026 and removed the documentation the following month. Existing markup does no harm, but adding it now earns nothing in Google.
HowTo
HowTo rich results were withdrawn in 2023, at the same time FAQ results were limited.
Review stars about yourself
Testimonials on your own site are self-serving reviews: pages with LocalBusiness or Organization markup are not eligible for review stars, even when the reviews come from an embedded widget.
Event, for online-only webinars
Google's event guidelines now cover events at a physical location only, so a purely virtual webinar does not qualify.
Retired types
Google phased out several rich results in 2025, including Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement and Vehicle Listing.

How to Add and Test Your Markup

  1. Use JSON-LD. Google marks it as the recommended format, because a script block is easier to maintain than tags woven through your HTML.
  2. Generate it from your page data. Build markup into each template from the same fields the page displays, so the two can never disagree.
  3. Mark up only what people can see. Google's general guidelines rule out describing content that is hidden from readers.
  4. Test before and after release. Use the Rich Results Test for types with rich results and the Schema Markup Validator for everything else.
  5. Watch Search Console. Its enhancement reports flag errors across the whole site, not just the pages you tested.

Straight answers

Frequently Asked Questions

Does schema markup improve rankings?

Not directly. Google uses structured data to understand a page and to show some rich results, such as a logo, breadcrumbs or video details. It helps your existing pages get read and presented correctly; it does not make a weak page rank.

Which format should I use for schema markup?

JSON-LD. Google marks it as the recommended format because a single script block is easier to maintain than markup spread through your HTML. Build it into each page template from the same data the page displays.

Do FAQ rich results still appear in Google?

No. Google stopped showing FAQ rich results on 7 May 2026 and removed the documentation in June 2026. FAQ markup you already have does no harm, but adding it now brings no rich result in Google.

How do I test my structured data?

Use the Rich Results Test for types that can show a rich result, and the Schema Markup Validator for everything else, including the WebSite markup behind site names. After release, watch the enhancement reports in Search Console.

Can I mark up my own testimonials to get review stars?

No. Reviews that a business shows about itself are self-serving, so pages with LocalBusiness or Organization markup are not eligible for review stars, even when the reviews come from an embedded widget.

Final Thoughts

Good schema is boring in the right way: the same facts, in the same words, on every page and every profile. Start with Organization, WebSite and BreadcrumbList, add Article and Person to your content, then add the conditional types only where a page genuinely fits them.

Structured data is also part of being understood by AI search. If that is your next question, read our guides on answer engine optimization and how to rank in Google AI Overviews. Running more than one language? Keep the markup consistent across versions with our international SEO checklist.

Related service B2B SEO services is where we put this to work for clients.

Let's Talk Possibilities.

Whether you're scaling your brand, launching a new product, or reimagining your digital presence: we're here to listen, think, and build with you.

Drop Your Enquiry
Get a Free Quote

Get a quote

Let's Talk Possibilities.

Share a few details and we'll reply within one business day, with a free mini-audit and honest next steps.

Add detail for a sharper reply optional
  • A senior strategist replies within one working day
  • Your details stay private
  • No obligation