Guide

SEO, AEO and GEO for Real Estate Websites: What to Build

What a brokerage or proptech site must build to be found in search, answer features and AI answers: indexing, listing lifecycle, schema and crawlers, sourced.

Illustration: three overlapping circles labelled SEO, AEO and GEO around indexable listing pages.

The short answer

A listing site is found in search, in answer boxes and in AI answers for the same reason: its pages can be crawled, they return the right HTTP status, and they say something the next IDX site does not. Google states that there are no additional requirements to appear in AI Overviews or AI Mode, and that optimizing for generative AI search is “still SEO”. So the work is mostly engineering: server-rendered listing pages on your own hostname, a deliberate treatment for sold and expired listings, sitemaps with honest dates, structured data that matches the page, and area pages built from data you are licensed to use. For assistants outside Google, the documented controls are robots.txt tokens. No vendor publishes how sources are chosen for an answer.

The terms: SEO is classic search results. AEO (answer engine optimization) is featured snippets and Google's AI features. GEO (generative engine optimization) is answers from assistants such as ChatGPT, Claude, Perplexity and Gemini. Every rule below was read on its publisher's page on October 12, 2026. This is a build checklist, not a promise of rankings.

Three columns listing what to build for SEO, AEO and GEO on a real estate website.
What to build for each of the three. The checklist near the end has the source and the verification step for every item.

1. Serve listing pages from your own hostname, in the HTML

Iframes and vendor subdomains

Many IDX products put listing pages in an iframe or on a hostname the vendor runs. Either way the content lives at the vendor's URL. Google's crawl documentation defines a site as a unique hostname and gives two hostnames on one domain as separate sites with separate crawl budgets, so search.yourbrokerage.com is crawled as a different site from www.yourbrokerage.com. For iframes, the only statement we found is the indexifembedded rule, which lets Google index the content of a page if it's embedded in another page through iframes despite a noindex rule. Nothing there says the embedding page gets the benefit. The option you control is a listing URL on your main hostname, fed from your own systems or a data API; see IDX vendor or custom build.

JavaScript rendering

Google renders JavaScript in a second step: Googlebot queues pages for both crawling and rendering, and a page may stay on this queue for a few seconds, but it can take longer than that. The same page says server-side or pre-rendering is still a good idea because not all bots can run JavaScript. The AI crawler pages cited below do not say whether those crawlers execute scripts. Put the price, address, remarks, photos and the canonical link in the first HTML response and the question goes away; Google warns that conflicting or multiple canonical tags may lead to unexpected results.

The same listing is on every IDX site

Google's documentation does not describe a penalty for this. It describes deduplication: when pages have the same or very similar primary content, Google clusters them together, chooses the one that is objectively the most complete and useful for search users as canonical, and a result usually points to the canonical page. It also says some duplicate content on a site is normal.

Google does not publish how it picks among IDX sites carrying one listing, and we will not guess. One thing follows from the mechanism: a page with only the feed's fields has the same primary content as everyone else's. What you add, within your MLS license, is yours: price and status history, comparable sales, the agent's own notes, a link to an area page with real data. On your own site give each listing one URL with a self-referencing canonical, which Google says to include on the canonical page itself.

2. Decide what happens when a listing stops being active

The default in many builds is a page that says “no longer available” and returns 200. Google calls that a soft 404: such pages are excluded from Search and will continue to be crawled, and waste your budget. Map each status to a response:

SituationTreatmentWhat Google documents
Sold or pending, and your MLS lets you keep displaying it200 with real content: status, dates, permitted sold dataA 2xx response may be considered for indexing; an empty or error-like page becomes a soft 404
Expired, withdrawn or removed, and you may no longer show it404 or 410, with similar homes for the visitorWith no replacement, return a 404 (not found) or 410 (gone); Google treats all 4xx errors, except 429, the same
Relisted, or the URL scheme changed301 to the replacement listingFor a page that has moved or has a clear replacement; a 301 is a strong signal
End date known in advance (open house, auction)unavailable_after meta tag or headerGoogle will not show the page in search results after the specified date/time
Sorted and filtered search resultsCanonical to the unfiltered page, or block in robots.txt. Keep indexable only the few filter combinations you publish as landing pages with their own contentListed as duplicates: the results of sorting and filtering functions; robots.txt is suggested for differently sorted versions of the same page

Do not use noindex to save crawling: Google will still request, but then drop the page. Client-rendered apps that answer 200 for every route are told to redirect to a URL for which the server responds with a 404; server rendering sends the real status. The response also has to change when the listing does: if listing pages are cached or statically regenerated, the job that records a status change must invalidate that page, or a sold listing keeps answering as active until the cache expires. Which statuses you may display at all is set by your MLS (see the display-policy stage in our MLS data pipeline architecture guide).

