SEO & Content

Schema Markup Explained: Structured Data That Earns Rich Results

What schema markup is, which structured data types actually matter for business websites, how to implement JSON-LD correctly and how to test it.

Illustration of a web page with labelled code blocks connecting to search result cards showing stars, prices and breadcrumbs

Search results are no longer just blue links. Product listings show prices and availability, articles show dates and images, and breadcrumbs replace long URLs. Much of that comes from structured data. This schema markup guide explains what schema is in plain terms, which types are worth implementing for a business website, how to add it with JSON-LD, and how to test it so it keeps working after every update.

What schema markup is

Schema markup is a standardized vocabulary, maintained at schema.org, that describes what the content on a page represents. Your HTML tells the browser how to display a product page. Schema tells search engines that the page is a Product with a specific name, price, currency and availability.

Search engines use that information in two ways:

  1. Understanding — connecting your pages to entities like your organization, your products and your authors.
  2. Rich results — enhanced listings that may show ratings, prices, breadcrumbs, event dates and more.

Structured data does not guarantee rich results, and Google states it is not a general ranking factor. It makes your pages eligible and easier to interpret, which is valuable in its own right.

The three formats, and which to use

Format How it works Recommendation
JSON-LD A separate <script type="application/ld+json"> block Preferred by Google; easiest to maintain
Microdata Attributes added inside your HTML elements Works, but couples data to layout
RDFa Attributes in HTML, similar to Microdata Rarely used on business sites today

For almost every modern site, use JSON-LD. It can be generated from your database in your templates, so it updates automatically when content changes.

Schema types that matter for business websites

You do not need to mark up everything. Start with the types that match your content and have clear benefits.

Organization and LocalBusiness

Add Organization markup on your home page with your legal name, logo, website URL, contact details and links to official social profiles using sameAs. If you serve customers at a physical location, use LocalBusiness or a more specific subtype (for example MedicalClinic or Store) with address, opening hours and geo-coordinates. This supports local SEO as well.

Breadcrumb markup describes a page's position in your site hierarchy. It is simple to generate from your navigation and helps search engines understand site structure.

Product and Offer

For e-commerce and product catalogues, Product markup with nested Offer data (price, currency, availability) and, where genuine, AggregateRating is one of the most valuable implementations. Keep price and stock in sync with your database. Stale prices in markup are a common source of errors.

Article and BlogPosting

For blog and news content, Article or BlogPosting markup with headline, author, publish and modified dates, and a representative image helps search engines understand freshness and authorship.

FAQPage, HowTo and others

FAQPage markup can be used on pages that genuinely contain questions and answers, though Google now shows FAQ rich results only for a limited set of sites. It can still help search engines understand page content. Other types such as Event, JobPosting, Course and VideoObject are worth adding where they match your content.

Key takeaway: Mark up what is actually on the page, starting with Organization, Breadcrumbs and your core content type. Accurate, automated markup beats extensive, hand-written markup that goes stale.

How to add schema markup: step by step

  1. Inventory your templates. List your page types: home, service, product, category, article, location, contact.
  2. Choose a schema type per template. Map each template to the most specific relevant type.
  3. Check required and recommended properties. Google's Search Central documentation lists them for each rich result type.
  4. Generate JSON-LD from your data. In a custom platform, build it in the template or a helper class from the same fields that render the page. On WordPress, a well-maintained SEO plugin may cover the basics.
  5. Connect entities with @id. Give your Organization a stable @id and reference it as the publisher of articles and the brand of products. This builds a consistent graph.
  6. Test before deploying. Use Google's Rich Results Test and the Schema Markup Validator on staging pages.
  7. Deploy and monitor. Check the Enhancements reports in Search Console for errors and warnings after release.

A simplified Product example looks like this:

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Industrial Voltage Stabilizer 10 kVA",
  "image": "https://example.com/images/stabilizer-10kva.jpg",
  "brand": { "@type": "Brand", "name": "Example Brand" },
  "offers": {
    "@type": "Offer",
    "price": "1450.00",
    "priceCurrency": "CAD",
    "availability": "https://schema.org/InStock"
  }
}

