Real estate is a genuinely frustrating vertical for structured data because Schema.org does not have a dedicated property listing type. There is no RealEstateListing in the official vocabulary. Practitioners use workarounds — typically Product with a nested Offer for listings, or Place with GeoCoordinates for property location data. Neither is a perfect semantic fit, but both produce structured data that Google can parse and use. The more immediately rewarding schema work for real estate sites is on the agent and brokerage pages, where proper RealEstateAgent and LocalBusiness markup directly supports local search eligibility.
This guide covers the schema types that matter for real estate sites, how to handle the listing page problem, what properties to populate on agent and brokerage pages, a complete JSON-LD example, and the testing steps to confirm everything is working. For a broader view of structured data strategy, visit my schema markup consultant page.
What Is Schema Markup for Real Estate and What Does It Do
Schema markup is structured data added to your pages in a machine-readable format. The vocabulary is Schema.org; the implementation format is JSON-LD, a script block that lives in your page source without touching visible content. For real estate sites, structured data serves two distinct purposes: it establishes agent and brokerage entities in Google’s knowledge graph (supporting local pack eligibility and knowledge panel appearance), and it provides property-level signals that can surface in rich results and AI-mediated search responses.
Schema is not a direct ranking factor. It does not move your agent page from position 8 to position 2. What it does is reduce ambiguity — when Google can read a RealEstateAgent block and confirm that your business serves Mesa, AZ, has a verified phone number and address, and links to recognized industry profiles like Zillow and Realtor.com, it has a more confident entity signal to work with. That confidence affects local pack eligibility and knowledge panel association. See structured data for SEO for more on how this fits into a broader local SEO strategy.
RealEstateAgent and LocalBusiness: Schema Markup for Real Estate Agents and Brokerages
RealEstateAgent is a proper Schema.org type that inherits from LocalBusiness. Use it on agent profile pages and brokerage office pages. The properties worth populating: name, address (as a PostalAddress entity), telephone, url, areaServed, geo (as GeoCoordinates), openingHoursSpecification, and sameAs pointing to your Zillow, Realtor.com, LinkedIn, and Google Business Profile URLs.
Here is a complete JSON-LD example for a brokerage office page:
<script type='application/ld+json'>
{
'@context': 'https://schema.org',
'@type': 'RealEstateAgent',
'name': 'Mesa Premier Realty',
'url': 'https://mesapremierrealty.com',
'telephone': '+1-480-555-0134',
'areaServed': [
'Mesa, AZ',
'Chandler, AZ',
'Gilbert, AZ'
],
'address': {
'@type': 'PostalAddress',
'streetAddress': '900 E Broadway Rd',
'addressLocality': 'Mesa',
'addressRegion': 'AZ',
'postalCode': '85204',
'addressCountry': 'US'
},
'geo': {
'@type': 'GeoCoordinates',
'latitude': '33.4152',
'longitude': '-111.8315'
},
'openingHoursSpecification': [
{
'@type': 'OpeningHoursSpecification',
'dayOfWeek': ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
'opens': '09:00',
'closes': '18:00'
}
],
'sameAs': [
'https://www.zillow.com/profile/mesapremier',
'https://www.realtor.com/realestateagents/mesa-premier',
'https://www.linkedin.com/company/mesa-premier-realty'
]
}
</script>
If you are a solo agent rather than a brokerage, layer in a Person entity alongside the RealEstateAgent business entity and link them with employee or founder. The Person entity should include name, jobTitle, url (pointing to your bio page), and sameAs linking to your professional profiles. This two-entity approach — a person entity connected to a business entity — is what helps Google build a robust knowledge graph node for you, rather than treating your agent page as an anonymous local business listing.
Listing Pages: The Product Workaround
For individual property listing pages, the most common approach is to use Product with a nested Offer to carry the price and availability, and a Place entity with GeoCoordinates for the physical location. This is not semantically ideal — a house is not a product in the conventional sense — but it produces structured data that Google can actually parse and use. The alternative is leaving listing pages without schema, which is worse.
For rental properties specifically, Residence or Accommodation are more semantically accurate types. Accommodation supports properties like numberOfRooms, floorSize, and amenityFeature, which map naturally to rental listing data. If your site focuses on rentals, this is worth the extra implementation effort over the generic Product workaround.
Some IDX platforms and MLS feed integrations now output schema automatically. If you are relying on an IDX plugin, check what it is actually outputting with the Schema Markup Validator before assuming the output is complete. The default output from most IDX systems is minimal at best. See how to test schema markup for the validation process.
FAQPage for Buyer, Seller, and Neighborhood Guides
Real estate sites publish a lot of educational content — mortgage guides, neighborhood overviews, process explainers, market reports. These are strong candidates for FAQPage schema when they include a genuine question-and-answer structure. A buyer’s guide that answers ten common questions is a natural fit. A market report written as a narrative is not.
Add BreadcrumbList to listing pages that sit deep in a geographic hierarchy — state > city > neighborhood > street. Real estate sites often have URL structures like /arizona/mesa/downtown/123-main-st/, and a BreadcrumbList that reflects that hierarchy makes the structure legible to crawlers and eligible for breadcrumb display in search results. This is a small implementation step with clear crawl efficiency benefits on large listing catalogs.
See rich snippets for examples of how FAQ and breadcrumb schema appear in real estate search results.
How to Add Real Estate Schema Markup
Implementation options depend on your CMS:
- WordPress with an SEO plugin: Yoast and Rank Math both support
LocalBusinessoutput, but neither natively outputs theRealEstateAgentsubtype. Use Schema Pro or a custom function infunctions.phpfor the agent-specific type. - IDX platforms: Most IDX solutions (Showcase IDX, iHomeFinder, MLS-Touch) have limited schema output. Supplement with a manual JSON-LD block in the page template for agent and location pages.
- Custom builds: Output the JSON-LD server-side with property data interpolated. For listing pages, pull price, address, and status from your database so the schema stays current as listings change status.
For step-by-step implementation, see how to add schema markup.
How to Test Real Estate Schema
Two tools in sequence:
- Google Rich Results Test: Use it on your agent page, brokerage page, and a sample listing page. It will confirm
LocalBusinesseligibility and surface missing required properties. It will not validate theProductworkaround for listings as elegantly as it handles purpose-built types, but it will tell you whether Google can parse the output. - Schema Markup Validator: Run this on the same pages. Look at the entity graph — confirm the
PersonandRealEstateAgententities are linked correctly, thatGeoCoordinatesare present and accurate, and that thesameAsURLs are resolving without redirects or errors.
Common errors: telephone in the wrong format (Schema.org expects E.164 format: +14805550134), geo coordinates that do not match the stated address, and sameAs URLs pointing to unclaimed or duplicate profiles. That last one matters because Google cross-references your schema entities against the profiles you point to — a broken or misdirected sameAs link undermines the entity signal rather than strengthening it.
Real Estate Schema in AI Search and Local Knowledge Graphs
AI Overviews and local AI-powered search features increasingly surface agent and brokerage information from structured data. When a prospective buyer asks an AI assistant for real estate agents serving a specific city, the agents with clean RealEstateAgent entities — proper areaServed, verified sameAs profiles, and consistent NAP (name, address, phone) data across schema and external citations — are the ones the system can answer with confidently.
This is the same principle that drives traditional local SEO, but the structured data layer is more important in AI-mediated answers because the AI cannot visit your office to verify your address. It reads what you have published in machine-readable form. A well-maintained RealEstateAgent block is effectively your data submission to those systems. See schema markup best practices for recommendations on keeping the data current as agents, addresses, and service areas change.
Related Real Estate Schema Reading
- How to Add Schema MarkupWordPress and manual JSON-LD implementation for real estate agent and listing pages
- How to Test Schema MarkupValidation workflow for RealEstateAgent, LocalBusiness, and listing page schema
- Rich SnippetsHow LocalBusiness and FAQ schema surfaces in real estate search results
- Schema Markup for BlogsArticle, BlogPosting, and author entity markup for real estate content marketing
- Schema Markup AuditEntity completeness review covering agent pages, brokerage pages, and listing templates
If you want a structured review of what your agent or brokerage site is outputting, a schema markup audit covers entity completeness and local search eligibility. I work with agents, teams, and brokerages through schema markup consulting. For professional service firms with similar local SEO needs, see the article on schema markup for law firms.