Schema reference · Earnest

Real estate schema is two anchor types stitched into the entity relationships the regulatory layer already requires.

  • RealEstateAgent inherits LocalBusiness / Organization / Place / Thing; NAR SOP 12-9 brokerage-affiliation maps onto parentOrganization.
  • RealEstateListing is a WebPage subtype; offers.businessFunction disambiguates LeaseOut versus Sell for Google's structured-data parser.
  • datePosted pulls from the MLS field via the RESO Web API, not the page-publication date, to preserve the Clear Cooperation freshness signal.
NAR-COMPLIANT · FAIR HOUSING-SAFE · MLS/IDX-FLUENT
● BOOKING NEW OPERATORS
[ WHY ] What this spoke covers

The schema patterns that govern Knowledge Graph confidence and rich-result eligibility across both the agent entity and the listing inventory.

Real estate schema architecture is not a free-form Schema.org exercise. The entity relationships are constrained by state license law, NAR rules, and the MLS data layer the RESO Web API ships. The four sections below cover the RealEstateAgent nesting under RealEstateAgency, the RealEstateListing structure with offers.businessFunction, the freshness signal pulled through datePosted, and the additionalProperty pattern for local custom fields the standardized dictionary does not name.

AGENT ANCHOR REALESTATEAGENT
LISTING ANCHOR REALESTATELISTING
TRANSACTION TYPE OFFERS.BUSINESSFUNCTION
[ 01 ]

RealEstateAgent nesting under RealEstateAgency.

RealEstateAgent is a specific Schema.org subtype inheriting from LocalBusiness, Organization, Place, and Thing. Because state license laws and NAR SOP 12-9 require clear brokerage affiliation on every advertising surface, the schema architecture has to reflect the nested entity relationship. The critical slots are parentOrganization (links the agent or team to the overarching brokerage / RealEstateAgency entity), memberOf (signals NAR or local association membership), and department (distinct teams within the brokerage). The brokerage's RealEstateAgency node accrues Knowledge Graph authority across its agents through the parentOrganization back-references; the agent inherits the brokerage's entity authority through the same edge.

[ 02 ]

knowsAbout and areaServed for specialization and geography.

Practice-area specialization (commercial versus residential, luxury versus first-time buyer, relocation versus investor) ships through the knowsAbout property on the RealEstateAgent node. Geographic relevance, paramount for local pack visibility, ships through areaServed, which accepts AdministrativeArea (named jurisdictions), GeoShape (polygon coordinates for non-jurisdictional coverage), or Place (named localities below jurisdiction level). The areaServed property defines geographic relevance for the local algorithm without relying solely on the physical address field, which is the post-Vicinity-Update pattern Google's local pack rewards.

[ 03 ]

RealEstateListing, offers, and businessFunction.

RealEstateListing is a subtype of WebPage and represents the overall listing page. The transactional data nests inside the offers property using the Offer or Demand types. The businessFunction property within the offer specifies the transaction type: http://purl.org/goodrelations/v1#LeaseOut for rentals, http://purl.org/goodrelations/v1#Sell for sale listings. Google's structured-data parser does not reliably infer transaction type from price-and-context heuristics, so a rental listing with a monthly price but no explicit businessFunction may be parsed as a sale at the monthly price and produce broken rich results. The leaseLength property on rental listings communicates the term shape separately.

[ 04 ]

datePosted from the MLS field, not the page publish date.

datePosted on RealEstateListing has to pull from the MLS field sourced via the RESO Web API, not from the CMS page-publication date or last-modified date. NAR's Clear Cooperation Policy requires brokers to submit listings to the MLS within one business day of public marketing, which makes the MLS the canonical freshness source Google's crawlers prioritize on IDX feeds. The schema pipeline pulls datePosted from the OriginalEntryTimestamp or ListContractDate field on the RESO Property Resource, depending on the local MLS convention. Pulling from the page publish date or the CMS modified date breaks the freshness signal and produces listings dated after their actual MLS submission.

[ FAQ ] Common questions

What operators ask about real estate schema before they commit to a full implementation pass.

[ 01 ] Is parentOrganization on RealEstateAgent really required, or just nice to have? +
Required for the entity relationship to read correctly to Google's Knowledge Graph. State license law and NAR SOP 12-9 mandate clear brokerage affiliation in advertising; the parentOrganization property is the schema-side reflection of that mandate. Without parentOrganization, the RealEstateAgent node reads as an unaffiliated practitioner, which is both incorrect (every U.S. agent is sponsored by a brokerage) and a weaker entity signal. The brokerage's RealEstateAgency node accrues authority across its agents through the parentOrganization back-references. The agent inherits the brokerage's entity authority. Both signals strengthen together.
[ 02 ] Why does businessFunction matter on rental listings if the price field is monthly? +
Because Google's structured-data parser does not reliably infer transaction type from price-and-context heuristics. A monthly-priced listing without explicit businessFunction set to LeaseOut may be parsed as a sale at the monthly price, which produces broken rich results and confused SERP eligibility. Setting businessFunction to http://purl.org/goodrelations/v1#LeaseOut for rentals and http://purl.org/goodrelations/v1#Sell for sale listings makes the transaction type unambiguous to Google's parser. leaseLength on rental listings communicates the term shape separately. The pattern ships both fields from the same RESO Web API ingestion path.
[ 03 ] Where should datePosted on a listing actually come from? +
The MLS field, sourced via the RESO Web API, not the page-publication date. The MLS feed is the canonical freshness source per NAR's Clear Cooperation Policy: brokers must submit listings to the MLS within one business day of public marketing, which makes the MLS the definitive timestamp Google's crawlers prioritize on IDX feeds. Pulling datePosted from the page publish date or the CMS modified date breaks the freshness signal and produces listings dated after their actual MLS submission. The schema pipeline pulls datePosted from the OriginalEntryTimestamp or ListContractDate field on the RESO Property Resource, depending on the local MLS convention.
Real estate schema diagnostics · Q3 2026

If the schema layer is half-implemented or auto-generated without the entity nesting, the rich-result eligibility is below where the inventory and the agent's authority would otherwise reach. Book a schema diagnostic.

We read the current schema deployment on the site (RealEstateAgent nesting, RealEstateListing structure, offers.businessFunction coverage, datePosted source per listing, additionalProperty handling for local custom fields), the parentOrganization edge between agent and brokerage entities, and the Knowledge Graph signals the current schema actually emits. Output is the schema-gap assessment plus the implementation scope, sequenced for the brokerage's inventory shape and the agent practice surface. Funnels into our /schema-for-real-estate/ retainer when the work runs deeper than a single-pass implementation.

[ DIAGNOSTIC INTAKE ] Book a diagnostic

Four fields. We respond inside one business day with a few questions to make sure we can help, before either of us spends time on a call.

We use what you submit to qualify, then respond by email. We don't subscribe you to anything.