Skip to content

Test your website now

Free, no card. We read only public pages.

Run free audit →

Technical SEO

What is schema markup, and how do you add it to a website?

Schema markup is structured data that describes your page to search engines in a fixed vocabulary. Which types matter, how to add JSON-LD, and how to test it.

Schema markup is structured data, usually written as JSON-LD in a script tag, that describes what a page is about using the schema.org vocabulary: an organization, a product, an article, a recipe. Google uses it to understand pages and to show rich results. Add types that match your real content and test them with Google's Rich Results Test.

Published · Last updated

By Michal Měřínský. Audit methodology.

What schema markup is

Search engines read your page as text. Schema markup adds a machine-readable description alongside it, in a shared vocabulary from schema.org. Google recommends the JSON-LD format, a script block that does not touch your visible HTML:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Ltd",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png"
}
</script>

What it does for you

  • Rich results. Some types make you eligible for enhanced search results, such as product prices and ratings, recipe details, event dates or breadcrumbs.
  • Clearer entities. Organization and WebSite markup on the homepage help Google connect your name, logo and site.
  • Better understanding by other systems. Structured data is easy for any machine to read, including AI tools that summarize pages. It does not boost rankings by itself, and eligibility does not guarantee a rich result. Google decides per query.

Which types to start with

  • Organization or WebSite on the homepage.
  • BreadcrumbList on pages deep in a hierarchy.
  • Article, or TechArticle, on blog posts and guides.
  • Product, with offers, on product pages.
  • SoftwareApplication for an app's landing page.
  • LocalBusiness for a business with a physical location. Google's documentation lists which types and properties qualify for rich results. Types outside that list are still valid schema.org, but produce no special display.

Mark up only what is visible and true on the page. Google treats markup describing content that is not there as spam and can apply a manual action.

How to add and test it

Write one JSON-LD block per entity, or combine them in an @graph array. Most frameworks let you render it in the page head on the server. Then test:

  • The Rich Results Test shows which rich results a page is eligible for and any errors.
  • The Schema Markup Validator checks general schema.org validity.
  • Search Console's Enhancements reports show errors across the whole site after Google crawls it.

Common mistakes

  • Invalid JSON, such as a trailing comma or an unescaped quote, which makes the whole block unreadable.
  • Markup copied from another site with their name and URL still inside.
  • Ratings or prices in the markup that are not shown on the page.
  • Structured data added by JavaScript that some consumers never execute.

What a scan can and cannot tell you

WebAuditOS checks whether any crawled page has JSON-LD that parses, fails pages whose JSON-LD blocks are invalid JSON, and checks the homepage for Organization, WebSite or LocalBusiness markup.

It does not validate schema.org meaning, required properties for rich results, or whether the markup matches the visible content. It also does not read microdata or RDFa, or JSON-LD inserted only by JavaScript. Use Google's Rich Results Test for eligibility.

Valid JSON is the floor, not the goal. A parseable block with the wrong type or missing properties earns nothing.

Short answers

Is schema markup a ranking factor? No. It helps understanding and eligibility for rich results.

JSON-LD, microdata or RDFa? Google supports all three and recommends JSON-LD.

Do I need it on every page? Start with the homepage and your main page types.

Why is my rich result not showing? Eligibility is not a guarantee. Google chooses per query and per site quality.

In the product

The checks this maps to

Every check named here runs on every scan, on every plan - what a plan changes is how many pages are crawled, how long the history is kept and what you can do with the result. These are the ids the findings carry, so you can match a line in a report to the explanation above.