Your RealEstateAgent schema is shipping as a top-level entity. It's not one.
RealEstateAgent nests under RealEstateAgency via parentOrganization, memberOf, and department. · RealEstateListing offers carry businessFunction for lease versus sale and datePosted for Clear Cooperation freshness. · RESO Web API fields map almost 1:1 into Schema.org Property Resource slots.
Real estate schema has four facts that determine whether Google builds Knowledge Graph confidence in you.
The real estate vertical has its own Schema.org subtypes (RealEstateAgent, RealEstateListing) and they have specific nesting expectations that mirror the state-license structure. Generic LocalBusiness schema applied to a real estate site loses Knowledge Graph confidence by default. The repair is structural.
RealEstateAgent nests under RealEstateAgency. RealEstateAgent is a subtype of LocalBusiness, Organization, Place, and Thing. It does not sit at the top of the page on its own. It nests under RealEstateAgency via parentOrganization (the brokerage), memberOf (NAR or local association), and department (teams within a brokerage). This nesting satisfies NAR SOP 12-9 firm-name disclosure at the schema layer and gives Google's Knowledge Graph a clean entity chain.
RealEstateListing carries the transaction inside offers. RealEstateListing is a subtype of WebPage representing the listing surface. The transactional data nests inside offers using Offer or Demand. businessFunction distinguishes lease from sale. datePosted carries the Clear Cooperation freshness signal sourced from the MLS feed, not from your page-publish timestamp. spatialCoverage handles property boundaries. leaseLength carries rental terms.
RESO Web API maps almost 1:1 into RealEstateListing slots. RESO Data Dictionary 2.0 organizes data into Resources (Property, Member, Office), Fields, and Lookups. Property Resource fields map directly into RealEstateListing: ListPrice into offers.price, BedroomsTotal into numberOfRooms, LivingArea into floorSize, ListingDate into datePosted. MLS-specific custom fields route into additionalProperty so schema validates without losing the local detail. One generator handles every feed.
areaServed carries the local-pack relevance signal. address tells Google where your office is. areaServed tells Google where your service is offered. For an agent licensed across three counties, the physical address narrows the geographic relevance to one ZIP. areaServed (accepting AdministrativeArea, GeoShape, or Place) carries the licensed surface. Post-Vicinity Update, local pack relevance runs on proximity plus geographic surface. areaServed is the structured-data signal that carries that surface.
From schema audit to Knowledge Graph confidence in three weeks. Then rich results accumulate.
- WEEK 0
Schema audit
Every page reviewed for current schema output: organization-level nesting, agent-level nesting under brokerage, listing-level offers structure, datePosted source, areaServed coverage, additionalProperty handling for MLS custom fields. Validation against Schema.org and Google's Rich Results test. Output names the schema gaps per page and the generator scope.
- WEEK 1
Entity architecture
RealEstateAgency node built at the brokerage level. RealEstateAgent nodes nested via parentOrganization, memberOf set to NAR or local association, knowsAbout populated for practice areas, areaServed mapped to the licensed surface. Department nodes built for teams. Hierarchy validates against Schema.org and tracks the state-license structure.
- WEEK 2
Listing generator
RESO Web API fields mapped into RealEstateListing JSON-LD. offers structured with Offer or Demand, businessFunction set per listing type, datePosted wired to the MLS feed for Clear Cooperation freshness. MLS-specific custom fields routed into additionalProperty. Generator runs against every listing in the inventory; new listings inherit the pattern automatically.
- ONGOING
Retainer cadence
Quarterly validation against RESO Data Dictionary updates (the dictionary versions). Quarterly review against Schema.org real estate type changes. Annual schema audit against Google's Rich Results behavior on the vertical (rich result eligibility shifts with algorithm updates).
Named-client testimonials surface here as engagements ship.
Operators who shipped schema that Google's Knowledge Graph accepts.
What operators ask about real estate schema.
-
Where does RealEstateAgent sit in the schema hierarchy?
RealEstateAgent is a subtype of LocalBusiness, Organization, Place, and Thing. It does not sit at the top of an agent or team page on its own. It nests under RealEstateAgency via parentOrganization (the brokerage), memberOf (NAR or local association), and department (teams within a brokerage). This nesting reflects the state-license requirement for brokerage affiliation and gives Google's Knowledge Graph a clean entity chain. -
How do listings ship as schema?
RealEstateListing is a subtype of WebPage. Transactional data nests inside the offers property using Offer or Demand. The businessFunction property on the offer distinguishes lease from sale. datePosted carries the Clear Cooperation freshness signal sourced from the MLS feed. spatialCoverage handles property boundaries. leaseLength carries rental terms. The page is the listing; the offer is the transaction shape. -
Why use areaServed instead of just address?
address tells Google where your office is. areaServed tells Google where your service is offered. For a real estate agent licensed across three counties, the physical address narrows the geographic relevance signal to one ZIP. areaServed (accepting AdministrativeArea, GeoShape, or Place) carries the full licensed surface. Local pack visibility, post-Vicinity Update, runs on proximity plus geographic relevance. areaServed is how you carry the relevance. -
How does the RESO Web API feed map to schema?
The RESO Data Dictionary 2.0 organizes data into Resources (Property, Member, Office), Fields (specific data points), and Lookups (enumerated values). The Property Resource fields map almost 1:1 into RealEstateListing slots: ListPrice into offers.price, BedroomsTotal into numberOfRooms, LivingArea into floorSize. MLS-specific custom fields route into additionalProperty so schema validates without losing the local detail. One generator handles every MLS feed in the inventory.
Build the entity architecture once. Generate listing schema from the RESO Web API feed. Earn the Knowledge Graph confidence. Book a diagnostic.
We read your current schema output per page, your entity nesting under the brokerage, your listing offers structure, and your RESO Web API integration. Diagnostic comes back inside two weeks with the entity architecture scope, the listing-generator design, and the rich-result eligibility map.