YepAPI

How to Create Rich Snippets

Learn how to create rich snippets with JSON-LD, validate eligibility, request indexing, and monitor live SERP appearance over time.

YepAPI TeamEngineering & Product
10 min read

How to create rich snippets: choose an eligible page type, add matching structured data in JSON-LD, validate it, request reindexing, and then monitor whether Google actually shows the rich result in live search. Markup helps search engines understand content, but Google says eligibility and display are not guaranteed by structured data alone.

Unicorn routing page cards through an eligibility gate for how to create rich snippets into rich results or rejection.

Rich snippets are enhanced search listings that show extra details such as ratings, price, FAQs, recipe information, or article metadata. Google more often calls these "rich results," while a featured snippet is a different SERP feature that extracts an answer box above standard results. If you need that distinction first, see what is a featured snippet and types of SERP features.

That distinction matters because many guides blur three separate things:

  1. Rich snippets or rich results are enhanced organic listings.
  2. Featured snippets are answer boxes generated from page content.
  3. Structured data is the markup that can make some rich results eligible.

Google documents that structured data helps search engines understand the page and can enable eligible search features, but it does not promise appearance for every marked-up page in every query at Google Search Central's structured data guide. Schema vocabulary itself is defined at Schema.org.

Why rich snippets SEO work is worth doing#

Rich snippets SEO work improves how your result looks in the SERP. A listing with ratings, price, availability, cooking time, or FAQ expansions can occupy more visual space and communicate relevance faster.

That does not mean markup is a ranking shortcut. Rich results affect presentation first. Better presentation can improve qualified clicks, but only if the page already deserves to rank.

For teams working across many templates, the real value is operational. You can implement markup once, validate deployments, and watch whether rich-result appearance changes after code or content releases. That is where YepAPI's Google SERP API becomes more useful than a one-time manual check.

how to create rich snippets: the exact workflow#

Use this workflow in order. Most failed implementations skip one of these steps.

  1. Define the page type and the matching rich-result opportunity.
  2. Confirm the page content actually supports that schema type.
  3. Add JSON-LD schema markup to the rendered page.
  4. Validate with a rich results test and schema checks.
  5. Request reindexing in Google Search Console.
  6. Monitor live SERP appearance after indexing.
  7. Recheck after template changes, migrations, or content edits.

Step 1: map each URL to an eligible page type#

Start with the page, not the markup. A product page can support Product schema. A recipe page can support Recipe schema. A news or blog page can support Article schema. A help page with visible question-and-answer blocks can support FAQPage, subject to Google's current feature rules.

This is the most common implementation error. Teams choose a schema type they want instead of the one the page truly is. If the visible content does not match the markup, the page may validate syntactically and still never earn a rich result.

At scale, inventory the URLs first. YepAPI's instant on-page audit endpoint can help you audit rendered pages, and YepAPI's web scraping endpoint is the practical option when you need to inspect many templates in code.

Step 2: match visible content to required properties#

Schema markup is not decoration. The marked-up fields must exist on the page for users. Product ratings should be visible. Recipe time and ingredients should be visible. FAQ answers should be visible.

Google rejects a lot of implementations because the structured data describes content users cannot actually see, or because required properties are missing. Before you write any JSON-LD, write down the fields each template already exposes.

Step 3: add JSON-LD schema markup#

For most sites, JSON-LD is the cleanest implementation path. It keeps structured data separate from visible HTML and is easier to template, test, and maintain than scattered inline annotations. Google supports multiple structured-data formats, but JSON-LD is usually the simplest for developers.

If you are deciding between formats, JSON-LD, Microdata, and RDFa are all structured-data approaches. JSON-LD is a JavaScript-based notation for linked data. Microdata and RDFa embed properties inside HTML elements. For modern CMS and application templates, JSON-LD is usually easier to version and review.

how to add schema markup with copyable examples#

Below are minimal examples. Replace sample values with real page data, and only ship fields that are true on the page.

Product schema example#

Use Product schema on a product detail page with visible name, price, availability, and optional ratings.

JSON
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Trail Running Shoes",
  "image": [
    "https://example.com/images/trail-running-shoes.jpg"
  ],
  "description": "Lightweight trail running shoes for rocky terrain.",
  "sku": "TRAIL-001",
  "brand": {
    "@type": "Brand",
    "name": "North Peak"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/trail-running-shoes",
    "priceCurrency": "USD",
    "price": "129.00",
    "availability": "https://schema.org/InStock"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "128"
  }
}