Sitemaps and crawl budget for a daily-changing inventory

3. Structured data: more vocabulary than rich results

Which schema.org types describe a listing and which rich results Google shows are separate questions. Google says its own documentation, not schema.org, is definitive for Google Search behavior.

schema.org typeDescribesGoogle rich result, October 12, 2026
RealEstateListingThe listing page; schema.org still places it in its “new” areaNone. Google's structured data gallery has no feature for homes for sale or rent. Its one property feature, vacation rental, is limited to sites connected to Google's Hotel Center
SingleFamilyResidenceThe home: bedrooms, bathrooms, floor size, and a yearBuilt that schema.org maps to the RESO YearBuilt field
OfferPrice and terms
PlaceAddress and coordinates
RealEstateAgentThe brokerage or agent; a LocalBusiness subtypeLocal business is supported; Google says to use the most specific LocalBusiness sub-type possible
BreadcrumbListState, city, neighborhood, listingBreadcrumb is supported
FAQPageQuestions and answersWithdrawn: the FAQ rich result is no longer shown in Google Search results, as of May 7, 2026

Listing markup will not produce a listing rich result on Google today. It is still reasonable to publish: Google notes that properties it does not use may be useful for other search engines, services, tools, and platforms. Do not mark up content that is not visible to readers of the page; Google does not guarantee that valid markup is shown. Generate the JSON-LD from the record that renders the page, so a price change cannot leave the two disagreeing. The same reasoning covers FAQPage: this site still emits it for the questions at the end of each guide, as a description of the page, and expects no rich result from it.

4. Area and neighborhood pages: data or doorway

A page for every city, ZIP code and subdivision is easy to generate, and it is the pattern Google's spam policies describe. Doorway examples include multiple domain names or pages targeted at specific regions or cities that funnel users to one page; scaled content abuse includes scraping feeds, search results, or other content to generate many pages of little value. Creating a page per query variation to manipulate rankings or AI responses violates the scaled content abuse policy. An area page earns its place when it holds something the search results page behind it does not:

5. AEO: answers that can be quoted

You cannot nominate a page for a featured snippet; Google systems determine that. To be a supporting link in AI Overviews or AI Mode a page must be indexed and eligible to be shown in Google Search with a snippet, and the site must be included in Search generative AI features in Search Console. What remains is editorial discipline, which we recommend for readers and for accurate quotation, not because any search engine documents a reward for it:

6. GEO: what is documented, and what is not

AI vendors document who their crawlers are and how to allow or block them:

robots.txt tokenOperatorDocumented purpose
OAI-SearchBotOpenAIUsed to surface websites in search results in ChatGPT's search features
GPTBotOpenAIContent that may be used in training; set independently of OAI-SearchBot
ChatGPT-UserOpenAIUser-initiated fetches, where robots.txt rules may not apply
ClaudeBot, Claude-SearchBot, Claude-UserAnthropicIn order: training data, search result quality, and user-directed retrieval; Anthropic says its bots honor robots.txt
PerplexityBotPerplexityDesigned to surface and link websites in search results on Perplexity, not for model training
Google-ExtendedGoogleA control token for Gemini training and grounding that does not impact a site's inclusion in Google Search; AI Overviews and AI Mode follow Googlebot rules

llms.txt is a proposal by Jeremy Howard, first published in September 2024, for a Markdown file that gives agents an overview of a site. Google says it will neither harm nor help visibility in Search, which ignores it, and the AI crawler pages cited above do not mention it. This site publishes an llms.txt and allows AI crawlers in its robots.txt. That describes what we do; we have no evidence that it changes how often anyone cites us.

What is not known: no vendor cited here publishes a formula for which sources an AI answer uses. Google describes retrieval from its index and query fan-out in general terms and warns that no third-party tool has access to its internal ranking or AI systems. Anyone who promises citations in AI answers is guessing. Google's Search Console reporting is the first-party measure; for other assistants, server logs show which user agents fetched which pages, and nothing more.

7. Performance: why photo galleries fail Core Web Vitals

The thresholds are an LCP within 2.5 seconds, an INP of 200 milliseconds or less and a CLS of 0.1 or less, at the 75th percentile of page loads. Google says Core Web Vitals are used by its ranking systems and, in the same answer, that good scores guarantee nothing. A listing page is a hard case for specific reasons:

Our real estate SaaS case study describes this kind of front end: agent IDX websites on Next.js with incremental static regeneration, dynamic imports and images served through S3 and a CDN. See Next.js development and MLS and IDX integration.

