Skip to content
MrKeyword
Technical SEO

Schema markup for beginners: what JSON-LD is, with copy-ready examples

Schema markup tells search engines what a page is about in a shared vocabulary. Use this guide to choose the right types, copy working JSON-LD and avoid the errors that stop rich results.

A search analytics dashboard with charts on a screen
The short version
  • Schema markup is code that describes a page in the schema.org vocabulary, so search engines can read facts like a product's price or an article's author.
  • Google reads JSON-LD, Microdata and RDFa, and recommends JSON-LD because it sits in one script block.
  • Article, Product, LocalBusiness, BreadcrumbList, Organization, Event, Recipe and VideoObject can still earn rich results. FAQ rich results are limited and HowTo was removed.
  • Structured data is not a ranking factor and does not guarantee a rich result; it makes a page eligible.
  • Build markup with the free schema generator, then check the live page with the schema validator.

What is schema markup?

Schema markup, also called structured data, is code that describes the things on a page, such as a business, an article or a product, in a vocabulary search engines share.

The vocabulary comes from schema.org, a project started by Google, Microsoft, Yahoo and Yandex. It defines types such as Organization, Article and Product, and properties such as name, author and price.

A visitor reads "Blue Trail Running Shoe, $89.99, in stock". Structured data states the same facts in a fixed format, so a crawler does not have to guess which number is the price. Google uses it to understand the page and, for some types, to show a rich result such as a product price or a breadcrumb trail. See Google's introduction to structured data.

JSON-LD vs Microdata vs RDFa

Google supports all three formats and recommends JSON-LD, because it lives in one script block instead of being woven through the HTML.

Structured data formats compared

FormatWhere it goesGood to know
JSON-LDA <script type="application/ld+json"> block in the head or bodyRecommended by Google. Easy to add from a template, CMS field or tag manager without touching the visible HTML.
Microdataitemscope, itemtype and itemprop attributes on visible HTML elementsSupported, but markup breaks when the page design changes.
RDFavocab, typeof and property attributes on visible HTML elementsSupported; mostly seen in older CMS themes.

Every example below is JSON-LD. Put each one inside a script tag like this:

<script type="application/ld+json">
{ ...the JSON object... }
</script>

Which schema types still earn rich results in 2026?

Article, Product, LocalBusiness, BreadcrumbList, Organization, Event, Recipe and VideoObject can still earn rich results; FAQ is limited and HowTo was removed.

Common schema types and their Google rich results

TypeRich resultNeeds
Article / BlogPostingHeadline, image, date and byline in results and Top storiesheadline, image, datePublished and author are recommended
ProductPrice, availability and review starsname plus offers (price and currency), review or aggregateRating that match the page
LocalBusinessBusiness details such as address, hours and phonename and address that match the contact page
BreadcrumbListBreadcrumb trail instead of the bare URLitemListElement with position, name and item
OrganizationLogo and company details in knowledge panelsname, url and logo; sameAs for official profiles
EventDate, venue and ticket detailsname, startDate and location
RecipeImage, rating and cooking timename and image
VideoObjectVideo thumbnail, duration and key momentsname, thumbnailUrl and uploadDate
FAQPageLimitedSince August 2023, FAQ rich results show only for well-known, authoritative government and health sites
HowToRemovedGoogle stopped showing HowTo rich results in 2023

FAQPage and HowTo markup is still valid schema.org and does no harm, but most sites should not expect the old dropdowns or step lists. Google lists every current feature in its search gallery; check it before you build markup for a feature you remember from a few years ago.

Copy-ready JSON-LD examples

Start from these four examples, replace every example.com value with your real details, and keep each fact identical to what visitors see on the page.

Organization

Add this once, usually on the home page or about page. Use absolute URLs for the logo and list only profiles you control in sameAs.

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

Article

Use Article or BlogPosting on a blog post or news story. Dates use ISO 8601 format, and the author should be the person named on the page.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Choose Trail Running Shoes",
  "image": ["https://example.com/images/trail-shoes.jpg"],
  "datePublished": "2026-10-01T08:00:00+00:00",
  "dateModified": "2026-10-15T09:30:00+00:00",
  "author": {
    "@type": "Person",
    "name": "Jane Doe",
    "url": "https://example.com/authors/jane-doe"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Company",
    "logo": "https://example.com/images/logo.png"
  }
}

BreadcrumbList

List each level of the path in order. The last item is the current page; Google lets you leave out its item URL.

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
    { "@type": "ListItem", "position": 2, "name": "Running Shoes", "item": "https://example.com/running-shoes/" },
    { "@type": "ListItem", "position": 3, "name": "Blue Trail Running Shoe" }
  ]
}