Common Product failures:

  • Price or availability in markup does not match the page.
  • Rating markup exists without visible review content.
  • Required offer fields are omitted.
  • Multiple conflicting Product objects are emitted by plugins or tag managers.

FAQPage schema example#

Use FAQPage only when the page shows a real list of questions with answers visible to users.

JSON
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How long does shipping take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Standard shipping takes 3 to 5 business days."
      }
    },
    {
      "@type": "Question",
      "name": "Can I return sale items?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Sale items can be returned within 30 days."
      }
    }
  ]
}

Common FAQPage failures:

  • Questions are hidden, truncated, or loaded inconsistently.
  • Answers in markup differ from the visible copy.
  • The page is transactional or thin, with FAQ blocks added only for markup.

Recipe schema example#

Use Recipe schema on pages that are genuinely recipes, with visible ingredients, instructions, and timing.

JSON
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "Banana Oat Pancakes",
  "image": "https://example.com/images/banana-oat-pancakes.jpg",
  "author": {
    "@type": "Person",
    "name": "Alex Cook"
  },
  "prepTime": "PT10M",
  "cookTime": "PT12M",
  "totalTime": "PT22M",
  "recipeYield": "8 pancakes",
  "recipeIngredient": [
    "2 bananas",
    "2 eggs",
    "1 cup oats"
  ],
  "recipeInstructions": [
    "Blend ingredients.",
    "Pour batter onto a hot pan.",
    "Cook until golden on both sides."
  ]
}

Common Recipe failures:

  • Missing timing fields.
  • Instructions are too vague or not visible as steps.
  • Ingredient lists are incomplete in the markup.

Article schema example#

Use Article or a more specific subtype on editorial pages with clear headline, author, date, and image.

JSON
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to choose running shoes for wet trails",
  "author": {
    "@type": "Person",
    "name": "Jordan Lee"
  },
  "datePublished": "2026-10-27",
  "dateModified": "2026-10-27",
  "image": [
    "https://example.com/images/wet-trail-shoes.jpg"
  ],
  "mainEntityOfPage": "https://example.com/blog/how-to-choose-running-shoes"
}

Common Article failures:

  • Dates are stale or inconsistent.
  • The article image is blocked or too small.
  • Headline in markup does not match the page.

json-ld schema markup vs plugins, Microdata, and GTM#

If you use WordPress, plugins can generate markup quickly. That is fine for simple sites. It is less fine when multiple plugins emit overlapping schema, or when custom fields drift away from the visible content.

For custom sites, hand-authored or template-generated JSON-LD is usually safer. You know exactly which object is emitted, from which source fields, and in which template.

Google Tag Manager can inject JSON-LD, but it adds another moving part between content and markup. Use it carefully. When rich-result eligibility depends on stable structured data, server-rendered or reliably rendered template output is easier to test.

rich results test and validation checklist#

A rich results test answers one question: is the page eligible based on the markup Google can read right now? It does not answer the bigger question: will a rich result appear in the live SERP for your target queries?

Use two levels of validation:

  1. Rich-result eligibility validation.
  2. Live SERP appearance validation.

Google's Rich Results Test is the correct first check at search.google.com/test/rich-results. For general syntax and schema-shape checks, compare your objects against the vocabulary and property definitions at Schema.org.

Use this checklist before you request indexing:

CheckWhat to confirmWhy it matters
Page typeSchema matches the actual pageWrong type rarely surfaces
VisibilityMarked-up fields are visible to usersHidden data can be ignored
Required fieldsRequired and recommended properties are presentEligibility depends on them
ConsistencyMarkup matches rendered copyMismatches create distrust
UniquenessNo duplicate or conflicting objectsDuplicate markup confuses parsers
CrawlabilityThe page is indexable and not blockedUncrawlable pages cannot surface

If you are already tracking layouts and content quality, this is also where how to do on page SEO overlaps with structured data work.

How to get rich snippets after validation#

Validation is not the finish line. After the markup is clean, you still need Google to recrawl, reprocess, and decide that the page is a good candidate for a rich result.

Request indexing and confirm the page can be processed#

Submit or inspect the URL in Google Search Console after deployment. If the page was recently updated, request reindexing. Make sure the canonical URL is the one carrying the markup, and verify that robots rules, noindex tags, and rendering issues are not blocking processing.

For large sites, treat schema rollout like a deployment, not a one-off edit. Release on a template, sample-check rendered output, then monitor a set of representative URLs by type.

Monitor the real SERP, not only the code#

