Structured data guide

What is schema markup?

Schema markup is structured data you add to your HTML that tells search engines what your content means, not just what it says. It uses a shared vocabulary from Schema.org so Google, Bing, and AI answer engines can classify your page as an article, a product, a business, a recipe, or dozens of other types without guessing. Without it, search engines infer meaning from your text alone. With it, they read your intent directly.

Schema markup for a website: what it actually does

When you add schema markup to a website page, you are publishing two documents at once: the HTML your visitors read, and a machine-readable layer that classifies what the page contains. Google's structured data documentation describes this layer as data that helps Google understand content more precisely and enables rich results in search.

In practice, schema markup is what triggers the enhancements you see in Google search results: star ratings beside a product listing, a recipe card with cook time and calories, an FAQ accordion under a result, event dates for a concert page. These rich results appear when Google reads your schema markup, validates it against the Schema.org specification, and decides it is accurate enough to surface. A page without schema markup cannot earn these formats.

For a business owner: schema markup is the difference between Google reading your homepage and saying "this appears to be a business" versus reading it and knowing exactly that it is a local plumbing company at a specific address with specific hours. The more precise the signal, the more precisely Google can match your page to the searches that describe it.

How to add schema markup to your website

The most common format is JSON-LD, a block of structured data placed in a <script type="application/ld+json"> tag inside your HTML <head>. Google recommends JSON-LD because it sits separately from your visible content, which makes it easy to add and update without changing what visitors see.

A minimal example for a local business looks like this:

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Example Plumbing",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701"
  },
  "telephone": "+1-512-555-0100"
}

The @context field tells Google you are using the Schema.org vocabulary. The @type field classifies the entity. Everything else describes its properties. Every property name used must appear in the Schema.org specification for that type; using an unrecognized property does not break the page, but Google ignores the unrecognized field.

For CMS platforms such as WordPress, plugins like Yoast SEO or Rank Math generate JSON-LD automatically based on what you fill in for each post or page. For hand-coded HTML, you write the block yourself and paste it into the page head. Either way, the output is the same JSON-LD block that Google reads when it crawls the page.

Schema markup and SEO: what the evidence shows

Schema markup is not a direct ranking signal. Google's documentation states that structured data helps Google understand content and can enable rich results, not that it pushes a page higher in organic rankings. The SEO value comes from two indirect paths.

First, rich results increase click-through rate. A product listing with star ratings and price visible before the click earns more clicks than the same listing with a plain blue link. Higher click-through at the same position signals to Google that users prefer your result, which over time can lift position.

Second, entity clarity. Schema markup that identifies the same organization across multiple pages using a consistent @id reference helps Google build an accurate entity graph for your site. A business whose name, address, and URL are stated consistently in Organization schema across every page is harder for Google to confuse with a different entity of the same name. This matters more as AI search engines rely on entity graphs to decide what to cite.

The risk of missing schema is concrete and observable in Search Console: pages with broken or absent structured data simply do not appear in the rich results section, even when the underlying content would qualify. Our guide to fixing missing structured data covers the specific errors that prevent pages from qualifying for rich results and how to correct each one.

What breaks schema markup

The most common errors we find on sites that have attempted to add schema markup:

  • Required properties missing. Each Schema.org type has required and recommended properties. An Article without a headline and author fails Google's validation. A Product without name and offers cannot earn a rich result. Google's Rich Results Test lists every missing required property by name.
  • Schema type mismatch. A page typed as Article whose content is a product listing, or a page typed as FAQPage that does not contain actual question-and-answer pairs. Google's documentation states it may penalize misleading structured data.
  • JSON-LD syntax errors. Missing commas, unclosed braces, unescaped quotes inside string values. The JSON block becomes unparseable and Google ignores the entire block silently.
  • Markup that contradicts visible content. A rating in structured data that does not appear anywhere on the page, or a price in schema that differs from the price shown to users. Google cross-checks schema claims against visible content and ignores mismatches.
  • Duplicate conflicting blocks. Two JSON-LD blocks on the same page declaring different values for the same entity type. Google reads both but must choose which to trust; often it discards both.

An AuditLamp scan checks for these patterns across your site and flags which pages have missing required properties, type mismatches, or syntax errors in their structured data blocks.

Schema markup for website pages: which types matter most

The types with the clearest documented path to rich results and the most consistent value for most sites:

  • Organization / LocalBusiness on the homepage and about page. Establishes your entity identity for Google's knowledge graph. LocalBusiness adds address, hours, and phone for map and business panel eligibility.
  • Article / BlogPosting on editorial content. Required for Top Stories eligibility. Recommended properties include headline, datePublished, dateModified, author, and image.
  • BreadcrumbList on every page with a navigation path. Replaces raw URLs with readable breadcrumbs in search results. Applies to nearly every page on a structured site.
  • FAQPage on pages that contain genuine Q&A content. As of 2023, Google limited FAQ rich results to authoritative government and health sites in most queries. For most sites, accurate FAQPage schema is still correct but no longer guarantees the visual enhancement.
  • Product and Review on e-commerce product pages. Review schema requires actual reviewer data; Google's documentation explicitly bans self-serving reviews (a business reviewing its own products).

Adding schema markup to a website page type that is not listed in the Schema.org specification does not cause an error, but it produces no rich result. The correct schema type is the one that most accurately describes the page's content.

Check your schema markup now.

Paste your URL. We fetch the page, parse every JSON-LD block, validate required properties against the Schema.org specification, and flag each error. The preview is free.