Schema markup — also called structured data — is a small block of code that tells search engines, in a precise, machine-readable way, what a page is about: this is a business, here is its address; this is a product, here is its price; this is an article, here is who published it. Visitors never see it. Search engines rely on it heavily.

Why it's worth the effort

Google describes structured data as a way of giving it "explicit clues about the meaning of a page", and it's what makes a page eligible for rich results — star ratings, prices, breadcrumbs and other enhanced listings. Google's own introduction cites case studies including Rotten Tomatoes measuring a 25% higher click-through rate on pages with structured data, and Nestlé measuring an 82% higher click-through rate on pages shown as rich results (Google Search Central).

One honest caveat: adding structured data makes a page eligible for rich results. It doesn't guarantee them, and it isn't a shortcut around having useful content.

JSON-LD: the format to use

There are three formats — JSON-LD, Microdata and RDFa. Google supports all three but recommends JSON-LD where your setup allows it, because it sits in its own script block instead of being woven through your HTML, which makes it far easier to maintain.

The five types most small businesses need

  • Organization — your business name, logo, website and social profiles (Google docs).
  • LocalBusiness (or a more specific subtype) — address, phone and opening hours, if customers can visit or you serve a defined area (Google docs).
  • BreadcrumbList — shows your site structure in search results instead of a raw URL (Google docs).
  • Product — price, availability and reviews for online stores (Google docs).
  • Article / BlogPosting — headline, publisher and dates for blog content (Google docs).

What it looks like

Here's a simplified LocalBusiness example. It goes inside a <script type="application/ld+json"> tag on the page:

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Example Studio",
  "url": "https://www.example.com/",
  "telephone": "+91-00000-00000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "12 Example Road",
    "addressLocality": "Mumbai",
    "postalCode": "400001",
    "addressCountry": "IN"
  }
}

The rules that get people in trouble

  • Only mark up what's visible on the page. Google's guidelines say not to add structured data about information users can't see — even if it's accurate (structured data general guidelines).
  • Never invent reviews or ratings. Self-serving or fabricated review markup is a fast route to a manual action.
  • Keep it consistent. Your business name, address and phone in schema should match your Google Business Profile exactly.
  • Complete beats exhaustive. Google explicitly says fewer, complete and accurate properties are better than lots of badly-formed ones.
Structured data doesn't make a weak page rank. It makes a good page easier for search engines to understand — and more attractive once it's in the results.

How to test it

Paste any URL into Google's Rich Results Test to see which structured data Google detects and whether it's eligible for rich results. After launch, Search Console's enhancement reports flag errors across the whole site. If you're new to the vocabulary itself, schema.org's getting-started guide is a good primer.

If you're on WordPress or Shopify

Most themes and SEO plugins add some structured data automatically — but "some" often means incomplete Organization data and nothing for LocalBusiness. It's worth testing a few key URLs rather than assuming it's handled.

Sources & further reading