This is the gap most posts miss. A page can pass validation and still lose a rich result later because content changed, competing results are stronger, or Google decides not to show the enhancement for a given query.

Use YepAPI's Google SERP API to check live results programmatically for the queries and locations that matter. If you want query expansion before monitoring, YepAPI's Google Autocomplete API helps you collect real search variants, and YepAPI's keyword ideas endpoint helps build a broader monitoring set.

For teams comparing result types across many keywords, this connects directly to how to find SERP features opportunity and which SERP features are available for my keywords.

A simple monitoring workflow looks like this:

  1. Keep a list of URLs and their intended schema type.
  2. Keep a list of target queries by country and device.
  3. Pull live results on a schedule.
  4. Record whether the expected rich-result treatment appears.
  5. Alert when a page loses that treatment after a deploy.

If you also want to extract rendered content and compare it to emitted markup at scale, YepAPI's AI extract scraper is the code-first way to QA many pages without doing manual spot checks.

Common failure modes by markup type#

Troubleshooting gets easier when you diagnose by schema type instead of using one generic checklist.

Product#

Product rich results often fail because commerce data changes faster than templates update. Price, currency, availability, and review totals need to stay aligned with the visible page.

FAQPage#

FAQ markup often fails because it was added for search engines instead of users. If the content is thin, hidden, repetitive, or clearly bolted onto unrelated pages, expect weak results.

Recipe#

Recipe markup fails when the page reads like a blog post with a loose ingredient mention instead of a true recipe. Structured fields should map to an actual cooking workflow.

Article#

Article markup is usually easy to add and easy to neglect. Missing dates, image issues, or inconsistent author information can make the implementation unreliable.

Creating rich snippets at scale#

If you manage one brochure site, manual checks are enough. If you manage thousands of URLs, multiple locales, or many template owners, you need a repeatable system.

Use a template matrix with columns for page type, intended schema type, required fields, data source, test URLs, and owner. Then automate three checks:

  1. Rendered page contains the expected JSON-LD object.
  2. The object values match visible content.
  3. The live SERP still shows the intended enhancement often enough to justify maintenance.

YepAPI's Google SERP API covers the SERP check in code. YepAPI's web scraping endpoint and instant on-page audit endpoint cover the page-level QA side. That is the practical difference between "we added schema" and "we operate rich-result coverage as a system."

Final checklist before you ship#

Before deployment, ask these five questions:

  1. Is this page type actually eligible for the markup I chose?
  2. Are all marked-up fields visible and accurate on the page?
  3. Does the JSON-LD validate without critical eligibility errors?
  4. Can Google crawl, render, and index the canonical page?
  5. Am I monitoring the live SERP after release?

If you can answer yes to all five, you are not just adding schema markup. You are building a process that can keep rich-result coverage stable after redesigns, migrations, and content updates.

Do this in code with YepAPI#

Manual tests are fine for one URL. Production sites need repeatable checks.

Use YepAPI's Google SERP API to monitor live rich-result appearance by query, location, and device, then pair it with YepAPI's web scraping endpoint or instant on-page audit endpoint to verify that the page still emits the expected markup after deployments.

Pull this data via YepAPI's Google SERP API — $5 free credit, no card.

FAQ#

What are rich snippets in SEO?#

Rich snippets in SEO are organic search results enhanced with extra information such as ratings, price, availability, recipe details, or FAQs. Google usually refers to these enhancements as rich results. They are different from featured snippets, which are answer boxes generated from page content rather than structured-data markup alone.

How do I make a snippet?#

To make a rich snippet, start with a page type that matches an eligible schema type, add accurate JSON-LD markup, validate it with Google's Rich Results Test, and request reindexing. Then check whether Google actually shows the enhancement in live search results, because valid markup alone does not guarantee display.

How to create a search engine optimization?#

You do not create SEO as a single object. You improve SEO by making pages crawlable, useful, well-structured, and relevant to search intent. Rich snippets are one part of that work. They improve how eligible results appear in search, but they do not replace ranking fundamentals like content quality and authority.

What are examples of snippets?#

Examples of rich snippets include product results with ratings and price, recipe results with cooking time, article results with date and author details, and FAQ expansions below a listing. Featured snippets are another kind of SERP feature, but they are not the same thing as rich results created through structured data.

Topics

rich-snippets-seohow-to-add-schema-markuprich-results-testjson-ld-schema-markuphow-to-get-rich-snippets

Start vibe coding with one API key.

One API key. 100+ endpoints. Yep, that's it.