Report
The properties Google requires, and what they rest on
Skip a recommended property and a rich result can still appear, just thinner than it could be. Skip a required one and Google will not show the rich result at all, which makes a required property a much stronger promise than a recommended one. I read every required property from Google's own documentation for all 32 live features. Then I checked how many websites already use each one, against the same monthly usage file the rest of this project is built from. 30 of those features need at least one required property, and 6 of them rest on a property Schema.org has not yet ratified. One required property sits in Google's smallest band, on fewer than a thousand websites, and that is where this page starts.
- Live features32
- Have a required property30
- Rest on a pending property6
- No documented rich result82.86%
What each live feature requires
July 2026 · six ranges, no exact numbersGoogle and the Schema.org community, Schema.org usage statistics dataset. Websites in Google's index.
Across the 30 features, I counted 170 required properties, one row for every feature that asks for a specific one. 169 of them carry a usage figure; the other, xPath on speakable, is not a Schema.org property, so it has no band to sit in and is not counted either way. 168 of the 169 measured properties already sit above Google's smallest band, and that is the real finding here, not a footnote to it. Google will not show a rich result at all if a required property is missing, so a required property has to already be something the web has broadly adopted. Otherwise the feature barely works for anyone who follows the documentation exactly as written. Book breaks that pattern. It requires lender for the library-borrowing action Google documents, and lender sits in Google's smallest band, on fewer than a thousand websites. Build a Book rich result exactly as Google documents it, and you are implementing a property with almost nobody else's markup to check yours against.
That does not mean Book itself is a rare or unusual rich result, or that Google is asking for something impossible to build. It means one property, on one feature, has almost no other implementation to learn from, while every other required property across the 30 features does.
Two live features, Article and Organization, ask for nothing that counts as required. Everything Google lists for either of them is a recommendation, which is why they sit outside the 30.
| Feature | Property | Band | Ratified | Google page | Page updated |
|---|---|---|---|---|---|
| Book | dataFeedElement | 1K - 10K | Yes | book | |
| Book | author | 10M+ | Yes | book | |
| Book | name | 10M+ | Yes | book | |
| Book | url | 10M+ | Yes | book | |
| Book | workExample | 1K - 10K | Yes | book | |
| Book | bookFormat | 10K - 100K | Yes | book | |
| Book | inLanguage | 10M+ | Yes | book | |
| Book | isbn | 10K - 100K | Yes | book | |
| Book | potentialAction | 10M+ | Yes | book | |
| Book | propertyID | 10K - 100K | Yes | book | |
| Book | value | 1M - 10M | Yes | book | |
| Book | expectsAcceptanceOf | 1K - 10K | Yes | book | |
| Book | category | 1M - 10M | Yes | book | |
| Book | eligibleRegion | 10K - 100K | Yes | book | |
| Book | target | 10M+ | Yes | book | |
| Book | actionPlatform | 100K - 1M | Yes | book | |
| Book | urlTemplate | 10M+ | Yes | book | |
| Book | lender | < 1K | Yes | book | |
| Book | additionalProperty | 100K - 1M | Yes | book | |
| Book | member | 10K - 100K | Yes | book | |
| Book | location | 1M - 10M | Yes | book | |
| Book | addressCountry | 1M - 10M | Yes | book | |
| Book | addressLocality | 1M - 10M | Yes | book | |
| Book | addressRegion | 1M - 10M | Yes | book | |
| Book | postalCode | 1M - 10M | Yes | book | |
| Book | streetAddress | 1M - 10M | Yes | book | |
| Merchant listing | name | 10M+ | Yes | merchant-listing | |
| Merchant listing | image | 10M+ | Yes | merchant-listing | |
| Merchant listing | offers | 10M+ | Yes | merchant-listing | |
| Merchant listing | encoding | 100K - 1M | Yes | merchant-listing | |
| Merchant listing | contentUrl | 10M+ | Yes | merchant-listing | |
| Merchant listing | price | 10M+ | Yes | merchant-listing | |
| Merchant listing | priceCurrency | 10M+ | Yes | merchant-listing | |
| Merchant listing | priceSpecification | 1M - 10M | Yes | merchant-listing | |
| Merchant listing | unitCode | 1M - 10M | Yes | merchant-listing | |
| Merchant listing | value | 1M - 10M | Yes | merchant-listing | |
| Merchant listing | issuedBy | 10K - 100K | Yes | merchant-listing | |
| Merchant listing | deliveryTime | 100K - 1M | Yes | merchant-listing | |
| Merchant listing | shippingDestination | 100K - 1M | Yes | merchant-listing | |
| Merchant listing | shippingRate | 100K - 1M | Yes | merchant-listing | |
| Merchant listing | currency | 100K - 1M | Yes | merchant-listing | |
| Merchant listing | addressCountry | 1M - 10M | Yes | merchant-listing | |
| Merchant listing | maxValue | 100K - 1M | Yes | merchant-listing | |
| Merchant listing | minValue | 100K - 1M | Yes | merchant-listing | |
| Merchant listing | applicableCountry | 100K - 1M | No | merchant-listing | |
| Merchant listing | returnPolicyCategory | 100K - 1M | No | merchant-listing | |
| Video | name | 10M+ | Yes | video | |
| Video | thumbnailUrl | 10M+ | Yes | video | |
| Video | uploadDate | 1M - 10M | Yes | video | |
| Video | publication | 1K - 10K | Yes | video | |
| Video | endDate | 100K - 1M | Yes | video | |
| Video | isLiveBroadcast | 10K - 100K | Yes | video | |
| Video | startDate | 100K - 1M | Yes | video | |
| Video | startOffset | 10K - 100K | No | video | |
| Video | url | 10M+ | Yes | video | |
| Video | potentialAction | 10M+ | Yes | video | |
| Video | target | 10M+ | Yes | video | |
| Vacation rental | containsPlace | 10K - 100K | Yes | vacation-rental | |
| Vacation rental | occupancy | 10K - 100K | Yes | vacation-rental | |
| Vacation rental | value | 1M - 10M | Yes | vacation-rental | |
| Vacation rental | identifier | 100K - 1M | Yes | vacation-rental | |
| Vacation rental | image | 10M+ | Yes | vacation-rental | |
| Vacation rental | latitude | 1M - 10M | Yes | vacation-rental | |
| Vacation rental | longitude | 1M - 10M | Yes | vacation-rental | |
| Vacation rental | name | 10M+ | Yes | vacation-rental | |
| Review snippet | author | 10M+ | Yes | review-snippet | |
| Review snippet | itemReviewed | 100K - 1M | Yes | review-snippet | |
| Review snippet | name | 10M+ | Yes | review-snippet | |
| Review snippet | reviewRating | 1M - 10M | Yes | review-snippet | |
| Review snippet | ratingValue | 1M - 10M | Yes | review-snippet | |
| Review snippet | ratingCount | 1M - 10M | Yes | review-snippet | |
| Review snippet | reviewCount | 1M - 10M | Yes | review-snippet | |
| Carousels beta | itemListElement | 10M+ | Yes | carousels-beta | |
| Carousels beta | item | 10M+ | Yes | carousels-beta | |
| Carousels beta | position | 10M+ | Yes | carousels-beta | |
| Carousels beta | image | 10M+ | Yes | carousels-beta | |
| Carousels beta | name | 10M+ | Yes | carousels-beta | |
| Carousels beta | url | 10M+ | Yes | carousels-beta | |
| Discussion forum | author | 10M+ | Yes | discussion-forum | |
| Discussion forum | name | 10M+ | Yes | discussion-forum | |
| Discussion forum | datePublished | 10M+ | Yes | discussion-forum | |
| Discussion forum | text | 1M - 10M | Yes | discussion-forum | |
| Discussion forum | userInteractionCount | 100K - 1M | Yes | discussion-forum | |
| Discussion forum | interactionType | 100K - 1M | Yes | discussion-forum | |
| Product snippet | name | 10M+ | Yes | product-snippet | |
| Product snippet | review | 1M - 10M | Yes | product-snippet | |
| Product snippet | itemListElement | 10M+ | Yes | product-snippet | |
| Product snippet | price | 10M+ | Yes | product-snippet | |
| Product snippet | lowPrice | 1M - 10M | Yes | product-snippet | |
| Product snippet | priceCurrency | 10M+ | Yes | product-snippet | |
| Recipe | image | 10M+ | Yes | recipe | |
| Recipe | name | 10M+ | Yes | recipe | |
| Recipe | itemListElement | 10M+ | Yes | recipe | |
| Recipe | text | 1M - 10M | Yes | recipe | |
| Recipe | position | 10M+ | Yes | recipe | |
| Recipe | url | 10M+ | Yes | recipe | |
| Shipping policy | shippingConditions | 10K - 100K | No | shipping-policy | |
| Shipping policy | addressCountry | 1M - 10M | Yes | shipping-policy | |
| Shipping policy | currency | 100K - 1M | Yes | shipping-policy | |
| Shipping policy | maxValue | 100K - 1M | Yes | shipping-policy | |
| Shipping policy | minValue | 100K - 1M | Yes | shipping-policy | |
| Shipping policy | value | 1M - 10M | Yes | shipping-policy | |
| Carousel | itemListElement | 10M+ | Yes | carousel | |
| Carousel | position | 10M+ | Yes | carousel | |
| Carousel | url | 10M+ | Yes | carousel | |
| Carousel | item | 10M+ | Yes | carousel | |
| Carousel | name | 10M+ | Yes | carousel | |
| Course | description | 10M+ | Yes | course | |
| Course | name | 10M+ | Yes | course | |
| Course | itemListElement | 10M+ | Yes | course | |
| Course | position | 10M+ | Yes | course | |
| Course | url | 10M+ | Yes | course | |
| Job posting | datePosted | 100K - 1M | Yes | job-posting | |
| Job posting | description | 10M+ | Yes | job-posting | |
| Job posting | hiringOrganization | 100K - 1M | Yes | job-posting | |
| Job posting | jobLocation | 100K - 1M | Yes | job-posting | |
| Job posting | title | 100K - 1M | Yes | job-posting | |
| Math solvers | potentialAction | 10M+ | Yes | math-solvers | |
| Math solvers | url | 10M+ | Yes | math-solvers | |
| Math solvers | usageInfo | 1K - 10K | No | math-solvers | |
| Math solvers | target | 10M+ | Yes | math-solvers | |
| Math solvers | learningResourceType | 10K - 100K | Yes | math-solvers | |
| Q&A page | mainEntity | 1M - 10M | Yes | qapage | |
| Q&A page | answerCount | 100K - 1M | Yes | qapage | |
| Q&A page | acceptedAnswer | 1M - 10M | Yes | qapage | |
| Q&A page | suggestedAnswer | 10K - 100K | Yes | qapage | |
| Q&A page | text | 1M - 10M | Yes | qapage | |
| Breadcrumb | itemListElement | 10M+ | Yes | breadcrumb | |
| Breadcrumb | item | 10M+ | Yes | breadcrumb | |
| Breadcrumb | name | 10M+ | Yes | breadcrumb | |
| Breadcrumb | position | 10M+ | Yes | breadcrumb | |
| Education Q&A | hasPart | 100K - 1M | Yes | education-qa | |
| Education Q&A | acceptedAnswer | 1M - 10M | Yes | education-qa | |
| Education Q&A | eduQuestionType | 1K - 10K | No | education-qa | |
| Education Q&A | text | 1M - 10M | Yes | education-qa | |
| Employer rating | itemReviewed | 100K - 1M | Yes | employer-rating | |
| Employer rating | ratingCount | 1M - 10M | Yes | employer-rating | |
| Employer rating | ratingValue | 1M - 10M | Yes | employer-rating | |
| Employer rating | reviewCount | 1M - 10M | Yes | employer-rating | |
| Event | location | 1M - 10M | Yes | event | |
| Event | address | 10M+ | Yes | event | |
| Event | name | 10M+ | Yes | event | |
| Event | startDate | 100K - 1M | Yes | event | |
| Loyalty program | description | 10M+ | Yes | loyalty-program | |
| Loyalty program | hasTiers | 1K - 10K | Yes | loyalty-program | |
| Loyalty program | name | 10M+ | Yes | loyalty-program | |
| Loyalty program | hasTierBenefit | 1K - 10K | Yes | loyalty-program | |
| Return policy | applicableCountry | 100K - 1M | No | return-policy | |
| Return policy | returnPolicyCategory | 100K - 1M | No | return-policy | |
| Return policy | merchantReturnLink | 10K - 100K | No | return-policy | |
| Return policy | returnPolicySeasonalOverride | 1K - 10K | No | return-policy | |
| Dataset | description | 10M+ | Yes | dataset | |
| Dataset | name | 10M+ | Yes | dataset | |
| Dataset | contentUrl | 10M+ | Yes | dataset | |
| Local business | address | 10M+ | Yes | local-business | |
| Local business | name | 10M+ | Yes | local-business | |
| Local business | image | 10M+ | Yes | local-business | |
| Software app | name | 10M+ | Yes | software-app | |
| Software app | price | 10M+ | Yes | software-app | |
| Software app | review | 1M - 10M | Yes | software-app | |
| Image license metadata | contentUrl | 10M+ | Yes | image-license-metadata | |
| Image license metadata | creator | 1M - 10M | Yes | image-license-metadata | |
| Movie | image | 10M+ | Yes | movie | |
| Movie | name | 10M+ | Yes | movie | |
| Profile page | mainEntity | 1M - 10M | Yes | profile-page | |
| Profile page | name | 10M+ | Yes | profile-page | |
| Speakable | cssSelector | 100K - 1M | Yes | speakable | |
| Speakable | xPath | Not a Schema.org property | speakable | ||
| Paywalled content | isAccessibleForFree | 100K - 1M | Yes | paywalled-content | |
| Product variants | name | 10M+ | Yes | product-variants |
Required properties Schema.org has not settled
6 of the 30 features rest on at least one required property Schema.org has not folded into a numbered release yet. That is a different question from how much the web uses a property. applicableCountry and returnPolicyCategory already sit on 100,000 to a million websites, heavy adoption by any measure, and Schema.org still lists both as pending.
Schema.org describes its own pending section as "a staging area for work-in-progress terms which have yet to be accepted into the core vocabulary". It warns that "pending terms are subject to change and should be used with caution", and cautions that a pending term "may lack consensus and that terminology and definitions could still change significantly after community and steering group review". You can read the whole description at Schema.org's own documentation for the pending section.
Return policy carries 4 of the 10 pending required properties on this page, applicableCountry, returnPolicyCategory, merchantReturnLink, returnPolicySeasonalOverride, more than any other feature. If you already implement returns markup, you already rely on wording Schema.org itself says could still change. That is not a reason to avoid it. It is a reason to expect you might revisit it.
| Feature | Property | Band | Google page | Page updated |
|---|---|---|---|---|
| Merchant listing | applicableCountry | 100K - 1M | merchant-listing | |
| Merchant listing | returnPolicyCategory | 100K - 1M | merchant-listing | |
| Video | startOffset | 10K - 100K | video | |
| Shipping policy | shippingConditions | 10K - 100K | shipping-policy | |
| Math solvers | usageInfo | 1K - 10K | math-solvers | |
| Education Q&A | eduQuestionType | 1K - 10K | education-qa | |
| Return policy | applicableCountry | 100K - 1M | return-policy | |
| Return policy | returnPolicyCategory | 100K - 1M | return-policy | |
| Return policy | merchantReturnLink | 10K - 100K | return-policy | |
| Return policy | returnPolicySeasonalOverride | 1K - 10K | return-policy |
How much of the vocabulary a rich result ever names
Schema.org publishes 1,529 properties, and I checked how many are named by any documented rich result, required or recommended, across every live and retired feature I hold. 262 are. No documented rich result names the rest, which is 82.86% of everything Schema.org publishes. If you want the exact count instead of the share, subtract 262 from 1,529.
That gap is not a defect in either list. Google documents rich results for a curated set of specific page types, recipes, jobs, events and the rest, and most of what Schema.org describes was never built around one of those. A property with no documented rich result is a property Google has not built a feature around, not a property that is somehow wrong to use.
If a type you are marking up has no live feature anywhere on this site's other reports, that is the expected shape of the data, not a sign you are wasting effort. A rich result is one specific reward among several reasons to publish structured data, and search engines can still read a property that carries no rich result at all.
| Measure | Share |
|---|---|
| Named by a documented rich result | 17.14% |
| No documented rich result names it | 82.86% |
| All properties Schema.org publishes | 100.00% |
Known limits of this data
- Google's required-property tables list one thing that is not a Schema.org property at all, xPath on the speakable feature. I keep it in the required-property table because Google asks for it, and it carries no usage figure, because there is nothing in Schema.org for it to have one against. It is not counted in any of the band figures on this page.
- Names with a dot in them, such as offers.price and ListItem.position, are Google notation for a property nested inside another type rather than Schema.org terms in their own right. The usage figure against them is for the last part of the name.
How this is measured
I read every required and recommended property out of the markup of Google Search Central's own pages, the same capture the recommended-gap report uses, taken on 11 August 2026. Every row below carries the address of the page it came from and that page's own last-updated date, because Google rewrites these pages without announcing it, and a requirement quoted without a date is a claim about a target that has already moved.
I then matched every required property against Google's usage file for July 2026, the same file the rest of this project is built from, to find which band each one sits in. Where Google names something that is not a Schema.org property at all, the known limits below say so, and that entry carries no band, because there is nothing in Schema.org for it to have one against.
Two different kinds of number sit side by side here. The property counts are exact, because they come from counting entries in a published file rather than sampling one. The bands are not. Google publishes six ranges and never the figure inside one, so a property you can see sits on 1,000 to 10,000 websites has no exact public figure, here or anywhere else.
You can download the same figures as JSON or CSV and check any number on this page against them.
Usage snapshot July 2026. Requirements read 11 August 2026. Built 19 August 2026.
Analysis © Eduard Dziak, licensed under the Apache License 2.0. Please credit eduarddziak.com with a link. Source data: Google and the Schema.org community, Schema.org usage statistics dataset. Rich result requirements: Google Search Central, licensed CC BY 4.0. Term descriptions: Schema.org, licensed CC BY-SA 3.0, each term linking to its own page. Crawl counts: HTTP Archive Web Almanac, licensed Apache License 2.0.