Real Estate Listing & Broker Offer Schema Markup (JSON-LD)
Structured data for real estate agent listings and MLS brokerage property syndications, encoding date posted, expiration dates, listing agents, and transaction terms.
Displayed below main page header or above the tool container. • Zero CLS Container
Production JSON-LD Code Block
Embed this structured data block directly into your HTML <head> or framework layout template.
{
"@context": "https://schema.org",
"@type": "RealEstateListing",
"@id": "https://example.com/listings/mls-884920#listing",
"name": "MLS #884920 - Luxury Waterfront Townhome",
"datePosted": "2026-09-15",
"validThrough": "2026-12-31",
"about": {
"@type": "SingleFamilyResidence",
"name": "Waterfront Townhome Unit 4B",
"numberOfRooms": 7,
"floorSize": {
"@type": "QuantitativeValue",
"value": 2400,
"unitCode": "FTK"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "350 Harbor View Way",
"addressLocality": "San Diego",
"addressRegion": "CA",
"postalCode": "92101",
"addressCountry": "US"
}
},
"offers": {
"@type": "Offer",
"price": "1450000",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"seller": {
"@type": "RealEstateAgent",
"name": "Pacific Premier Realty",
"telephone": "+1-619-555-0134"
}
}
}Typed Properties Specification (6 Fields)
Key Schema.org properties and sub-objects required to qualify for rich snippet treatment in Google Search.
| Property | Expected Type | Status | Description & Example |
|---|---|---|---|
| name | Text | Required | Official listing headline or MLS identification number. e.g. MLS #884920 - Luxury Waterfront Townhome |
| datePosted | Date (ISO 8601) | Required | The publication date when the listing became active on the market. e.g. 2026-09-15 |
| validThrough | Date (ISO 8601) | Required | Expiration date of the brokerage listing agreement. e.g. 2026-12-31 |
| about | Place / SingleFamilyResidence | Required | The underlying physical real estate property entity being offered. e.g. { "@type": "SingleFamilyResidence", "name": "Waterfront Townhome..." } |
| offers | Offer | Required | Financial terms, list price, currency, and representing brokerage information. e.g. { "@type": "Offer", "price": "1450000", "priceCurrency": "USD" } |
| seller | RealEstateAgent / Organization | Recommended | The licensed real estate brokerage or listing agent representing the property. e.g. { "@type": "RealEstateAgent", "name": "Pacific Premier Realty" } |
Google Search Console Pitfalls & Critical Warnings
Avoid these 3 common validation traps, parser errors, and algorithmic policy penalties when deploying RealEstateListing schema.
Missing 'about' Target Property Entity Nesting
Placing property characteristics directly on RealEstateListing instead of nesting the physical property under 'about' causes Google schema parser confusion.
Nest SingleFamilyResidence or Apartment under the 'about' property.
Expired validThrough Dates Left on Live Listings
Allowing validThrough to lapse into the past marks the listing as expired in search engine indices.
Dynamically renew validThrough upon listing agreement extensions.
Missing Brokerage Seller Entity Attribution
Omitting the representing RealEstateAgent under offers.seller deprives the brokerage of E-E-A-T local authority credit.
Specify the licensed RealEstateAgent or Organization under offers.seller.
Recommended Implementation Scenarios
Related Schema Blueprints
Explore complementary structured data blueprints across the Local Business cluster.
Single Family Residence Sale Schema Markup (JSON-LD)
Residential Condominium Unit Schema Markup (JSON-LD)
Luxury Estate & Penthouse Schema Markup (JSON-LD)
Commercial Office Lease Property Schema Markup (JSON-LD)
Displayed below main page header or above the tool container. • Zero CLS Container