Product

Price, currency and availability must match the product page. Only add aggregateRating when the page shows real customer reviews with that rating and count.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Blue Trail Running Shoe",
  "image": ["https://example.com/images/blue-trail-shoe.jpg"],
  "description": "A lightweight trail running shoe with a grippy outsole.",
  "sku": "BTRS-42",
  "brand": { "@type": "Brand", "name": "Example Company" },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/running-shoes/blue-trail",
    "price": "89.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "128"
  }
}

Need a different type, such as LocalBusiness or FAQPage? The schema markup generator builds it from a simple form.

Does schema markup help with AI answers?

Schema markup can make your entities clearer to AI systems, but no AI assistant promises to cite a page because it has structured data.

Clear Organization, Person and Product markup states who you are, who wrote a page and what you sell in a form machines read without guessing. That supports the same understanding that Google's AI Overviews, ChatGPT and Perplexity rely on, alongside the visible text, links and mentions on other sites.

Treat it as one signal among many. The page still has to answer the question well and be crawlable by the AI bots you want. Our guide on how to get cited in AI Overviews covers the rest.

Common schema markup errors

Most schema problems come from missing required fields, markup that does not match the visible page, relative URLs and duplicated blocks.

Schema markup troubleshooting

ErrorWhat happensFix
Missing required fieldA Product without offers, review or aggregateRating, or a LocalBusiness without an address, is not eligible for its rich result.Add every required property listed in Google's documentation for that feature.
Markup does not match the pageA price, rating or FAQ answer that visitors cannot see breaks Google's structured data guidelines and can lead to a manual action.Generate markup from the same data that renders the page, so both always agree.
Relative image or page URLs/images/logo.png may be read wrongly or ignored.Use absolute URLs such as https://example.com/images/logo.png.
Duplicate Organization blocksA theme, an SEO plugin and a custom snippet each output Organization, often with different names or logos.Keep one Organization block and remove or disable the others.
Invalid JSONA trailing comma or a curly quote breaks the whole script block.Paste the JSON into a validator before publishing; use straight quotes only.

How to test your schema markup

Generate the JSON-LD, publish it, then check the live page with a validator and Google's Rich Results Test.

  1. Build the markup

    Use the free schema markup generator to create JSON-LD for Organization, Article, LocalBusiness, BreadcrumbList, Product or FAQPage from a form.

  2. Validate the live page

    Paste the published URL into the schema markup validator. It reads every JSON-LD block, flags missing fields and shows each type's current Google rich result status.

  3. Confirm with Google

    Run important pages through Google's Rich Results Test, then watch the enhancement reports in Search Console for errors across the site.

  4. Check the rest of the page

    Schema is one item on the on-page SEO checklist; titles, headings and internal links still matter more for rankings.

Questions and answers

Schema markup questions

What is schema markup?

Schema markup, or structured data, is code that describes a page in the schema.org vocabulary, such as a business's name and address, an article's author and dates, or a product's price. Google recommends adding it as JSON-LD.

Is schema markup a ranking factor?

No. Structured data helps Google understand a page and can make it eligible for rich results, which can earn more clicks, but valid markup does not move a page up the results on its own.

What is the difference between schema markup and structured data?

Structured data is any machine-readable description of a page. Schema markup is structured data that uses the schema.org vocabulary, which is what Google, Bing and other search engines read.

Should I use JSON-LD or Microdata?

Use JSON-LD. Google supports JSON-LD, Microdata and RDFa, and recommends JSON-LD because it sits in one script block that is easier to add and maintain.

Do FAQ rich results still work?

Only for some sites. Since August 2023, Google shows FAQ rich results only for well-known, authoritative government and health websites. Google also removed HowTo rich results in 2023.

How do I check my schema markup?

Paste a page URL into a schema validator to read every JSON-LD block and spot missing fields, then confirm important pages in Google's Rich Results Test.

About this article

Written by the MrKeyword team, who build an SEO workspace on first-party Search Console and Bing data. Outside facts link to their original source below. We update this page when the product or the sources change.

Sources

  1. Introduction to structured data — Google Search Central: what structured data is, supported formats and why JSON-LD is recommended
  2. Structured data search gallery — Google Search Central: every rich result feature Google currently supports
  3. Schema.org — The shared vocabulary of types and properties used in schema markup
Keep reading

More on technical SEO, plus the feature and free tool for the same job. All technical SEO guides →

Generate your schema markup, then validate it.

Build JSON-LD with the free schema markup generator, publish it, and check the live page with the schema markup validator. Free plan for one website, no card; paid plans from $10 a month.