Skip to content
Back to all articles
SEO6 min readSeptember 30, 2026

Structured Data for Beginners: How to Earn Rich Results in Google

What structured data is, which rich results Google still shows, how to write JSON-LD that passes, and the mistakes that quietly make pages ineligible.

Structured Data for Beginners: How to Earn Rich Results in Google article
In this guide
  1. What structured data actually is
  2. Which rich results are worth your time
  3. Required vs recommended properties
  4. How to check your markup before Google does
  5. Writing markup without writing code
  6. The mistakes that quietly cost you rich results
  7. Realistic expectations
  8. A simple plan for any site

You search for a recipe and one result stands out: a photo, a star rating, the cooking time, the calories. You search for a product and one listing shows the price and "In stock" right there in the results. Those results are not luckier than yours. Their pages include a small block of code, called structured data, that tells Google exactly what the page is about.

If you have ever looked at a competitor's rich result and wondered how they got it, this guide is for you. We will cover what structured data is, which rich results Google still shows, how to write markup that passes, and the quiet mistakes that make pages ineligible.

What structured data actually is

A web page is written for people. Google can read it, but it has to guess which number is the price, which date is the event, and whether "4.8" is a rating or a version number. Structured data removes the guessing. It is a machine-readable summary of the facts on the page, written using a shared vocabulary from schema.org.

Google recommends writing it as JSON-LD: a block of JSON inside a script tag in the page. It does not change what visitors see, and it can sit anywhere in the HTML.

json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Handmade Oak Chopping Board",
  "image": "https://example.com/images/oak-board.jpg",
  "offers": {
    "@type": "Offer",
    "price": "45.00",
    "priceCurrency": "GBP",
    "availability": "https://schema.org/InStock"
  }
}

That is a complete, valid Product. Nothing more magical than that.

Which rich results are worth your time

Google supports many types, but some matter far more than others:

TypeWhere it showsGood for
ProductPrice, availability, ratings in results and ShoppingOnline shops
RecipePhoto, rating, time, caloriesFood sites
EventDates and venue in event listingsVenues, organisers
JobPostingGoogle's job search experienceEmployers, job boards
LocalBusinessBusiness details and knowledge panelsShops, clinics, restaurants
BreadcrumbListA readable path instead of a raw URLAlmost every site
VideoObjectVideo previews and key momentsPages built around a video
Course and SoftwareApplicationCourse and app listingsEducation and app sites

Two popular types have changed. Google retired How-to rich results, and it now shows FAQ rich results only for a small number of well-known, authoritative government and health websites. Adding FAQPage markup to a normal business page will not produce the expanding questions it once did. It is not harmful, but do not expect a visible result from it.

Every rich result type has required properties, without which the page is not eligible at all, and recommended properties, which improve the result.

  • A Product needs a name, plus at least one of offers, review or aggregateRating. If you include an offer, it needs a price.
  • An Event needs a name, a startDate and a location.
  • A LocalBusiness needs a name and an address.
  • A BreadcrumbList needs a list of items, each with a position and a name.
  • Article types have no strictly required properties, but Google recommends headline, image, datePublished and author.

Missing a required property is the single most common reason markup "does nothing". The page looks fine, the JSON is valid, but Google silently ignores it.

How to check your markup before Google does

Waiting for Google to crawl a page and then reading a report in Search Console can take days. A faster loop:

  1. Copy the JSON-LD from your page (View Page Source, then search for application/ld+json), or from your code editor before publishing.
  2. Paste it into the Rich Results Tester. It checks JSON syntax, @context and @type, and the required properties for each supported type, including markup nested in @graph, which most SEO plugins produce.
  3. Fix what it reports, then run the live page through Google's own Rich Results Test for the final word.

If you are writing markup by hand and the JSON itself keeps breaking, the JSON Formatter shows exactly where a missing comma or bracket is.

Writing markup without writing code

You do not have to type JSON-LD from scratch. If your site runs on WordPress, SEO plugins generate much of it for you, and your job is mainly to check it. For custom sites, landing pages or one-off pages, the Schema Markup Generator builds common types from a simple form, so you start with valid structure and only fill in your own facts.

Whichever route you take, keep two things in mind. First, the markup and the page must say the same thing: the same price, the same date, the same name. Second, generated markup is only as good as the data behind it, so an empty product description or a missing image in your shop will show up as a missing property in the markup too.

The mistakes that quietly cost you rich results

Marking up content that is not on the page

Structured data must describe what visitors can actually see. Adding five-star reviews to the markup that do not appear on the page, or a price that differs from the visible one, breaks Google's guidelines and can lead to a manual action. Always mark up the page as it is.

Stale prices and availability

A product marked "InStock" at a price you changed months ago is misleading. If your platform generates markup automatically, check that it updates when the product does.

Duplicate or conflicting blocks

Themes and plugins sometimes both add markup, leaving two Product blocks with different prices. Pick one source. If you manage markup yourself, a single @graph containing every entity, linked by @id, keeps things tidy.

Wrong type for the page

Marking a category page listing twenty products as a single Product, or a blog post as a Recipe to get a photo in results, confuses Google and rarely works.

Blocking what Google needs

If the page, or the images referenced in the markup, are blocked by robots.txt, Google cannot use them. Our guide to robots.txt mistakes that block Google covers how that happens by accident.

Realistic expectations

Valid structured data makes a page eligible for rich results. It does not guarantee them. Google decides based on quality, relevance and the search itself, and it can take days or weeks after recrawling before anything changes.

Structured data also does not directly boost rankings. What it can do is make your result more informative and more clickable, which is valuable in its own right. A listing with price and availability, or with a clear breadcrumb path instead of a messy URL, simply gives searchers more reason to choose it.

A simple plan for any site

  1. Add BreadcrumbList to every page. It is easy and almost always shown.
  2. Add the one type that matches your main content: Product for shops, Event for venues, LocalBusiness for local services, Recipe for food.
  3. Validate every template once in the Rich Results Tester, then again after theme or plugin updates.
  4. Watch the Enhancements reports in Google Search Console for errors across the whole site.
  5. Make sure the pages themselves are fast; the Core Web Vitals guide explains the page experience side of search.

Structured data rewards patience and accuracy more than cleverness. Describe your pages truthfully, fill in the required fields, and let the rich results follow.

Was this article helpful?

Found this guide useful?

Share it with someone who is struggling with the same problem.

Free tool · No sign-up

Structured Data & Rich Results Checker

Check JSON-LD structured data for syntax errors and the properties Google requires for Product, Recipe, Event, Review, JobPosting and more.

Open tool
Toolyconvert Team profile photo

Written by

Toolyconvert Team

Web Development & Software Engineering Team

The Toolyconvert Team builds, maintains, and improves free online tools designed to make everyday digital tasks faster and easier. Our team works across web development, software engineering, APIs, performance optimization, testing, and user experience to create reliable and practical tools.