Rich results requirements by type
The required and recommended properties Google documents for each rich result, the rules this validator enforces. "Required" means Google says the item is not eligible without it.
| Type | Required | Recommended | Status |
|---|---|---|---|
| Article / NewsArticle / BlogPosting Google docs · example | none listed | headlineimagedatePublisheddateModifiedauthor | active |
| Product (snippet) Google docs · example | nameone of offersreviewaggregateRating | imagedescriptionbrandskuoffersaggregateRatingreview | active |
| Product (merchant listing) Google docs · example | nameimageoffers | descriptionbrandgtinskuaggregateRatingreview | active |
| Offer Google docs · example | one of pricepriceSpecification | priceCurrencyavailabilityurl | active |
| Review Google docs · example | authorreviewRatingreviewRating.ratingValue | datePublished | active |
| AggregateRating Google docs · example | ratingValueone of ratingCountreviewCount | – | active |
| Recipe Google docs · example | nameimage | authordatePublisheddescriptionrecipeIngredientrecipeInstructionsrecipeYieldprepTimecookTimetotalTimerecipeCategoryrecipeCuisinekeywordsnutrition.caloriesaggregateRatingvideo | active |
| Event Google docs · example | namestartDatelocation | descriptionendDateeventStatuseventAttendanceModeimageoffersorganizerperformer | active |
| LocalBusiness (and subtypes) Google docs · example | nameaddress | urltelephonegeoopeningHoursSpecificationpriceRangeimage | active |
| Organization Google docs · example | none listed | nameurllogosameAsdescriptionaddresscontactPointtelephoneemaillegalName | active |
| BreadcrumbList Google docs · example | itemListElement | – | active |
| ListItem (in a breadcrumb) Google docs · example | positionname | – | active |
| VideoObject Google docs · example | namethumbnailUrluploadDate | descriptioncontentUrlembedUrldurationexpiresinteractionStatisticregionsAllowed | active |
| JobPosting Google docs · example | titledescriptiondatePostedhiringOrganizationhiringOrganization.nameone of jobLocationjobLocationType | validThroughemploymentTypebaseSalaryidentifierdirectApply | active |
| SoftwareApplication Google docs | nameone of offers.priceoffers.priceSpecificationone of aggregateRatingreview | applicationCategoryoperatingSystem | active |
| QAPage Google docs | mainEntity | – | active |
| FAQPage Google docs · example | mainEntity | – | retired |
| Question (in FAQPage) Google docs · example | nameacceptedAnsweracceptedAnswer.text | – | retired |
Merchant listing requirements also cover shipping and return details in Merchant Center; only the on-page properties are listed. Nested paths such as reviewRating.ratingValue are checked on the nested object.
Three tools, three questions
| Google Rich Results Test | Schema Markup Validator | StructuredValidator | |
|---|---|---|---|
| Question it answers | Can this page earn a Google rich result? | Is this valid schema.org? | What is wrong, why, and how do I fix it? |
| Renders JavaScript | Yes (Googlebot) | Fetches URL | No (server HTML or pasted code) |
| Types covered | Google features only | All of schema.org | Google features plus common schema.org types |
| Explains fixes | Error names | Error names | Plain-English fixes, line marks, optional AI rewrite |
| Final word on Google eligibility | Yes | No | No |
A practical order: fix syntax and obvious mistakes here while you edit, confirm in the Rich Results Test before publishing, then watch the enhancement reports in Search Console. The Schema Markup Validator is the one to use for types Google has no feature for.
Required isn't the finish line
Google's docs are explicit that meeting the requirements makes a page eligible, and that it does not guarantee a rich result. Markup must also describe content visible on the page and follow the general structured data guidelines: no marking up hidden content, no fake reviews, no misleading prices.
Required vs recommended: flip the properties
This runs the same engine as the validator. Switch properties on and see which rule fires.
- error Product snippet needs one of: offers, review, aggregateRating
- warning Product snippet: 7 recommended properties missing
- warning Merchant listing: 1 recommended property missing
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Trailhead 28L Daypack"
}Questions
What is the Rich Results Test?
Google's own tool at search.google.com/test/rich-results. It renders a URL or code with Googlebot and reports which Google rich results the page is eligible for. It is the authority for Google features; StructuredValidator is an independent checker that explains problems and tracks the same documented requirements.
Rich Results Test vs Schema Markup Validator: which should I use?
Both, for different questions. The Rich Results Test answers "can this earn a Google feature?". The Schema Markup Validator (validator.schema.org) answers "is this valid schema.org?" for every type, including ones Google ignores.
Why does the Rich Results Test show fewer items than my markup has?
It only reports types that map to a Google feature. An Organization or a WebPage entity is valid but may not appear in its list.
Where do these requirements come from?
Each row links to the Google Search Central documentation page it was taken from. Google updates these pages; the linked page wins if anything here disagrees.