What Is Structured Data? Schema Markup and JSON-LD Explained
What is structured data?
Structured data is code added to a page that describes its content in a standard format search engines can read, for example stating that a page is a product with a given price and rating. It uses the schema.org vocabulary, and Google recommends the JSON-LD format. Correct markup can make a page eligible for rich results, but eligibility does not mean they will appear.
Vocabulary and formats
Two ideas are often confused. Schema.org is the shared vocabulary of types and properties, such as Product, price and author. It was launched in 2011 by Google, Microsoft, Yahoo and Yandex. A format is the syntax used to add that vocabulary to a page.
| Format | How it is added | Notes |
|---|---|---|
| JSON-LD | A separate script block in the page | Recommended by Google; easiest to write and maintain |
| Microdata | Attributes added to existing HTML elements | Supported, but mixes markup with layout |
| RDFa | Attributes added to HTML elements | Supported; more common outside search use cases |
JSON-LD is popular because it keeps the data separate from the visible HTML. A developer can update the markup without touching the page layout, and a CMS can generate it from the same database fields that fill the page. Microdata and RDFa still work, but they are easier to break during a redesign because the markup lives inside the design elements.
A JSON-LD example
This markup describes a fictional sweet shop in Jaipur. It would sit on the shop's contact or home page, where the same details are visible to visitors.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Bakery",
"name": "Sharma Sweets and Bakery",
"url": "https://www.example.com/",
"telephone": "+91-141-0000000",
"address": {
"@type": "PostalAddress",
"streetAddress": "22 Johari Bazaar",
"addressLocality": "Jaipur",
"addressRegion": "Rajasthan",
"postalCode": "302003",
"addressCountry": "IN"
},
"openingHours": "Mo-Su 08:00-22:00",
"image": "https://www.example.com/images/shopfront.jpg"
}
</script>@contexttells parsers the vocabulary is schema.org.@typepicks the most specific type;Bakeryis a subtype ofLocalBusiness.- Nested types such as
PostalAddressdescribe parts of the entity.
This kind of markup supports local search work but does not replace a Google Business Profile.
Rich results in 2026
Google supports only some schema.org types for rich results, and the list changes. Several features have been retired or restricted in recent years, so check Google's Search Gallery documentation before adding markup for visual results.
| Markup type | Current status in Google Search |
|---|---|
| Product, including merchant listings and review snippets | Supported |
| Article | Supported; helps Google understand headline, images and dates |
| Breadcrumb | Supported; shown where Google displays breadcrumb paths |
| Event, Recipe, Video | Supported, with type-specific requirements |
| LocalBusiness and Organization | Supported for business details and logo information |
| FAQ (FAQPage) | Since 2023, rich results limited to well-known, authoritative government and health websites |
| HowTo | Deprecated; no longer shown as rich results |
Rules Google enforces
- Match visible content. Markup must describe what users can see on the page. Marking up a 4.8 rating that appears nowhere on the page is misleading.
- Include required properties listed in Google's documentation for each feature.
- Mark up the main content, not unrelated items or content hidden from users.
- No self-serving reviews. Reviews a business writes or hosts about itself are not eligible for review stars on
LocalBusinessorOrganization. - Keep it current. Update prices, availability and event dates when they change.
- Follow content policies. Pages with markup must also meet Google's general spam and content policies; markup cannot make a low-quality page eligible.
Markup that breaks these rules can trigger a structured data manual action, which removes rich result eligibility.
Adding structured data to a site
- Choose the type that matches the page's main purpose.
- Read Google's documentation for that feature and note the required and recommended properties.
- Write the JSON-LD in a
<script type="application/ld+json">block in the head or body. - On a CMS, use templates so markup is generated from the same fields that display on the page. On WordPress sites, SEO plugins can handle common types.
- Validate the markup, then request indexing for key pages.
Testing and monitoring
- Rich Results Test: checks whether a page is eligible for Google rich results and shows errors and warnings.
- Schema Markup Validator: checks any schema.org markup, including types Google does not use for rich results.
- Search Console reports: show valid and invalid items for each supported feature across the whole site.
- URL Inspection: confirms which structured data Google detected on the indexed version.
Why structured data matters beyond rich results
Even when no visual enhancement appears, markup states facts about entities clearly: who published a page, which organisation runs a site and how pages relate. That supports the entity understanding described in the semantic SEO guide. Writing and testing JSON-LD for real pages is one of the practical projects in SkillNewton's online SEO classes.
Common mistakes
- Marking up ratings, prices or FAQs that do not appear on the visible page.
- Expecting FAQ or HowTo rich results on an ordinary business website in 2026.
- Copying markup from another site without changing names, URLs and addresses.
- Using a generic type such as
Thingwhen a specific type exists. - Validating once and never checking Search Console reports again after site changes.
Frequently asked questions
Is structured data a ranking factor?
Google has said structured data is not a general ranking factor. It helps Google understand pages and can make them eligible for rich results, which may affect how many people click.
Should I remove existing FAQPage markup?
You do not need to. Valid FAQPage markup causes no harm and other systems may read it, but most sites should not expect it to produce a rich result in Google.
Can I combine several types on one page?
Yes, as long as each type describes content on that page. An article page can carry Article and BreadcrumbList markup together.
Why is my valid markup not showing a rich result?
Eligibility is only the first step. Google decides whether to show a rich result based on the query, device, page quality and other factors.