# What changed, and how long adoption takes 136 Schema.org terms ended three archived months in a different usage band, 87 have been superseded with a documented replacement, and 22 are already on 100,000 websites before Schema.org has ratified them. > Source: https://eduarddziak.com/structured-data/schema-usage/ > Snapshot: July 2026 > Updated: 2026-08-18 > Data: /data/schema-stats.json and /data/schema-stats.csv > Licence: Apache 2.0, credit requested ## Summary | Measure | Value | | --- | --- | | Terms moved | 136 | | Unstable | 2 | | Superseded, with a replacement | 87 | | Unratified, widely used | 22 | | Moved up a band | 131 | | Moved down a band | 5 | | Snapshot | July 2026 | ## What moved between months 131 terms moved up a band and 5 moved down. Read as growth that would be remarkable, and you should not read it as growth. Google's counting settles for a while after a term appears, so some of what looks like a term spreading across the web is really Google's measurement of it catching up. I cannot separate the two from three months of band data, so I am telling you the number and the reason to distrust it at the same time. Two terms crossed a band boundary and crossed back. customerRemorseReturnLabelSource and purchaseDate are counted as unstable rather than as movement in either direction, because a term that flickers across a boundary has not moved anywhere. That is why I count 136 terms that moved as 131 plus 5, and not the 138 rows in the table below. | Term | Kind | Band, May 2026 | Band, June 2026 | Band, July 2026 | | --- | --- | --- | --- | --- | | address | Property | 1M - 10M | 10M+ | 10M+ | | affiliation | Property | 10K - 100K | 10K - 100K | 100K - 1M | | albumProductionType | Property | < 1K | 1K - 10K | 1K - 10K | | applicationCategory | Property | 100K - 1M | 1M - 10M | 1M - 10M | | applicationDeadline | Property | < 1K | < 1K | 1K - 10K | | Article | Class | 1M - 10M | 1M - 10M | 10M+ | | artworkSurface | Property | < 1K | < 1K | 1K - 10K | | AskAction | Class | < 1K | < 1K | 1K - 10K | | athlete | Property | < 1K | < 1K | 1K - 10K | | AutoRental | Class | 1K - 10K | 10K - 100K | 10K - 100K | | availability | Property | 1M - 10M | 10M+ | 10M+ | | availabilityEnds | Property | 1K - 10K | 1K - 10K | 10K - 100K | | availableChannel | Property | 10K - 100K | 100K - 1M | 100K - 1M | | award | Property | 10K - 100K | 10K - 100K | 100K - 1M | | BarOrPub | Class | 1K - 10K | 10K - 100K | 10K - 100K | | bodyLocation | Property | 1K - 10K | 10K - 100K | 10K - 100K | | broadcastOfEvent | Property | < 1K | 1K - 10K | 1K - 10K | | businessFunction | Property | 10K - 100K | 1M - 10M | 1M - 10M | | BusTrip | Class | < 1K | < 1K | 1K - 10K | | BuyAction | Class | 10K - 100K | 1M - 10M | 1M - 10M | | Casino | Class | 10K - 100K | 100K - 1M | 100K - 1M | | Certification | Class | 1K - 10K | 10K - 100K | 10K - 100K | | certificationStatus | Property | < 1K | 1K - 10K | 1K - 10K | | character | Property | < 1K | 1K - 10K | 1K - 10K | | ChemicalSubstance | Class | < 1K | < 1K | 1K - 10K | | coach | Property | < 1K | < 1K | 1K - 10K | | ComedyEvent | Class | < 1K | 1K - 10K | 1K - 10K | | competitor | Property | 1K - 10K | 1K - 10K | 10K - 100K | | containedIn | Property | 1K - 10K | 10K - 100K | 10K - 100K | | contentType | Property | 1K - 10K | 10K - 100K | 10K - 100K | | contraindication | Property | < 1K | 1K - 10K | 1K - 10K | | Course | Class | 10K - 100K | 100K - 1M | 100K - 1M | | courseCode | Property | 1K - 10K | 10K - 100K | 10K - 100K | | creditText | Property | 10K - 100K | 100K - 1M | 100K - 1M | | dataset | Property | < 1K | 1K - 10K | 1K - 10K | | deliveryMethod | Property | 10K - 100K | 100K - 1M | 100K - 1M | | DeliveryMethod | Class | < 1K | 1K - 10K | 1K - 10K | | dependencies | Property | 1K - 10K | 1K - 10K | 10K - 100K | | Dermatology | Class | < 1K | 1K - 10K | 1K - 10K | | Duration | Class | 1K - 10K | 10K - 100K | 10K - 100K | | EducationalOccupationalCredential | Class | 10K - 100K | 10K - 100K | 100K - 1M | | eduQuestionType | Property | < 1K | 1K - 10K | 1K - 10K | | eligibleQuantity | Property | 10K - 100K | 10K - 100K | 100K - 1M | | epidemiology | Property | < 1K | < 1K | 1K - 10K | | fileSize | Property | 10K - 100K | 10K - 100K | 100K - 1M | | FindAction | Class | < 1K | < 1K | 1K - 10K | | foundingDate | Property | 100K - 1M | 1M - 10M | 1M - 10M | | foundingLocation | Property | 10K - 100K | 100K - 1M | 100K - 1M | | fuelEfficiency | Property | 1K - 10K | 10K - 100K | 10K - 100K | | funder | Property | 1K - 10K | 10K - 100K | 10K - 100K | | gameItem | Property | 1K - 10K | 10K - 100K | 10K - 100K | | hasCertification | Property | 1K - 10K | 1K - 10K | 10K - 100K | | hasCredential | Property | 10K - 100K | 100K - 1M | 100K - 1M | | hasDefinedTerm | Property | 1K - 10K | 10K - 100K | 10K - 100K | | hasTierBenefit | Property | < 1K | 1K - 10K | 1K - 10K | | hasTiers | Property | < 1K | 1K - 10K | 1K - 10K | | Hotel | Class | 10K - 100K | 10K - 100K | 100K - 1M | | howPerformed | Property | 1K - 10K | 1K - 10K | 10K - 100K | | icaoCode | Property | < 1K | 1K - 10K | 1K - 10K | | inProductGroupWithID | Property | 1K - 10K | 10K - 100K | 10K - 100K | | installUrl | Property | 10K - 100K | 100K - 1M | 100K - 1M | | isSimilarTo | Property | 1K - 10K | 1K - 10K | 10K - 100K | | isVariantOf | Property | 1K - 10K | 10K - 100K | 10K - 100K | | jobTitle | Property | 100K - 1M | 1M - 10M | 1M - 10M | | jurisdiction | Property | < 1K | 1K - 10K | 1K - 10K | | knowsLanguage | Property | 10K - 100K | 100K - 1M | 100K - 1M | | legislationIdentifier | Property | < 1K | 1K - 10K | 1K - 10K | | legislationType | Property | < 1K | < 1K | 1K - 10K | | MedicalAudience | Class | 1K - 10K | 10K - 100K | 10K - 100K | | MedicalBusiness | Class | 10K - 100K | 10K - 100K | 100K - 1M | | MedicalGuideline | Class | < 1K | < 1K | 1K - 10K | | medicalSpecialty | Property | 10K - 100K | 100K - 1M | 100K - 1M | | memberOf | Property | 10K - 100K | 10K - 100K | 100K - 1M | | membershipPointsEarned | Property | < 1K | < 1K | 1K - 10K | | menuAddOn | Property | 1K - 10K | 10K - 100K | 10K - 100K | | MerchantReturnPolicySeasonalOverride | Class | < 1K | 1K - 10K | 1K - 10K | | Message | Class | < 1K | 1K - 10K | 1K - 10K | | MobileApplication | Class | 10K - 100K | 100K - 1M | 100K - 1M | | numberOfAxles | Property | < 1K | < 1K | 1K - 10K | | numberOfBedrooms | Property | 10K - 100K | 10K - 100K | 100K - 1M | | numberOfEpisodes | Property | 1K - 10K | 10K - 100K | 10K - 100K | | Offer | Class | 1M - 10M | 10M+ | 10M+ | | offerCount | Property | 100K - 1M | 1M - 10M | 1M - 10M | | offers | Property | 1M - 10M | 10M+ | 10M+ | | operatingSystem | Property | 100K - 1M | 1M - 10M | 1M - 10M | | Order | Class | < 1K | 1K - 10K | 1K - 10K | | parent | Property | < 1K | 1K - 10K | 1K - 10K | | percentile25 | Property | < 1K | 1K - 10K | 1K - 10K | | percentile75 | Property | < 1K | 1K - 10K | 1K - 10K | | performers | Property | 1K - 10K | 10K - 100K | 10K - 100K | | performTime | Property | 1K - 10K | 1K - 10K | 10K - 100K | | playerType | Property | 1K - 10K | 1K - 10K | 10K - 100K | | polygon | Property | < 1K | 1K - 10K | 1K - 10K | | PostalAddress | Class | 1M - 10M | 10M+ | 10M+ | | practicesAt | Property | < 1K | 1K - 10K | 1K - 10K | | price | Property | 1M - 10M | 10M+ | 10M+ | | priceCurrency | Property | 1M - 10M | 10M+ | 10M+ | | Product | Class | 1M - 10M | 10M+ | 10M+ | | ProfilePage | Class | 100K - 1M | 1M - 10M | 1M - 10M | | provider | Property | 100K - 1M | 1M - 10M | 1M - 10M | | question | Property | < 1K | < 1K | 1K - 10K | | referenceQuantity | Property | 10K - 100K | 1M - 10M | 1M - 10M | | regionsAllowed | Property | 1K - 10K | 10K - 100K | 10K - 100K | | RegisterAction | Class | 1K - 10K | 1K - 10K | 10K - 100K | | relevantSpecialty | Property | 1K - 10K | 1K - 10K | 10K - 100K | | School | Class | 1K - 10K | 1K - 10K | 10K - 100K | | ScreeningEvent | Class | < 1K | 1K - 10K | 1K - 10K | | season | Property | < 1K | 1K - 10K | 1K - 10K | | SelfStorage | Class | 1K - 10K | 10K - 100K | 10K - 100K | | ServiceChannel | Class | 10K - 100K | 100K - 1M | 100K - 1M | | serviceType | Property | 100K - 1M | 100K - 1M | 1M - 10M | | SoftwareApplication | Class | 100K - 1M | 100K - 1M | 1M - 10M | | specialCommitments | Property | < 1K | 1K - 10K | 1K - 10K | | spokenByCharacter | Property | < 1K | 1K - 10K | 1K - 10K | | SurgicalProcedure | Class | < 1K | 1K - 10K | 1K - 10K | | taxID | Property | 10K - 100K | 100K - 1M | 100K - 1M | | TaxiService | Class | 1K - 10K | 1K - 10K | 10K - 100K | | totalJobOpenings | Property | < 1K | < 1K | 1K - 10K | | TrainStation | Class | < 1K | 1K - 10K | 1K - 10K | | transcript | Property | 10K - 100K | 10K - 100K | 100K - 1M | | TypeAndQuantityNode | Class | < 1K | < 1K | 1K - 10K | | typicalTest | Property | < 1K | 1K - 10K | 1K - 10K | | unitCode | Property | 100K - 1M | 1M - 10M | 1M - 10M | | validUntil | Property | < 1K | 1K - 10K | 1K - 10K | | variesBy | Property | 10K - 100K | 100K - 1M | 100K - 1M | | version | Property | 1K - 10K | 1K - 10K | 10K - 100K | | VideoGameSeries | Class | < 1K | 1K - 10K | 1K - 10K | | warning | Property | < 1K | < 1K | 1K - 10K | | WatchAction | Class | 10K - 100K | 100K - 1M | 100K - 1M | | webFeed | Property | 1K - 10K | 10K - 100K | 10K - 100K | | workTranslation | Property | 1K - 10K | 10K - 100K | 10K - 100K | | LiveBlogPosting | Class | 10K - 100K | 1K - 10K | 1K - 10K | | masthead | Property | 10K - 100K | 1K - 10K | 1K - 10K | | paymentMethodType | Property | 1K - 10K | 1K - 10K | < 1K | | PlayAction | Class | 10K - 100K | 10K - 100K | 1K - 10K | | RadioEpisode | Class | 1K - 10K | 1K - 10K | < 1K | | customerRemorseReturnLabelSource | Property | < 1K | 1K - 10K | < 1K | | purchaseDate | Property | 1K - 10K | < 1K | 1K - 10K | ## Terms Schema.org has replaced 87 terms in Google's file have been superseded, and every one of them has a documented replacement. 12 are still on ten thousand websites or more, so this is not a list of terms nobody touched. If you are using one of them, the table below tells you what to use instead. Two of those replacements have themselves been replaced, because area points at serviceArea, which itself points at areaServed, and seasons points at season, which itself points at containsSeason. Where a replacement has its own row here, the table links to it, so you can follow a chain to its end rather than stopping one step short and marking up a term that is also on its way out. | Term | Kind | Band | Replaced by | | --- | --- | --- | --- | | interactionCount | Property | 100K - 1M | interactionStatistic | | blogPosts | Property | 10K - 100K | blogPost | | branchOf | Property | 10K - 100K | parentOrganization | | containedIn | Property | 10K - 100K | containedInPlace | | fileFormat | Property | 10K - 100K | encodingFormat | | founders | Property | 10K - 100K | founder | | language | Property | 10K - 100K | inLanguage | | menu | Property | 10K - 100K | hasMenu | | performers | Property | 10K - 100K | performer | | photos | Property | 10K - 100K | photo | | serviceArea | Property | 10K - 100K | areaServed | | UserComments | Class | 10K - 100K | InteractionCounter | | actors | Property | 1K - 10K | actor | | area | Property | 1K - 10K | serviceArea | | awards | Property | 1K - 10K | award | | benefits | Property | 1K - 10K | jobBenefits | | employees | Property | 1K - 10K | employee | | events | Property | 1K - 10K | event | | free | Property | 1K - 10K | isAccessibleForFree | | ingredients | Property | 1K - 10K | recipeIngredient | | map | Property | 1K - 10K | hasMap | | maps | Property | 1K - 10K | hasMap | | requirements | Property | 1K - 10K | softwareRequirements | | reviews | Property | 1K - 10K | review | | season | Property | 1K - 10K | containsSeason | | serviceAudience | Property | 1K - 10K | audience | | significantLinks | Property | 1K - 10K | significantLink | | UserCheckins | Class | 1K - 10K | InteractionCounter | | albums | Property | < 1K | album | | application | Property | < 1K | actionApplication | | aspect | Property | < 1K | mainContentOfPage | | assembly | Property | < 1K | executableLibraryName | | attendees | Property | < 1K | attendee | | bookingAgent | Property | < 1K | broker | | branch | Property | < 1K | arterialBranch | | carrier | Property | < 1K | provider | | catalog | Property | < 1K | includedInDataCatalog | | clincalPharmacology | Property | < 1K | clinicalPharmacology | | Code | Class | < 1K | SoftwareSourceCode | | colleagues | Property | < 1K | colleague | | collection | Property | < 1K | targetCollection | | contactPoints | Property | < 1K | contactPoint | | course | Property | < 1K | exerciseCourse | | datasetTimeInterval | Property | < 1K | temporalCoverage | | DatedMoneySpecification | Class | < 1K | MonetaryAmount | | DeliveryTimeSettings | Class | < 1K | ShippingConditions | | device | Property | < 1K | availableOnDevice | | directors | Property | < 1K | director | | encodings | Property | < 1K | encoding | | episodes | Property | < 1K | episode | | hasProductReturnPolicy | Property | < 1K | hasMerchantReturnPolicy | | incentives | Property | < 1K | incentiveCompensation | | includedDataCatalog | Property | < 1K | includedInDataCatalog | | isBasedOnUrl | Property | < 1K | isBasedOn | | members | Property | < 1K | member | | merchant | Property | < 1K | seller | | musicGroupMember | Property | < 1K | member | | namedPosition | Property | < 1K | roleName | | option | Property | < 1K | actionOption | | parents | Property | < 1K | parent | | partOfTVSeries | Property | < 1K | partOfSeries | | paymentDue | Property | < 1K | paymentDueDate | | produces | Property | < 1K | serviceOutput | | productReturnDays | Property | < 1K | merchantReturnDays | | ProductReturnEnumeration | Class | < 1K | MerchantReturnEnumeration | | productReturnLink | Property | < 1K | merchantReturnLink | | ProductReturnPolicy | Class | < 1K | MerchantReturnPolicy | | runtime | Property | < 1K | runtimePlatform | | sampleType | Property | < 1K | codeSampleType | | Season | Class | < 1K | CreativeWorkSeason | | seasons | Property | < 1K | season | | siblings | Property | < 1K | sibling | | steps | Property | < 1K | step | | subEvents | Property | < 1K | subEvent | | surface | Property | < 1K | artworkSurface | | Taxi | Class | < 1K | TaxiService | | tracks | Property | < 1K | track | | UserBlocks | Class | < 1K | InteractionCounter | | UserDownloads | Class | < 1K | InteractionCounter | | UserInteraction | Class | < 1K | InteractionCounter | | UserLikes | Class | < 1K | InteractionCounter | | UserPageVisits | Class | < 1K | InteractionCounter | | UserPlays | Class | < 1K | InteractionCounter | | UserPlusOnes | Class | < 1K | InteractionCounter | | UserTweets | Class | < 1K | InteractionCounter | | vendor | Property | < 1K | seller | | warrantyPromise | Property | < 1K | warranty | ## Terms the web uses before Schema.org ratifies them 22 terms sit in Schema.org's pending section, which means the vocabulary has published them for use without yet folding them into a numbered release, and every one of them is already on a hundred thousand websites or more. Most of them are retail, and specifically returns and product variants, which is the same signal the recommended gap report finds from the other direction. Schema.org itself describes the pending section as "a staging area for work-in-progress terms which have yet to be accepted into the core vocabulary", and it warns that "pending terms are subject to change and should be used with caution". You can read the whole description at [Schema.org's own documentation for the pending section](https://schema.org/docs/pending.home.html). What this means for you is a judgement rather than a rule. A pending term being widely implemented makes it a reasonable choice rather than an exotic one, and being unratified means it is not settled. | Term | Band | | --- | --- | | applicableCountry | 100K - 1M | | creditText | 100K - 1M | | EducationalOccupationalCredential | 100K - 1M | | eventAttendanceMode | 100K - 1M | | gtin | 100K - 1M | | hasCredential | 100K - 1M | | hasMerchantReturnPolicy | 100K - 1M | | hasVariant | 100K - 1M | | jobTitle | 1M - 10M | | knowsAbout | 100K - 1M | | knowsLanguage | 100K - 1M | | merchantReturnDays | 100K - 1M | | MerchantReturnPolicy | 100K - 1M | | numberOfBedrooms | 100K - 1M | | OnlineStore | 100K - 1M | | ProductGroup | 100K - 1M | | productGroupID | 100K - 1M | | provider | 1M - 10M | | returnFees | 100K - 1M | | returnMethod | 100K - 1M | | returnPolicyCategory | 100K - 1M | | variesBy | 100K - 1M | ## How long a term waits to be used Built from the 877 terms whose invention date can be traced to a dated Schema.org release. 1,610 terms are left out because they were already present in release 2.0, published on 13 May 2015, which is the floor of my archive rather than their true age. Not one datable term has reached the top band, and only two have passed a million websites. Every term the whole web uses was already in the vocabulary before my archive starts, which is exactly why 1,610 terms have no date. So I can date about a third of the vocabulary here, 877 of 2,487 real terms, and the other two thirds stay undated, which is the shape of the archive rather than a fact about adoption. | Year | < 1K | 1K - 10K | 10K - 100K | 100K - 1M | 1M - 10M | 10M+ | Total | | --- | --- | --- | --- | --- | --- | --- | --- | | 2015 | 34 | 29 | 13 | 11 | 0 | 0 | 87 | | 2016 | 60 | 29 | 28 | 6 | 1 | 0 | 124 | | 2017 | 68 | 27 | 28 | 7 | 0 | 0 | 130 | | 2018 | 12 | 17 | 13 | 4 | 1 | 0 | 47 | | 2019 | 55 | 25 | 16 | 6 | 0 | 0 | 102 | | 2020 | 94 | 38 | 17 | 19 | 0 | 0 | 168 | | 2021 | 66 | 16 | 5 | 1 | 0 | 0 | 88 | | 2022 | 10 | 2 | 3 | 2 | 0 | 0 | 17 | | 2023 | 13 | 4 | 2 | 0 | 0 | 0 | 19 | | 2024 | 18 | 9 | 2 | 0 | 0 | 0 | 29 | | 2025 | 49 | 8 | 5 | 0 | 0 | 0 | 62 | | 2026 | 3 | 0 | 1 | 0 | 0 | 0 | 4 | | All | 482 | 204 | 133 | 56 | 2 | 0 | 877 | ## Where terms get stuck A term that was already on a thousand websites or more was about 1.6 times more likely to climb a band across the archived months than a term below a thousand, 6.63% against 4.06%. What you should take from this is that adoption compounds, because a term with existing implementations has examples to copy, documentation written about it and tooling that already emits it, and a term with almost none has none of that. | Group | Terms | Climbed | Rate | | --- | --- | --- | --- | | Started below 1,000 sites | 1,208 | 49 | 4.06% | | Started between 1,000 and 10,000,000 sites | 1,237 | 82 | 6.63% | | Started in the top band | 42 | 0 | Excluded, nowhere to climb | The bottom band has no floor, and some of what you are reading is that shape. Four of the five bands above it span a single factor of ten. The top one is open-ended, and it is excluded here because a term in it has nowhere to climb. The band under a thousand sites runs down from zero and holds terms almost nobody uses, some of which could not cross a thousand sites in three months whatever happened. So part of this gap is the shape of the bands rather than a difference in adoption, and we cannot separate the two from band data alone. Two more considerations bound this comparison. Three archived months is a short window, and the web itself keeps growing underneath it, so some of the movement inside any group reflects the whole vocabulary drifting upward rather than a single term catching on. ## How this is measured Every month Google publishes a file counting how many websites in its index use each Schema.org term, and every month I archive a copy. Every figure here is rebuilt from that archive rather than from a live download, so any number on this page traces back to the month it came from. Google publishes six bands and never the figure inside one, so a term you can see on somewhere between one and ten million websites has no public exact number, here or anywhere. Movement means a term's band changed between the archived months and stayed changed. As the archive grows across more months, this comparison becomes more reliable. The invention dates come from Schema.org's own dated releases rather than from Google's file, which carries no dates at all. That is a different source measuring a different thing, so it sits in its own section here with its own figures and is never combined with a usage band into one number. 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.