Guide
What is schema and why should agents care?
Schema is a block of structured data in your web page’s code that tells machines, in a fixed vocabulary, exactly who you are: your name, your job title, your license number, your brokerage, your office address and the areas you serve. Real estate agents should care because it is the only part of a website that AI systems never have to interpret. Everything else on the page is prose a model has to guess at. Schema is a label it can simply read.
What does schema actually look like?
The vocabulary is published at schema.org, which lists a type for almost everything, including RealEstateAgent. The modern way to add it is a small JSON-LD block in the page head, a format defined by the JSON-LD specification. Google’s own introduction describes the idea in one sentence:
Structured data is a standardized format for providing information about a page and classifying the page content.
Here is the shape of a block that passes the real estate checks. The bracketed parts are yours:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "RealEstateAgent",
"name": "[Your Name]",
"jobTitle": "REALTOR",
"identifier": { "@type": "PropertyValue", "name": "License", "value": "[number]" },
"telephone": "+1-[your number]",
"email": "[[email protected]]",
"url": "https://yoursite.com/",
"address": { "@type": "PostalAddress", "streetAddress": "[street]",
"addressLocality": "[City]", "addressRegion": "[ST]", "postalCode": "[zip]" },
"geo": { "@type": "GeoCoordinates", "latitude": 33.15, "longitude": -96.82 },
"areaServed": ["[City]", "[Neighborhood]", "[County]"],
"memberOf": { "@type": "Organization", "name": "[Brokerage]" },
"sameAs": ["https://www.linkedin.com/in/[you]", "https://www.zillow.com/profile/[you]"]
}
</script>
Why does the license number matter so much?
Because it is the one fact that makes you unambiguous. There are thousands of agents who share a first and last name with someone else; there is exactly one holder of your license number, and it can be verified in about 10 seconds against the state’s public lookup, which in Texas is the TREC license holder search. A model deciding whether to recommend you is, underneath, deciding whether it is confident it knows who you are. The license number is the highest-weighted single check in the real estate layer of the rubric for that reason, and in our experience most agent websites do not carry it in structured data at all, even when it is printed in the footer.
What else should the block say?
- Address, geo and areaServed together. Address says where your office is; geo puts it on a map; areaServed says where you actually work, which for most agents is 5 to 15 neighborhoods, not one. A model can also read a plain fact like “closed 47 homes in Prosper” from your prose, but it can only trust the address it finds here. The local business check wants all three.
- The same phone and address as the visible page. The checker compares the schema values with what a visitor sees. A mismatch between the two is worse than either alone, because it tells a machine one of them is wrong.
- Reviews in the HTML, not in a widget. AggregateRating and Review markup only count if they are in the served page. A review widget that injects them with JavaScript after load is invisible to most AI crawlers.
- sameAs links to profiles you actually maintain, such as LinkedIn, Zillow, Realtor.com or your brokerage page. They let a model confirm that the person on your site is the same person it has seen elsewhere.
How do I add schema to my site?
On WordPress, Yoast SEO, Rank Math and similar plugins write Person and Organization blocks and let you fill in the fields; adding the license identifier usually means a small custom snippet or a schema plugin. On hosted brokerage platforms the answer varies from a settings panel to “not possible,” and that difference is worth asking about before your next renewal. On a custom site, it is 30 lines in the template and about 20 minutes of work. Whatever the route, test the result, which takes under 5 minutes: paste your address into the Schema Markup Validator and confirm the block parses with no errors, because a block with one stray comma is ignored entirely.
How will I know it made a difference?
Re-run the checker. The AI Signals category reports which schema types it found, and the Real Estate category reports whether it found a name, a title and a license number, an address with coordinates and service area, review markup, and whether the visible contact details match. The change usually shows up as 8 to 12 points on the re-check line, which is often the gap between a C and a B.