Schema markup guide: common mistakes to avoid

These are the issues we see most often during audits:

  • Markup that does not match the page. Ratings in schema that are not visible to users, or prices that differ from the displayed price.
  • Self-serving reviews. Marking up reviews of your own business on your own site has restricted eligibility for review rich results.
  • Duplicate, conflicting blocks. A theme, a plugin and a custom script each outputting their own Organization markup with different details.
  • Hard-coded values. Markup written once by hand and never updated as products, prices or authors change.
  • Wrong type. Using generic Thing or WebPage where a specific type exists.
  • Ignoring warnings. Missing recommended properties do not break markup, but they can reduce eligibility for enhanced features.

Choosing schema by business type

Different businesses get value from different combinations. As a starting point:

Business type Core schema types Notes
Corporate or professional services Organization, LocalBusiness, BreadcrumbList, Article Add Service where it describes clear offerings
Clinic or healthcare provider MedicalClinic or MedicalBusiness, Physician, BreadcrumbList Keep medical claims accurate and reviewed
Manufacturer or product catalogue Organization, Product, BreadcrumbList Offers only where prices are actually published
Online store or marketplace Product, Offer, AggregateRating, BreadcrumbList Sync price and stock automatically
Publisher or blog-heavy site Article or BlogPosting, Person (author), BreadcrumbList Use accurate published and modified dates
Recruiter or employer JobPosting, Organization Remove or expire postings when roles are filled

A manufacturer that does not publish prices, for example, should still use Product markup for names, images, brand and descriptions, but should not invent an Offer with a placeholder price just to satisfy a validator. Missing recommended properties produce warnings; fabricated data produces bigger problems.

Who should own structured data?

In many organizations, structured data falls between teams: marketing asks for it, developers implement it once, and nobody owns it afterwards. Assign a clear owner, usually the developer or team responsible for templates, with SEO input on which types and properties to support. Document the mapping between your content fields and schema properties so new team members can maintain it.

Schema in multilingual and multi-region sites

If your site runs in several languages, generate structured data in the language of each page. Product names, descriptions and article headlines should match the localized content. Use the correct currency for each regional version. Our guide to international SEO and hreflang covers the wider setup.

Maintaining structured data over time

Structured data is not a one-off task. Templates change, new content types are added and Google updates its supported features. Build these habits:

  • Include schema checks in your release checklist.
  • Review Search Console enhancement reports monthly.
  • Re-test key templates after design or CMS changes.
  • Remove markup for types Google no longer supports in rich results only if it adds no understanding value; otherwise leaving valid markup is harmless.

Next steps

Schema markup works best when it is generated from your real data rather than bolted on. DigiVort's engines, including Apex CMS and T-Rex Commerce, output structured data from content and product records so it stays accurate as your site grows. If you want your existing site reviewed or your templates upgraded, see our SEO and content services or start a conversation through the project wizard.

Frequently asked questions

Does schema markup improve rankings directly?

Google has said structured data is not a general ranking factor. Its value is in helping search engines understand your content and making pages eligible for rich results, which can make listings more noticeable. Treat it as a way to improve how you appear, not a shortcut to higher positions.

Which schema format should I use: JSON-LD, Microdata or RDFa?

Google recommends JSON-LD where possible. It sits in a script block separate from your visible HTML, so it is easier to generate from your CMS, maintain and test. Microdata and RDFa still work but tend to be harder to manage.

Why is my valid schema not producing rich results?

Valid markup only makes a page eligible. Google decides whether to show a rich result based on quality, relevance and its own policies, and some rich result types are limited to certain sites or have been reduced over time. Check that the markup matches visible content and follows Google's guidelines for that type.

Can schema markup get my site penalized?

Yes, if it is misleading. Marking up reviews that are not shown on the page, inventing ratings, or describing content that does not exist can lead to a manual action that removes rich results. Keep markup honest and consistent with what users see.

Do I need a plugin to add schema markup?

Not necessarily. Plugins help on WordPress, but on a custom platform it is usually cleaner to generate JSON-LD in your templates from your existing data. That way product prices, stock and article dates stay accurate automatically.