Schema markup (based on the Schema.org vocabulary) is special code on a site’s pages that tells search engines what exactly is on them: a product, an article, a review, an event, or a recipe. The markup doesn’t change what the user sees, but it helps Google, Bing, and Yandex understand the content more precisely and show a rich snippet with stars, a price, breadcrumbs, or answers. It’s most often implemented via JSON-LD in the page code.
Key points in 30 seconds
- Schema doesn’t raise rankings directly, but it improves how the snippet looks and increases CTR.
- The recommended format is JSON-LD: Google recommends it, and it’s easier to maintain than Microdata and RDFa.
- The markup type is chosen to fit the content: Product, Article, FAQPage, LocalBusiness, BreadcrumbList, and so on.
- After implementation, testing in the Rich Results Test and Schema Markup Validator is a must.
- Markup is part of technical SEO and gets checked as part of a site audit.
What Schema markup is in simple terms
Schema.org is a shared “vocabulary” of types and properties jointly supported by Google, Bing, Yahoo, and Yandex. With it, you label page elements with machine-readable tags: here’s the article headline, here’s the author, here’s the product price, and here’s the rating. The search engine stops guessing and gets the facts explicitly.
Markup can be written in three formats: JSON-LD (a separate block of code that doesn’t mix with the layout), Microdata and RDFa (attributes right inside the HTML tags). Google officially recommends JSON-LD: it’s easy to add and update, and it won’t break during a redesign.


Markup types by purpose
You don’t need to mark up everything: choose types that fit your pages and goals. Below are the main formats and what they give you in search results.
| Markup type | For which pages | What it gives in the SERP |
| Product / Offer | Product pages | Price, availability, rating |
| Article / NewsArticle | Articles, blog, news | A card in the news block, date, author |
| FAQPage | Pages with a Q&A block | Expandable questions (currently limited by Google) |
| BreadcrumbList | All internal pages | Breadcrumbs instead of a “bare” URL |
| LocalBusiness | Contacts, branches | Address, opening hours, data in Maps |
| Review / AggregateRating | Reviews and ratings | Rating stars |
| Organization | Home page, “About us” | Logo, knowledge panel, social profiles |
| Event / Recipe / VideoObject | Events, recipes, videos | Date, time, calories, video thumbnail |
What breadcrumbs are and why to mark them up
Breadcrumbs are a navigation trail like “Home → Blog → Schema markup”. BreadcrumbList markup replaces a long, unclear URL in the snippet with a neat path through sections. This improves click-through rate and at the same time strengthens internal linking; we cover how to distribute link equity across pages properly in a separate article.
In practice, breadcrumb markup is usually output by the CMS itself or an SEO plugin: in WordPress, Rank Math and Yoast can do it, you just need to enable the right option. Two things are worth checking. The trail in the code must match what the visitor sees on the page. And the last item must point to the current page, not the parent category.
Keep in mind that since 2025, Google shows only the domain instead of the path in mobile search results, while the trail is visible on desktop. That’s no reason to remove the markup: it still helps the search engine understand how the site is structured. Search Console will show errors for specific URLs in the Enhancements section.
Implementing with JSON-LD: code examples
JSON-LD is added to the page code inside a <script type=”application/ld+json”>tag in the <head> or before the closing </body>. Here’s a minimal example for an article:
| <script type=”application/ld+json”>{ “@context”: “https://schema.org”, “@type”: “Article”, “headline”: “Schema Markup: Why You Need It and How to Implement It”, “author”: { “@type”: “Person”, “name”: “Author Name” }, “datePublished”: “2026-01-15”, “image”: “https://site.com/img/schema.jpg”}</script> |
And this is how breadcrumbs are marked up:
| <script type=”application/ld+json”>{ “@context”: “https://schema.org”, “@type”: “BreadcrumbList”, “itemListElement”: [ { “@type”: “ListItem”, “position”: 1, “name”: “Home”, “item”: “https://site.com/” }, { “@type”: “ListItem”, “position”: 2, “name”: “Blog”, “item”: “https://site.com/blog/” }, { “@type”: “ListItem”, “position”: 3, “name”: “Schema markup” } ]}</script> |
Ways to implement it
- Manually in the template: the most reliable option for important types (Product, Article, LocalBusiness).
- CMS plugins: for WordPress, Yoast SEO or Rank Math; they generate basic markup automatically.
- Google Tag Manager: works, but isn’t a good choice for key markup: the code is loaded by a script and is harder to control.
- Online generators: handy for a one-off manual insert: fill in a form and get ready-made JSON-LD.
Testing with a validator
Never deploy markup without testing it: one syntax error and Google will ignore it. Use two tools and one report:
- Google Rich Results Test: shows which rich results are available for the page and whether there are errors.
- Schema Markup Validator (validator.schema.org): checks that the syntax is correct according to the Schema.org standard.
- Search Console → “Enhancements”: sitewide monitoring that shows markup errors across the whole site after indexing. How to set it up is covered in our article on Google Search Console.
The process is simple: paste the URL or code → check warnings and errors → fix them → test again.
Impact on the snippet and CTR
Markup on its own doesn’t move a site up. Google confirms this too. But a rich snippet takes up more space in the SERP, catches the eye, and raises click-through rate, and higher CTR in turn indirectly affects traffic. We explain in detail how search results are structured and what a snippet consists of in the article “Google search results: SERP, snippets, and position zero”.
Honestly about risks and limitations: a rich snippet is not guaranteed. Google decides on its own whether to show it and may ignore correct markup. Google cut back FAQ markup in 2023; it’s now shown only for authoritative sites. Faking non-existent rating stars or marking up content that isn’t on the page is not allowed: it gets you a manual action.
Markup is just one piece of technical SEO. Alongside it work robots.txt, the sitemap, and canonicals: if the basic technical setup has errors, nice snippets won’t save you. It’s easier to check everything together as part of a technical SEO audit.
Not sure the markup on your site is set up correctly, or which rich snippets you’re missing out on? Order a technical SEO audit: we’ll check Schema, indexing, and structure, find the errors, and give you a clear plan for fixing them. Get an audit cost estimate.