Perplexity and Claude don’t cite listings for their photos. Here’s the exact structured data that gets property listings quoted in AI search.
A buyer asks Perplexity “3-bedroom homes under $600k in Round Rock, Texas” and gets back five listings with addresses, prices, and square footage, fully cited, fully clickable. Your listing was on the market, matched every criterion, and never appeared. Not because your photos were worse. Because the model couldn’t tell your listing had three bedrooms at all.
That’s the uncomfortable truth about generative search for real estate right now: most listing pages are optimized for human eyes and completely opaque to machines. The words “3 bed, 2 bath, 1,850 sq ft” sit inside a paragraph. A language model has to guess whether that’s a fact about the property or filler text next to an ad. Structured data removes the guesswork.
Structured data for property listings means marking up a page’s price, address, square footage, room count, and listing status in schema.org’s RealEstateListing vocabulary as JSON-LD, so AI systems like Perplexity and Claude can extract those facts with certainty instead of inferring them from prose. Listings without it are readable. Listings with it are citable.

Why Property Listings Are Going Invisible in AI Search
The traffic math changed faster than most brokerage marketing teams noticed. Ahrefs’ analysis of AI search overlap found that only 12% of the links ChatGPT, Gemini, and Copilot cite also rank in Google’s top 10 for the same query, meaning ranking well in classic search no longer guarantees you show up in the answer a buyer actually reads. Perplexity breaks that pattern somewhat (about one in three of its citations does rank top 10), but that still leaves most of its citation pool coming from somewhere other than your SEO team’s usual scoreboard.
Profound’s research on AI platform citation patterns goes further: roughly 80% of sources cited across AI search responses never appear in Google’s traditional top 10 for that query. Wikipedia alone accounts for nearly half of ChatGPT’s top-cited sources, and Reddit leads individual-source citations for both Google AI Overviews and Perplexity. Real estate brands built entire content strategies around ranking number one on Google. That strategy is now optimizing for the wrong scoreboard roughly four times out of five.
The 5W AI Platform Citation Source Index 2026, which synthesized more than 680 million citations across ChatGPT, Perplexity, Gemini, Claude, and Google AI Overviews, found the top 15 domains alone absorb 68% of the entire AI answer pipeline. That’s not a level playing field. It’s a small set of trusted, well-structured sources doing most of the talking, with everyone else fighting over what’s left.
For property listings specifically, “well-structured” is not a metaphor. It’s a technical requirement. An AI system that wants to answer “which of these has a two-car garage” needs numberOfRooms, floorSize, and accommodationCategory fields it can parse in milliseconds, not a listing description written by an agent who really wanted to mention the granite countertops first.
None of this means content quality stops mattering. It means content quality alone isn’t enough anymore. The rest of this guide covers what actually gets a listing into the citation, starting with the schema types that matter and ending with the mistakes that keep otherwise excellent listings invisible.
What Is Structured Data, and Why Does It Matter for Property Listings?
Structured data is a standardized, machine-readable layer of code (usually JSON-LD) added to a webpage that explicitly labels facts a human reader would otherwise have to infer from context: this number is a price, this string is an address, this figure is a square footage. Search engines and AI systems read that layer directly instead of parsing sentences, which removes ambiguity and speeds up extraction.
For years, the main reason to add schema markup was rich snippets: star ratings, recipe times, event dates showing up in blue-link search results. That’s still true, but it’s no longer the main reason. Generative engines like Perplexity and Claude don’t render rich snippets. They read the underlying data to decide what a page is about and whether it can answer a query confidently enough to cite. A property page with no schema is, to a language model, just unstructured text competing with every other unstructured description on the internet.
How Does Perplexity Decide Which Property Listings to Cite?
Perplexity retrieves and re-ranks content in real time for most queries, which means it favors pages that answer a question directly, near the top, with facts it can verify against other retrieved sources. When multiple listing pages describe the same property type in the same market, Perplexity is more likely to surface the one where price, location, and specifications are stated as discrete, structured facts rather than buried in marketing copy. It doesn’t have a public, disclosed preference for one schema type over another, and any blog post that hands you a precise percentage for that (we’ve read a few) is guessing. What’s verifiable is the underlying mechanic: retrieval-based systems reward pages that are fast to parse and easy to verify.
How Does Claude Evaluate and Cite Real Estate Content?
Claude’s citation behavior, per Anthropic’s own documentation on its web search tool, works at the passage level, evaluating individual sections of a page rather than treating a domain as a single block of authority. That matters for listing sites specifically, because most real estate pages mix templated boilerplate (agent bios, brokerage disclosures, footer legal text) with the one paragraph that actually answers the query. A model reading passage by passage needs the property facts isolated and labeled, not diluted across a page that’s 80% navigation and disclaimers.
In our own audits of property listing sites for AI visibility, the same failure shows up over and over: gorgeous photography, a well-written description, and zero machine-readable facts underneath it. The page reads beautifully to a person. To a model deciding whether to cite it, it’s an unlabeled photo with some adjectives attached.
Here’s the part that trips up experienced SEO teams the most, and it’s a genuine “I did not expect this” finding: Google Search doesn’t have a dedicated rich-result type for standard for-sale real estate listings at all. It has one for vacation rentals, complete with a documented, supported schema and a rich result in the SERP. For a house or condo listed for sale, there’s no equivalent Google rich snippet waiting on the other side of correct markup. So why bother? Because AI systems consume RealEstateListing schema for entity understanding regardless of whether Google renders a snippet for it. The payoff moved from “prettier search result” to “eligible to be cited at all,” which is a bigger prize with worse visibility into whether you’ve won it.
Which Schema Types Actually Belong on a Property Listing Page?
Schema.org’s RealEstateListing type is the correct top-level wrapper for a for-sale or for-lease property: it represents the listing itself, sitting on a webpage, and nests the property, the offer, and the agent inside it. It’s a newer type in the schema.org vocabulary (flagged “new” as of the May 2026 release), which is exactly why so many listing sites still default to bare Product or Offer markup left over from e-commerce templates. That’s a mismatch: a house is not a SKU, and treating it like one strips out the fields (bedrooms, lot size, HOA status) that actually make a listing citable.
A complete listing schema typically nests four pieces:
| Schema element | What it does | Key properties |
|---|---|---|
RealEstateListing | Wraps the entire listing as it appears on the page | datePosted, url, about |
Residence / Apartment / House | Describes the physical property | numberOfRooms, floorSize, address, amenityFeature |
Offer | Describes the transaction terms | price, priceCurrency, availability, businessFunction |
RealEstateAgent or Organization | Identifies who’s listing it | name, telephone, url |
A minimal, valid example for a single-family listing:
json
{
"@context": "https://schema.org",
"@type": "RealEstateListing",
"datePosted": "2026-07-01",
"url": "https://example.com/listings/123-oak-street",
"about": {
"@type": "House",
"name": "123 Oak Street",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Oak Street",
"addressLocality": "Round Rock",
"addressRegion": "TX",
"postalCode": "78664",
"addressCountry": "US"
},
"numberOfRooms": 3,
"floorSize": {
"@type": "QuantitativeValue",
"value": 1850,
"unitCode": "FTK"
}
},
"offers": {
"@type": "Offer",
"price": 549000,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"businessFunction": "https://schema.org/Sell"
}
}
Every field here answers a question a buyer might ask an AI assistant directly: how much, how big, how many rooms, where, and is it still available. That last one, availability, is one of the most neglected fields on real estate sites we audit, and one of the most costly to skip. Google’s own guidance on Product markup (the closest analog with clear precedent) is explicit that stale availability data damages trust signals over time. A model citing a listing that’s already under contract doesn’t just embarrass you, it wastes the searcher’s time and teaches the AI system your domain isn’t reliable.
What About Photos and Virtual Tours?
Add ImageObject markup with a descriptive caption for each listing photo, and a VideoObject with a transcript or description field for any walkthrough video. AI systems can’t watch your virtual tour. They can read what you tell them is in it. A photo captioned “Primary bedroom, 14×16, south-facing windows” is doing work a bare <img> tag never will.
Do I Need FAQPage Schema Too?
Yes, but with a caveat worth being honest about: Google deprecated most FAQ rich results in Search in 2026, so the SERP-snippet payoff for FAQPage markup is gone for the majority of sites. What survives, and what actually still moves AI citations, is the underlying content structure: a clear question, a direct answer in the first sentence, supporting detail after. Keep the schema (it costs nothing and still helps entity understanding), but don’t mistake it for a magic switch. The writing under it is doing the real work.
The GEO Playbook: How to Write Listing Content AI Can Actually Quote
Schema gets a page noticed. Writing gets it quoted. Researchers at Princeton, Georgia Tech, and the Allen Institute published the foundational study on this in late 2023, later presented at KDD 2024, testing nine content optimization techniques across a 10,000-query benchmark. The headline finding: adding statistics, direct quotations, and citations to a passage lifted its visibility in generative answers by up to 40%, with quotations and hard numbers producing the largest individual gains. That’s not a real estate-specific study, but the mechanic transfers directly: a listing description that states “median days on market in this ZIP code is 11, per the local MLS” is more citable than one that says the neighborhood is “highly sought after.”
Three habits translate that research into listing copy that gets picked up:
Lead with the number, not the adjective. “1,850 square feet, built in 2019” beats “spacious and move-in ready” every time a model is deciding what to extract. Adjectives are opinions. Square footage is a fact a model can verify and quote with confidence.
Answer the implicit question in the first sentence of every section. If a section is about the school district, its first sentence should name the district and rating, not build up to it. Generative engines increasingly favor an inverted-pyramid structure, the answer first, the context after, because it matches how they extract passages for citation.
Cite your own sources. If you’re claiming a neighborhood’s property values rose, name where that came from (county assessor data, a local MLS report, Redfin’s market data). Vague claims like “prices are rising” don’t survive a model’s internal fact-checking. Attributed claims do.
Here’s the part nobody puts in the deck: most agent-written listing copy is optimized for a completely different audience than the one reading it now. It was written to make a buyer feel something walking through the door. It needs to also make a machine confident enough to repeat it. Those two goals aren’t opposed, but they do require different opening sentences. You can still write “sun-drenched kitchen with a view of the greenbelt.” Just don’t make the buyer, or the model, wait three paragraphs to find out it has four bedrooms.
And if you’re the marketing lead reading this thinking “great, now I have to write for robots too,” take some comfort: the industry has been quietly writing for an audience that can’t see nuance for a while now. Every listing already claims to be “cozy” (translation: small) and “move-in ready” (translation: we painted over the water stain). Feeding that same copy to a language model with no structured data underneath is just building a house with great curb appeal and no foundation. The model can see the photo. It has no idea if that’s a two-bedroom condo or a horse ranch, and it’s not going to guess wrong on your behalf just because the listing photo has good lighting.
What Should You Do Right Now? A Listing Audit Checklist
Start with your ten highest-value active listings, not your whole site. Walk each one through this sequence:
- Check for any schema at all. View source or use Google’s Rich Results Test. No JSON-LD block means the page is currently invisible to structured extraction, full stop.
- Confirm the type is
RealEstateListing, not bareProduct. If a template defaulted toProduct, you’re missing address, room count, and property-specific fields entirely. - Verify
availabilityis current. Under-contract or sold properties still markedInStockactively damage trust with anyone (human or model) relying on the data. - Rewrite the opening sentence of the description to lead with a verifiable fact. Price, square footage, or lot size, not an adjective.
- Add captions to every listing image, describing what room and feature is shown.
- Resubmit the URL to Google Search Console after changes to accelerate reprocessing, and confirm the page isn’t blocked in
robots.txtfor AI crawlers likePerplexityBotorClaudeBot.
That’s roughly two hours of work per listing template (it’s usually one template driving hundreds of pages, so the leverage is high) versus weeks of content production with no structural payoff underneath it.
What Mistakes Keep Property Listings Out of AI Overviews?
The most common failure isn’t missing schema. It’s schema that’s technically present but functionally broken, and we see this constantly in agency audits. A <script type="application/ld+json"> block gets pasted into a CMS text editor that auto-converts straight quotes into smart quotes, silently breaking the JSON. It validates on the developer’s local machine and fails in production. Always test the live, rendered page in Google’s Rich Results Test, not just the code before publishing.
The second most common mistake is duplicate Article schema. Most CMS platforms already auto-generate Article markup on blog posts. Adding a second one at the page level creates a type conflict that validators flag as an error and that AI systems may simply ignore in favor of a cleaner competing source. Use WebPage as your root wrapper on any content page, and reserve RealEstateListing specifically for actual listing pages, not blog content about listings.
The third: blocking the bots that would actually cite you. Some sites tighten robots.txt after a bad scraping experience and inadvertently disallow PerplexityBot, ClaudeBot, or GPTBot along with the bad actors. If those user agents can’t crawl your listings, no amount of perfect schema matters. Confirm access explicitly rather than assuming your defaults are fine.
Last, and this one is about patience, not technique: refreshing content once and expecting a permanent citation. GEO performance isn’t a settled state. Models retrain, competitors improve their own markup, and citation source studies show real volatility in which domains get cited month to month. Treat your top listing templates and market pages as living documents, refreshed on a quarterly cadence, not a one-time project.
Frequently Answer Questions
Question: What is structured data for property listings?
Answer: It’s JSON-LD markup, typically using schema.org’s RealEstateListing type, that explicitly labels a listing’s price, address, square footage, room count, and availability so search engines and AI systems can extract those facts directly instead of inferring them from paragraph text.
Question: Should I use Product or RealEstateListing schema for a real estate listing?
Answer: Use RealEstateListing. It’s purpose-built for property listings and supports fields like numberOfRooms and floorSize that generic Product schema doesn’t handle well. Product schema left over from e-commerce templates is one of the most common markup mistakes on listing sites.
Question: Does adding schema markup guarantee my listing gets cited by Perplexity or Claude?
Answer: No. Schema makes a listing eligible for confident extraction; it doesn’t guarantee citation. Content quality, freshness, and how directly the page answers a specific query still determine whether a model actually selects it over a competing source.
Question: Why doesn’t Google show a rich result for my real estate listing the way it does for recipes or products?
Answer: Google currently has a documented, supported rich result for vacation rentals, but not for standard for-sale or for-lease listings. RealEstateListing schema still matters for AI systems reading the page, even without a matching Google SERP snippet.
Structured data won’t write your listings for you, but it decides whether an AI system trusts what you wrote enough to repeat it. Fix the markup on your ten best listings this week, not your entire site. That’s where the citation gap actually closes.
Question: How long does it take to see AI citations improve after adding structured data?
Answer: There’s no fixed timeline, since it depends on crawl frequency and how often the specific query comes up. Resubmitting the URL in Search Console and confirming AI crawler access speeds up reprocessing, but expect weeks, not days, before you can meaningfully evaluate impact.
Ready to audit your listings for AI visibility? Get in touch with Ongito.
