Schema Markup for Real Estate Agents: The Complete Guide
The 5 JSON-LD schemas every real estate agent needs, with copy-paste templates and platform-specific installation instructions.
Your website tells humans who you are. Schema markup tells AI.
When a buyer asks ChatGPT "who are the best real estate agents in Austin?", the model doesn't read your website the way a person does. It scans for structured data — machine-readable signals that confirm your identity, location, specialties, and reputation. Without schema markup, AI engines are left guessing. And when they guess, they usually skip you entirely.
Schema markup is the invisible code layer that makes your digital presence legible to AI. It's the difference between being a name on a web page and being a verified entity that AI engines can confidently recommend.
Here's how to implement it correctly.
Why Schema Markup Is the Foundation AI Trusts
Think of schema markup as your AI-readable business card. It uses a standardized vocabulary (from Schema.org) to describe who you are, what you do, and where you operate in a format that search engines and AI models can parse without ambiguity.
Traditional SEO made schema a nice-to-have. In the AI search era, it's table stakes.
Here's why: when ChatGPT or Perplexity retrieves information about real estate agents, it prioritizes sources where the data is structured and verifiable. A website that says "Jane Smith is a top-rated luxury real estate agent in Miami" in flowing prose is harder for an AI to parse than one that explicitly declares the same information in JSON-LD markup. The structured version gets indexed, cross-referenced, and cited. The prose version gets skimmed or missed.
In our audit data, agents with correctly implemented schema markup appear in AI engine recommendations at significantly higher rates than those without it — even when the agents without schema have stronger traditional SEO metrics like backlinks and domain authority. Schema doesn't replace authority, but without it, your authority can't be read by the systems that matter most.
The 5 Schemas Every Real Estate Agent Needs
Not all schema types are equally relevant. These five cover the signals AI engines look for when evaluating whether to recommend a real estate professional.
1. RealEstateAgent
This is your professional identity. It tells AI engines your name, license information, areas you serve, and what you specialize in. It's the most important schema for agents and the one most commonly missing.
Use it on: Your homepage and about page.
2. LocalBusiness
Your physical office presence. Address, phone number, business hours, and service area. This connects you to geographic queries — when someone asks "best agents in Scottsdale," this schema helps AI engines match you to that location.
Use it on: Your contact page and any location-specific pages.
3. FAQPage
Structured question-and-answer content. This does double duty: it helps you appear in featured snippets on Google, and it signals topical expertise to AI engines. The questions themselves tell AI what topics you're authoritative on.
Use it on: Your FAQ page and any page with a Q&A section.
4. Review / AggregateRating
Structured review data from your profiles. AI engines weigh reviews heavily, and structured review markup makes that data easier to parse. This connects your star rating and review count directly to your entity.
Use it on: Your testimonials page and homepage.
5. Article
For blog posts, market reports, and any content you publish. Article schema tells AI who wrote it, when it was published, when it was updated, and what topic it covers. This establishes the authorship chain that builds E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness).
Use it on: Every blog post and market report.
Copy-Paste JSON-LD Templates
Below are working JSON-LD templates for each schema. Replace the [PLACEHOLDER] values with your information and add each snippet to the <head> section of the relevant pages.
RealEstateAgent Schema
{
"@context": "https://schema.org",
"@type": "RealEstateAgent",
"name": "[YOUR FULL NAME]",
"description": "[YOUR SPECIALTY] real estate agent serving [YOUR CITY/AREA]",
"url": "[YOUR WEBSITE URL]",
"telephone": "[YOUR PHONE NUMBER]",
"email": "[YOUR EMAIL]",
"image": "[YOUR HEADSHOT URL]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[OFFICE ADDRESS]",
"addressLocality": "[CITY]",
"addressRegion": "[STATE]",
"postalCode": "[ZIP]",
"addressCountry": "US"
},
"areaServed": [
{
"@type": "City",
"name": "[PRIMARY CITY]"
},
{
"@type": "City",
"name": "[SECONDARY CITY]"
}
],
"knowsAbout": [
"[SPECIALTY 1 - e.g., Luxury Homes]",
"[SPECIALTY 2 - e.g., First-Time Buyers]",
"[SPECIALTY 3 - e.g., Investment Properties]"
],
"hasCredential": {
"@type": "EducationalOccupationalCredential",
"credentialCategory": "Real Estate License",
"recognizedBy": {
"@type": "Organization",
"name": "[STATE] Real Estate Commission"
}
},
"sameAs": [
"[YOUR ZILLOW PROFILE URL]",
"[YOUR REALTOR.COM PROFILE URL]",
"[YOUR LINKEDIN URL]",
"[YOUR INSTAGRAM URL]"
]
}
LocalBusiness Schema
{
"@context": "https://schema.org",
"@type": "RealEstateAgent",
"name": "[YOUR BROKERAGE OR TEAM NAME]",
"url": "[YOUR WEBSITE URL]",
"telephone": "[OFFICE PHONE]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[OFFICE ADDRESS]",
"addressLocality": "[CITY]",
"addressRegion": "[STATE]",
"postalCode": "[ZIP]",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "[LATITUDE]",
"longitude": "[LONGITUDE]"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "09:00",
"closes": "18:00"
}
],
"priceRange": "$$"
}
FAQPage Schema
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What neighborhoods do you specialize in?",
"acceptedAnswer": {
"@type": "Answer",
"text": "[YOUR ANSWER - be specific about areas, neighborhoods, and property types]"
}
},
{
"@type": "Question",
"name": "How long does it take to sell a home in [YOUR CITY]?",
"acceptedAnswer": {
"@type": "Answer",
"text": "[YOUR ANSWER - include current market data if possible]"
}
},
{
"@type": "Question",
"name": "What are your fees and commission rates?",
"acceptedAnswer": {
"@type": "Answer",
"text": "[YOUR ANSWER - be transparent and professional]"
}
}
]
}
AggregateRating Schema
{
"@context": "https://schema.org",
"@type": "RealEstateAgent",
"name": "[YOUR FULL NAME]",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "[YOUR AVERAGE RATING]",
"reviewCount": "[NUMBER OF REVIEWS]",
"bestRating": "5",
"worstRating": "1"
}
}
Article Schema
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "[ARTICLE TITLE]",
"author": {
"@type": "Person",
"name": "[YOUR NAME]",
"url": "[YOUR ABOUT PAGE URL]"
},
"datePublished": "[YYYY-MM-DD]",
"dateModified": "[YYYY-MM-DD]",
"publisher": {
"@type": "Organization",
"name": "[YOUR BROKERAGE OR BRAND NAME]",
"logo": {
"@type": "ImageObject",
"url": "[YOUR LOGO URL]"
}
},
"description": "[META DESCRIPTION OF ARTICLE]",
"image": "[FEATURED IMAGE URL]"
}
Common Mistakes to Avoid
Wrong @type. Using LocalBusiness when you should use RealEstateAgent. The more specific type tells AI engines exactly what kind of business you are. RealEstateAgent is a subtype of LocalBusiness and carries all the same properties, plus industry-specific signals.
Missing required fields. Every schema type has fields that Google and AI engines expect. A RealEstateAgent without areaServed is like a business card without a city — technically valid, but unhelpful.
Duplicate conflicts. Adding schema through both a WordPress plugin and manual code can create conflicting markup. Run the Google Rich Results Test to check for duplicates before and after implementation.
Stale data. Schema that says you're at an old office address or lists outdated specialties actively hurts you. When AI engines find conflicting information between your schema and other sources, they trust neither.
How to Add Schema to Your Website
WordPress (Yoast SEO or RankMath)
Both Yoast and RankMath have built-in schema settings, but they generate generic LocalBusiness markup by default. For real estate agents:
- Go to the SEO plugin's schema settings
- Change the organization type to "Real Estate Agent"
- Fill in all available fields — don't leave anything blank
- For the FAQ and Article schemas, both plugins generate these automatically if you use their content blocks
- For custom schemas (like AggregateRating), use the "Custom Schema" or "Code Snippet" feature to paste the JSON-LD directly
Squarespace
Squarespace has limited built-in schema support. Your best option:
- Go to Settings > Advanced > Code Injection
- Paste your JSON-LD in the Header section
- Use page-specific code injection for Article and FAQ schemas on individual posts
- Test after each addition — Squarespace's code injection can be finicky with formatting
Wix
Wix supports JSON-LD through its SEO settings:
- Go to Site Menu > Marketing & SEO > SEO Tools
- Use the "Structured Data Markup" feature to add schemas page by page
- For site-wide schemas (RealEstateAgent, LocalBusiness), add them to your homepage settings
Custom / Static Sites
Add the JSON-LD directly in a <script type="application/ld+json"> tag in the <head> of each page. This is the cleanest implementation — no plugin overhead, no compatibility issues.
Testing Your Implementation
After adding schema, validate it with these tools:
- Google Rich Results Test (search.google.com/test/rich-results) — paste your URL and see which schemas Google detects
- Schema Markup Validator (validator.schema.org) — checks your JSON-LD syntax against the Schema.org specification
- Run the test on every page type — homepage, about, individual blog posts, testimonials page
Advanced: Nesting Schemas for Maximum Signal
Individual schemas tell AI engines isolated facts. Nested schemas tell a story.
When you connect your RealEstateAgent to your LocalBusiness to your AggregateRating, you create an entity graph — a web of structured relationships that AI engines can traverse. Instead of three separate data points, AI sees one verified entity with a physical location and a reputation score.
Here's what a nested implementation looks like:
{
"@context": "https://schema.org",
"@type": "RealEstateAgent",
"name": "[YOUR NAME]",
"url": "[YOUR WEBSITE]",
"telephone": "[PHONE]",
"address": {
"@type": "PostalAddress",
"streetAddress": "[ADDRESS]",
"addressLocality": "[CITY]",
"addressRegion": "[STATE]",
"postalCode": "[ZIP]"
},
"areaServed": [
{ "@type": "City", "name": "[CITY 1]" },
{ "@type": "City", "name": "[CITY 2]" }
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.9",
"reviewCount": "87"
},
"sameAs": [
"[ZILLOW URL]",
"[REALTOR.COM URL]",
"[LINKEDIN URL]"
],
"knowsAbout": ["Luxury Homes", "Waterfront Properties"],
"parentOrganization": {
"@type": "RealEstateAgent",
"name": "[YOUR BROKERAGE]",
"url": "[BROKERAGE URL]"
}
}
This nested approach does three things that flat schemas can't:
- Establishes entity ownership — AI knows you're part of a brokerage, adding institutional credibility
- Connects reviews to identity — your star rating is attached to your entity, not floating in isolation
- Reduces ambiguity — if there are multiple agents with similar names, the nested graph disambiguates you
REMG-generated client websites implement this nested schema structure automatically. Every site includes the full entity graph — RealEstateAgent linked to the brokerage, connected to aggregated reviews, mapped to service areas, and tied to all directory profiles through sameAs references. It's one of the reasons our clients' AI visibility scores improve within weeks of site launch.
Check If Your Schema Is Working
You can test your schema manually using the tools above. But schema is just one piece of the AI visibility puzzle — and even perfect schema won't help if your reviews are thin, your content is sparse, or your directory listings are inconsistent.
REMG's free AI visibility audit checks your schema presence and correctness as part of a 48-checkpoint analysis across all four major AI engines. You'll see exactly which schemas you have, which ones you're missing, and how they stack up against the agents AI is actually recommending in your market.
Get your free AI visibility audit — it takes minutes and requires no login or website access.
Related reading: The Real Estate Agent's Guide to Generative Engine Optimization | Answer Engine Optimization for Real Estate: The 2026 Playbook | Why AI Search Engines Don't Recommend You
See Where You Stand
Get your free AI visibility audit — 48 checkpoints across ChatGPT, Perplexity, Gemini, and Claude. Takes minutes, no login required.
Get My Free Audit