8. Local signals: Business Profiles for agents and offices

Google's Business Profile guidelines name real estate agents as individual practitioners. An agent should have a profile only if they operate in a public-facing role and can be contacted at the verified location during stated hours. Where several agents share an office, the brokerage has its own profile and each agent's title should include only the name of the practitioner; a sole agent at a branded office shares one profile named [brand/company]: [practitioner name]. A practitioner shouldn't have multiple Business Profiles for specializations, and a virtual office isn't eligible. Match it on the website: one page per real office.

What to build: the checklist

ItemWhyHow to verify it workedSource
Listing pages on your main hostnameAnother hostname is crawled as a separate siteListing URLs appear under your own property in Search Console's Page Indexing reportCrawl budget
Listing content in the first HTML responseRendering is queued; not every bot runs scriptscurl the URL and find price, address and remarks; compare with URL Inspection's rendered HTMLJavaScript SEO
One URL per listing, self-referencing canonical in the HTMLState your canonical once, consistentlyURL Inspection shows the Google-selected canonical equal to yoursCanonical methods
Status-to-response rules for sold, expired, withdrawnA 200 “not available” page is a soft 404Request a removed listing and read the status code; soft 404 count fallsSoft 404 errors
Sitemap index under the limits; lastmod from listing modification timelastmod is used only when accurateSitemaps report reads every file; only changed listings show a new lastmodBuild a sitemap
JSON-LD generated from the page's own recordMarkup must match visible contentRich Results Test for breadcrumb and local business; spot-check price against the pageStructured data policies
Area pages with licensed statistics, an author, a publish thresholdCity pages that only funnel to search match the doorway examplesEach page shows a dated figure its search results page does notSpam policies
robots.txt decision per AI token, mirrored in the WAFSearch and training crawlers are separateServer logs show the documented user agents receiving 200OpenAI, Anthropic, Perplexity
First gallery photo in the HTML, prioritized, with dimensionsIt is usually the LCP elementField data in the Core Web Vitals report, not one lab runOptimize LCP

Claims to be skeptical of

The claimWhat the primary source says
“We will get you cited in AI Overviews and ChatGPT.”Google: third-party tools can't guarantee performance. The AI vendors document crawler access, not selection.
“GEO replaces SEO.”Google's AI features are rooted in its core Search ranking and quality systems.
“You need llms.txt to appear in AI answers.”It is a proposal; Google Search ignores it.
“Listing schema gets you rich results for your homes.”Google's gallery lists no home listing feature.
“Add FAQ schema for more space in the results.”The FAQ rich result is no longer shown.
“Content must be chunked and rewritten for AI.”Google: no requirement, and no ideal page length.
“A page for every city and keyword captures local searches.”That is the pattern in Google's doorway and scaled content policies.
“Duplicate listings get your site penalized.”Google documents clustering and choosing a canonical, and calls some duplication normal.

MLS rules come first

Search guidance says how to make a page indexable; your MLS agreement decides whether the page may exist, which fields and statuses are public and what attribution is required. Budget the data side with the MLS and IDX cost calculator.

Frequently Asked Questions

Is GEO different from SEO for a real estate website?

For Google, no: its generative AI features are rooted in its core Search ranking and quality systems, with no additional requirements to appear in them. For other assistants, the documented controls are robots.txt tokens; no vendor cited here publishes how sources are chosen.

What should a sold or expired listing page return?

If you may still display it and the page has real content, 200. If it is removed with no replacement, Google says to return a 404 (not found) or 410 (gone). A 200 page that only says the listing is unavailable is a soft 404. Your MLS rules decide which of these you may do.

Is there a Google rich result for real estate listings?

Not on October 12, 2026. Google’s structured data gallery lists no feature for homes for sale or rent. Breadcrumb and local business markup are supported, and the FAQ rich result is no longer shown.

Sources were read on October 12, 2026. Search documentation changes often; check Google's documentation changelog before acting on a rule above. This guide describes published guidance and does not forecast how any page will rank.

Technical consultation

Rebuilding Listing Pages So They Can Be Found?

Tell us how your listing pages are served today and which MLSs feed them. An engineer will tell you which items on this checklist your setup is missing.

  • A 30-minute technical discovery call with an engineer, not a salesperson.
  • Fixed-scope projects, monthly retainers, or a combination, agreed after the call.
  • Small, well-defined tasks get a scoped estimate. We reply within 1 business day.

Prefer to pick a time? Book a call on Calendly

Tell us about your project

We'll review your details and reach out within 1 business day.

Book Strategy CallCase Studies