In short
Structured data is machine-readable markup, usually a JSON-LD block using schema.org vocabulary, that tells Google what a page is about and makes it eligible for rich results such as product prices, review stars, recipes, events or videos. It is not a ranking trick and it guarantees nothing: Google decides whether to show a rich result, and the list of supported features keeps shrinking, with FAQ rich results gone since May 2026. Mark up only what is visible on the page, include every required property, test with the Rich Results Test and watch the rich result reports in Search Console.
What structured data is and what it does
Google's definition: “Structured data is a standardized format for providing information about a page and classifying the page content; for example, on a recipe page, what are the ingredients, the cooking time and temperature, the calories, and so on.” A visitor reads the recipe; structured data hands the same facts to a machine as labelled fields.
What it can do for you is described just as plainly: “Adding structured data can enable search results that are more engaging to users and might encourage them to interact more with your website, which are called rich results.” A rich result is a search listing with something extra: price and availability, a rating, cooking time, event dates, a video thumbnail. Google also uses markup more broadly: it “uses structured data that it finds on the web to understand the content of the page, as well as to gather information about the web and the world in general, such as information about the people, books, or companies that are included in the markup.”
Just as important is what structured data does not do:
- It does not guarantee a rich result. “Using structured data enables a feature to be present, it does not guarantee that it will be present.”
- It is not a ranking lever. Google's documentation frames markup as eligibility for enhanced display, not as a way to rank higher. Even when Google penalises spammy markup, the manual action “doesn't affect how the page ranks in Google web search”; the page just loses rich results.
- It is not required for AI features. “Structured data isn't required for generative AI search, and there's no special schema.org markup you need to add.” Google still advises using it for rich results.
- It does not replace content. Markup describes what is on the page. It cannot add facts the page does not show.
What Google officially says
“Google does not guarantee that your structured data will show up in search results, even if your page is marked up correctly according to the Rich Results Test.”
Google Search Central — General structured data guidelines“In general, Google recommends using JSON-LD for structured data if your site's setup allows it, as it's the easiest solution for website owners to implement and maintain at scale (in other words, less prone to user errors).”
Google Search Central — Introduction to structured data markup in Google Search“Don't create blank or empty pages just to hold structured data, and don't add structured data about information that is not visible to the user, even if the information is accurate.”
Google Search Central — Introduction to structured data markup in Google SearchThree more statements from the same documentation that settle common arguments:
- “Most Search structured data uses schema.org vocabulary, but you should rely on the Google Search Central documentation as definitive for Google Search behavior, rather than the schema.org documentation.”
- “You must include all the required properties for an object to be eligible for appearance in Google Search with enhanced display.”
- “However, it is more important to supply fewer but complete and accurate recommended properties rather than trying to provide every possible recommended property with less complete, badly-formed, or inaccurate data.”
Formats: JSON-LD, Microdata and RDFa
Google reads three syntaxes, and on validity it treats them equally: “all 3 formats are equally fine for Google, as long as the markup is valid and properly implemented per the feature's documentation.”
- JSON-LD (recommended). A
<script type="application/ld+json">block in the<head>or<body>. It is separate from the visible HTML, so a redesign does not break it and nested data is easy to express. - Microdata. Attributes such as
itemscope,itemtypeanditempropadded to the visible HTML elements. - RDFa. Attributes such as
vocab,typeofandproperty, also attached to visible HTML.
Microdata and RDFa tie the data to your markup, so a template change can silently break them. That is why most sites use JSON-LD. One more point matters for implementation: “Also, Google can read JSON-LD data when it is dynamically injected into the page's contents, such as by JavaScript code or embedded widgets in your content management system.” Old data-vocabulary.org markup is dead: “Data-vocabulary.org markup is no longer eligible for Google rich result features.”
Anatomy of a JSON-LD block
Every block has the same building blocks. @context names the vocabulary (https://schema.org). @type says what the thing is. The other keys are properties, and a property can hold a nested object with its own @type. @id gives the thing a stable identifier other blocks can point to.
<script type="application/ld+json">
{
"@context": "https://schema.org", // 1 vocabulary
"@type": "Product", // 2 most specific type
"@id": "https://example.com/kettles/blue-kettle/#product", // 3 stable ID
"name": "Blue Steel Kettle 1.7 L", // 4 required
"image": "https://example.com/img/blue-kettle.jpg", // 5 recommended
"description": "Stainless steel kettle, 1.7 litres.",
"brand": { "@type": "Brand", "name": "Example Home" },
"offers": { // 6 nested object
"@type": "Offer",
"price": "39.00", // 7 must match the page
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock",
"seller": { "@id": "https://example.com/#organization" } // 8 reference
}
}
</script>
1 @contextTells parsers the keys are schema.org terms.
2 @typeUse the most specific type that fits: Product, not Thing.
3 @idA URL plus a fragment. It names the entity, it is not a page to crawl.
4 RequiredMissing it makes the item invalid for the feature.
5 RecommendedMissing it is a warning; adding it can improve the result.
6 Nested objectThe offer belongs to this product, so it sits inside it.
7 Visible factsPrice, currency and stock must be what the visitor sees.
8 ReferencePoints to the Organization block on the home page instead of repeating it.
// n markers are annotations for this lesson only; JSON does not allow comments, so never ship them.Required, recommended and optional properties
Each Google feature guide lists properties in two groups. Required properties are the minimum: “Items that are missing required properties are not eligible for rich results.” In Search Console a missing required property is a critical issue and the item is invalid. Recommended properties add detail; when they are missing you get a non-critical warning and the item can still be eligible. Everything else schema.org allows is optional from Google's point of view: harmless, sometimes useful to other consumers, but not used for the feature.
Do not chase zero warnings at any cost. Google's own advice is that fewer, complete and accurate recommended properties beat a long list of half-filled ones. Leave out aggregateRating if you have no real reviews.
Rich results Google supports in 2026
The authoritative list is the Search Gallery page, Structured data markup that Google Search supports. On 30 October 2026 it lists 25 features. The Gallery filter column shows the site categories Google tags each feature with; the schema.org types column is the usual starting type, and the feature guide always has the final word.
| Feature | Main schema.org type | Gallery filter | What it shows |
|---|---|---|---|
| Article | Article, NewsArticle, BlogPosting | News, Sports | Title and larger images for news, sports or blog articles |
| Breadcrumb | BreadcrumbList | Generic | The page's position in the site hierarchy |
| Carousel | ItemList | Food and Drink, Education and Science, Entertainment | A list or gallery from one site; only with Recipe, Course list, Restaurant or Movie |
| Course list | Course | Education and Science | Courses from one provider |
| Dataset | Dataset | Education and Science | Data sets in Google Dataset Search (not Google Search) |
| Discussion forum | DiscussionForumPosting | — | User-generated posts with threaded or flat discussion |
| Education Q&A | Quiz | Education and Science | Education questions and answers as flashcards |
| Employer aggregate rating | EmployerAggregateRating | Jobs | A rating of a hiring organisation in job search |
| Event | Event | Entertainment | A list of events with time and place |
| Image metadata | ImageObject | — | Creator, licence and credit in Google Images |
| Job posting | JobPosting | Jobs | Jobs in Google's job search experience |
| Local business | LocalBusiness subtypes | Organizations | Hours, ratings, directions in the knowledge panel |
| Math solver | MathSolver | Education and Science | Step-by-step help for math problems |
| Movie | Movie | Entertainment | The movie carousel |
| Organization | Organization | Organizations | Logo, legal name, contacts in knowledge panels |
| Product | Product + Offer | Ecommerce | Price, availability and review ratings |
| Profile page | ProfilePage | — | A page about one person or organisation tied to the site |
| Q&A | QAPage | — | One question followed by its answers |
| Recipe | Recipe | Food and Drink | Recipes as a single result or in a carousel |
| Review snippet | Review, AggregateRating | Organizations, Ecommerce, Food and Drink, Entertainment | A rating or review excerpt |
| Software app | SoftwareApplication | — | Rating, description and link to an app |
| Speakable | SpeakableSpecification | News | News sections read aloud on Assistant-enabled devices |
| Subscription and paywalled content | isAccessibleForFree on the article | News | Tells Google paywalled text is not cloaking |
| Vacation rental | VacationRental | — | Name, images, location, rating of a rental |
| Video | VideoObject | Food and Drink, News, Education and Science, Sports | Video results, key moments, live streams |
Google adds a caveat to the whole list: “Note: The actual appearance in search results might be different.” Product markup has two Search Console reports (product snippets and merchant listings), and several features have their own lessons: see the Navigation and breadcrumbs lesson for BreadcrumbList, the Video SEO lesson for VideoObject, and Authors, About and editorial policy for author and Organization details on article pages.
Retired and restricted features
Since 2023 Google has been removing rich result types it considers little used. If an older guide tells you to add one of these, it is out of date.
| Feature | Status | What Google said |
|---|---|---|
FAQ (FAQPage) | Removed, 2026 | Limited to “well-known, authoritative government and health websites” in 2023, then: “This feature will no longer appear in Google Search starting May 7, 2026.” |
How-to (HowTo) | Removed, 2023 | “As of September 13, Google Search no longer shows How-to rich results on desktop, which means this result type is now deprecated.” Mobile had already been dropped. |
| Book Actions, Course Info, Claim Review, Estimated Salary, Learning Video, Special Announcement, Vehicle Listing | Phased out from June 2025 | “This update won't affect how pages are ranked.” Book actions was later kept: Google removed the deprecation banner “as there's still a feature using the markup in Google Search.” |
| Practice problem | Removed, January 2026 | “The practice problem structured data type is no longer shown in Google Search results.” |
| Sitelinks search box | Removed, November 2024 | “The sitelinks search box feature is no longer available in Google Search results.” |
| Dataset | Restricted | Google “Clarified that Dataset structured data is only used by Dataset Search, and not Google Search.” |
What to do with markup that no longer produces anything: nothing urgent. Google's FAQ and How-to announcement put it this way: “Structured data that's not being used does not cause problems for Search, but also has no visible effects in Google Search.” And for the 2025 removals: “The use of these structured data types outside of Google Search (and dependent features) is not affected.” In practice, remove dead types when you next touch the template if they cost maintenance, keep the visible FAQ section if it helps readers, and never invent questions just to keep markup alive.
Google's general guidelines
The general guidelines apply to every type. Some can be checked by tools; the quality rules cannot, and Google warns that “Violating a quality guideline can prevent syntactically correct structured data from being displayed as a rich result in Google Search, or possibly cause it to be marked as spam.”
Technical: format and access
Use JSON-LD, Microdata or RDFa, and let Google fetch the page: “Don't block your structured data pages to Googlebot using robots.txt, noindex, or any other access control methods.” A noindex page cannot earn a rich result.
Content
- “Don't mark up content that is not visible to readers of the page.”
- “Provide up-to-date information. We won't show a rich result for time-sensitive content that is no longer relevant.” Past events, expired jobs and old prices should be updated or removed.
- “Don't mark up irrelevant or misleading content, such as fake reviews or content unrelated to the focus of a page.”
- “Don't use structured data to deceive or mislead users. Don't impersonate any person or organization, or misrepresent your ownership, affiliation, or primary purpose.”
Relevance
“Your structured data must be a true representation of the page content.” Google's example of irrelevant markup: “A woodworking site labeling instructions as recipes.”
Completeness
Fill every required property. If you mark up reviews, mark up all of the visible ones: “If a page didn't mark up all of the reviews on a page, this would be misleading for people who expect to see all of those reviews, based on the appearance of the page in Search results.”
Location
“Put the structured data on the page that it describes, unless specified otherwise by the documentation.” A sitewide Product block in the footer is wrong. For duplicates, Google is explicit: “If you have duplicate pages for the same content, we recommend placing the same structured data on all page duplicates, not just on the canonical page.”
Specificity and images
“Try to use the most specific applicable type and property names defined by schema.org for your markup.” Images must be relevant to the page, and “All image URLs specified in structured data must be crawlable and indexable.” An image folder blocked in robots.txt breaks the image in the result.
Manual actions
Spammy markup, such as fake or self-written ratings, can lead to a structured data manual action, visible in the Manual Actions report in Search Console. The consequence is narrow but real: “A structured data manual action means that a page loses eligibility for appearance as a rich result; it doesn't affect how the page ranks in Google web search.” A related, well-known restriction: Google does not show review stars for reviews a business publishes about itself in LocalBusiness or Organization markup.
✓ Do
- Use JSON-LD generated from the same data as the visible page
- Pick the most specific type and fill every required property
- Mark up the main thing the page is about
- Keep prices, stock, dates and ratings in sync with the page
- Give key entities a stable
@idand reference it - Use the same markup on duplicate URLs as on the canonical
- Test before release and watch Search Console after
✕ Don't
- Mark up text, reviews or offers users cannot see
- Add ratings you did not collect from real users
- Put Product or Recipe markup sitewide in a footer
- Print the same type twice from theme and plugin with different values
- Leave expired events, jobs or prices in the markup
- Block marked-up pages or their images from Googlebot
- Add retired types such as FAQ or How-to expecting a result
Several items on one page: nesting and @id
A page often describes more than one thing: a recipe, a video of it and a breadcrumb trail. Google handles both styles: “Google Search understands multiple items on a page, whether you nest the items or specify each item individually”.
- Nesting puts related items inside the main item: the
videoandaggregateRatinginside theRecipe, theOfferinside theProduct. - Individual items are separate blocks, or one JSON array, for things that are not part of each other, such as a
Recipeand aBreadcrumbList.
When separate items belong together, link them with @id. Google's example is a recipe and its video: “If you didn't link the items together, Google Search may not know that it can show the video as a Recipe rich result.” Also make sure the page's main type is present: “If the page only contained Video structured data, Google Search wouldn't know enough about the page to also display it as a recipe rich result.”
A practical @id pattern on example.com:
{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", "@id": "https://example.com/#organization",
"name": "Example Home", "url": "https://example.com/",
"logo": "https://example.com/logo.png" },
{ "@type": "Article", "@id": "https://example.com/guides/descale-kettle/#article",
"headline": "How to descale a kettle",
"author": { "@type": "Person", "name": "Anna Berg",
"url": "https://example.com/authors/anna-berg/" },
"publisher": { "@id": "https://example.com/#organization" } }
]
}
Keep each @id stable across the site and over time. Many SEO plugins already output a linked @graph like this; your job is to check that the values in it are right.
How to implement: CMS, plugins, tag manager or code
Google acknowledges that many site owners cannot touch the HTML: “If you use a CMS, such as Wix, WordPress, or Shopify, you might not be able to edit your HTML directly. Instead, your CMS may have a search engine settings page, or you may be able to install a plugin that allows you to specify structured data.” Each route has trade-offs.
Built-in CMS and theme markup
Shop platforms and many themes output Product, Organization or Article markup by default. It is free and consistent, but often generic and sometimes outdated. Check what your theme prints before adding anything, because theme plus plugin is the most common source of duplicate, conflicting blocks.
SEO plugins and apps
Plugins such as Yoast SEO or Rank Math on WordPress, or schema apps on Shopify, generate a connected graph for every template and let editors fill fields per page. They are the fastest route for most sites. The risks: generic types where a specific one fits, fields left empty, values that drift from the page (a review widget's rating versus the plugin's), and changes after plugin updates.
Google Tag Manager or other JavaScript
Injecting JSON-LD with a tag manager works, because Google reads dynamically injected JSON-LD. In practice it is the most fragile route: it depends on rendering, the data is scraped from the page or typed by hand and falls out of sync, and fast-changing values like price and stock are risky. Use it as a stopgap, not as the long-term setup.
Hand-coded templates
Developers generate JSON-LD on the server from the same database fields that fill the visible page. This is the most reliable option: one source of truth, markup present in the raw HTML, no mismatch between page and markup. It costs development time and needs tests in the release process.
Testing and monitoring
Google's routine is short: “Be sure to check your structured data using the Rich Results Test during development, and the Rich result status reports after deployment, to monitor the validity of your pages, which might break after deployment due to templating or serving issues.” In practice the workflow has seven steps.
Rich Results Test
Google calls it “an easy and useful tool for validating your structured data, and in some cases, previewing a feature in Google Search.” Paste a URL or a code snippet; it shows which Google features the page is eligible for, with errors (missing required properties) and warnings (missing recommended ones). It only knows Google-supported features, so retired types simply stop appearing in it.
Schema Markup Validator
The validator at validator.schema.org checks schema.org syntax for every type, including ones Google ignores. Use it to catch broken JSON, misspelled properties and wrong value types, especially for markup aimed at other consumers.
URL Inspection
After release, the live test in URL Inspection shows the structured data Google detects on the rendered page. It is the quickest way to confirm that markup injected by JavaScript is actually seen.
Rich result reports in Search Console
Reports appear under Enhancements, and under Shopping for product snippets and merchant listings, only for types Google found on your property. Each shows valid and invalid items over time; “An invalid item has at least one critical issue preventing it from appearing as a rich result.” Remember that “The reports aren’t a comprehensive list of all detected items.” They show a sample, so use URL Inspection for pages you do not see listed. After fixing an issue, use Validate fix.
Measuring the effect
The Performance report's Search appearance filter shows clicks and impressions for rich result types. To judge whether markup paid off, Google suggests “The best way to do that is to run a before and after test on a few pages on your site.” Pick stable, popular pages without markup, add it, confirm it is detected, and compare a few months of data.
Schema.org beyond Google
Schema.org is a shared vocabulary, not a Google product. Its own description: “Many applications from Google, Microsoft, Pinterest, Yandex and others already use these vocabularies to power rich, extensible experiences.” Google also notes that schema.org properties it does not require “may be useful for other search engines, services, tools, and platforms.”
In practice that means Bing reads schema.org markup, and social platforms, shopping services, email clients and assistants may use parts of it. AI search tools and chat assistants may parse it when they fetch a page, but none of them publish a guarantee that it changes what they show. Treat clean, accurate markup as cheap insurance for other consumers, and judge its value for Google by the features in the gallery.
Audit your pages before you add markup
OurSEO Tools runs a 69-point checklist across indexation, on-page, content and more, and crawls up to 1,000 pages with status code, canonical and indexability per URL, so you know your marked-up pages can be crawled and indexed.
Common mistakes
- ✕Markup for invisible contentReviews, FAQs or prices that exist only in the JSON-LD.
- ✕Price or stock out of syncThe page says €39 and out of stock, the markup says €35 and in stock. Usually a caching or tag manager issue.
- ✕Duplicate, conflicting blocksTheme, plugin and review app each print a Product with different values.
- ✕Missing required propertiesThe item is invalid and cannot become a rich result.
- ✕Sitewide markup in the wrong placeProduct, Recipe or Review blocks in a global header or footer.
- ✕Self-serving or invented ratingsStars your business gave itself, or ratings not collected from real users.
- ✕Chasing retired featuresAdding FAQPage or HowTo in 2026 and waiting for a rich result.
- ✕Testing onceMarkup breaks after template releases and plugin updates; nobody notices without the Search Console reports.
FAQ
Does structured data improve rankings?
Treat it as a way to become eligible for rich results, not as a ranking factor. Google's documentation promises no ranking effect, and a structured data manual action removes rich results without changing rankings. A richer listing can still earn more clicks.
Do I need structured data for AI Overviews or AI Mode?
No. Google says “Structured data isn't required for generative AI search, and there's no special schema.org markup you need to add.” Keep it for rich results, and make sure it matches the visible text.
Should I delete my FAQPage and HowTo markup?
There is no rush. Unused markup does not cause problems, it just does nothing in Google Search. Remove it when you next work on the template, and keep the visible content if it helps readers.
The Rich Results Test passes, so why is there no rich result?
A valid test means eligibility only. Google chooses per query and device, and may skip markup that is not representative of the page, misleading, hidden, or against the guidelines. Check URL Inspection and the Manual Actions report too.
JSON-LD, Microdata or RDFa?
JSON-LD, unless your platform makes another format much easier. Google treats valid markup in all three equally but recommends JSON-LD because it is easier to maintain.
Can I add structured data with Google Tag Manager?
Yes, Google can read JSON-LD injected by JavaScript. It is harder to keep in sync with the page, so prefer server-generated markup for anything that changes often, such as prices and stock.
Sources
- Google Search Central — Introduction to structured data markup in Google Search
- Google Search Central — General structured data guidelines
- Google Search Central — Structured data markup that Google Search supports
- Google Search Central Blog — Simplifying the search results page (June 2025)
- Google Search Central Blog — Changes to HowTo and FAQ rich results (August 2023)
- Google Search Central — Documentation updates (changelog)
- Google Search Central — Optimizing for generative AI features
- Google Search Console Help — Rich result report overview
- Schema.org — Home
Quotes checked against the official pages on 30 October 2026.