Real estate is a high-stakes, high-trust purchase, and buyers expect the website to match at every step. Most real estate agent websites don’t. They fail on a handful of fixable problems, and almost all of them trace back to one thing: design, SEO and the psychology of the buyer treated as three separate jobs, handed to three people who never spoke to each other.
Common website issues for real estate agents are the recurring structural faults that keep a site out of search or lose the buyer once they land: filter URLs Google can’t read, duplicated listing and location pages, orphaned deep pages, template builds, sold listings that vanish, a bolted-on IDX feed, and the design, proof and contact gaps that break trust before a form is ever filled.
The numbers say the site matters more every year. In the National Association of Realtors’ 2025 profile of buyers and sellers, effectively every buyer used the internet to search, 52% found the home they bought online, and 70% used a mobile device somewhere in the search. The agent didn’t disappear in the process: 88% of buyers still bought through one, and 91% of sellers still listed with one. But the introduction now happens on a screen, over a median search that runs about ten weeks, and the details below decide whether that introduction happens on your site or on a portal’s.
Below is the table version, each issue with the fix, before we go through them one by one. Most of what ranks for this query is a five-item listicle: mobile, SEO, navigation, stock photos, contacts. What follows is what we changed with our own hands building real estate sites, including Horizon Estate in Bali, where mapping search demand to filter combinations produced around 450 pages that rank.
| Issue | Why it costs you clients | Fix |
|---|---|---|
| Filter URLs Google can’t read | Pages matching live searches stay invisible | Clean, keyword-readable URL for every meaningful filter |
| No unique titles on listing and location pages | Cannibalization — Google ranks none of them well | Unique title, H1 and copy per filter and listing |
| Orphaned deep pages, flat architecture | Your strongest pages are never discovered | Location taxonomy plus a tag system linking down |
| A template site | No URL control, bloated code, slow Core Web Vitals | Custom build — control of structure, code and speed |
| Sold and expired listings that vanish | Address-level traffic and page equity handed to portals | Keep the URL, mark it sold, or redirect deliberately |
| Competing with the portals head-on | You spend the whole budget to come 40th | Pick a territory the portals can’t make specific |
| Commodity content, thin neighborhood pages | Nothing a hundred other sites don’t already say | First-hand local knowledge a model can’t generate |
| A blurred entity across the web | AI and local systems can’t tell who you are | One consistent story, marked up in the code |
| Outdated design | Trust drops in the first seconds, before a word is read | A clean, current design built around the buyer |
| Desktop squished onto mobile | 70% search on a phone; the experience breaks | A mobile layout designed on purpose |
| Unproven claims: no bio, license or track record | The buyer can’t verify you’re real | Agent profile, license, brokerage, sold history |
| Built for “everyone,” no seller path | Speaks clearly to no one; ignores half the market | Design around one buyer, and build the seller journey |
| Dead-end contacts, leads nobody qualifies | Traffic arrives and never converts | Named contact, intent questions, CRM routing |
| A bolted-on IDX/MLS setup | Duplicate content and crawl bloat | Unique area pages linking into a light IDX layer |
I’ve grouped the fourteen into the four stages where a real estate site loses people: Google can’t find you, Google finds you but you win the wrong search, they land but don’t trust or convert, and the IDX special case.
Real estate website SEO issues: indexing and site structure
1. Filter URLs with query parameters and faceted navigation
This is the big one, and almost nobody talks about it. A real estate site lives or dies by its filters: by area, by property type, by price, by sale or rental. On most sites, when a visitor clicks a filter, the page it produces has a URL like this:
A URL Google can’t read
site.com/property/for-sale/villa?currency=IDR&filter[0]=3A string of parameters. No readable words, no keyword. Google looks at that and either ignores it or indexes it poorly, so for search purposes the page barely exists. Now consider the cost. Every one of those filter combinations matches something a buyer is typing into Google: “villas for sale in [area],” “land for sale [district].” Each one could be a page that ranks. Instead it’s invisible.
When we built the site for Horizon Estate, a Bali agency, this was the first thing we designed around. Every meaningful filter became its own page with a clean, readable URL:
A URL Google can read and rank
horizonestatebali.com/buy/type-villas/tag-luxury/The change sounds cosmetic until you look at the result: that URL is a page Google can read, index and rank for the search a buyer types. On the Horizon project, mapping search demand to filter combinations (property types, districts, bedroom counts, tags) produced around 450 of these pages, each one matching a phrase people search for.

But there’s a trap on the other side of this, and it’s where most sites overcorrect once they hear “make every filter a page.” A filter system doesn’t generate 450 useful combinations. It generates millions. On Horizon the tag list alone runs to sixteen (ocean view, rice field view, jungle view, beach access, pool, off-plan, Balinese, minimalist, and the rest), and those cross with five statuses, several property types, dozens of areas, price bands and bedroom counts. Multiply it out and the filter can produce hundreds of thousands of URL states against the 450 that earned a place in the index. Picture a buyer walking through a building where fifty apartments have the identical layout and only the curtains change; by the fourth door they’ve stopped looking. Google’s crawler does the same thing. Point it at hundreds of thousands of near-identical filter grids and it burns its budget on the sludge, decides the site is mostly noise, and never reaches the pages that matter.
The discipline is search demand mapping. Only combinations a person searches for earn a static, indexable page. Everything else, from sort orders and price sliders to map states and deep pagination, gets pointed home with a canonical or closed off with noindex. A newer wrinkle: real estate inventory turns over, so a combination that has fifteen listings today can have zero next month. “Three-bedroom villas in Canggu under a number” is a live page until the inventory sells through and the grid comes back empty. Google’s guidance on faceted navigation is direct about this: a filter combination with no results should return a 404, and an empty indexed grid is worse than no page at all. In Search Console the whole failure reads as a swelling pile of “Crawled — currently not indexed,” clustered on ?filter= URLs. That cluster is the readout: the crawler spent budget on states that earned no place in the index. The mechanics of sorting a faceted URL space into index / canonical / block is the same discipline an e-commerce store needs, and I’ve written the long version as an e-commerce SEO audit.
2. Duplicate titles on listing and location pages
Say your filter pages are reachable. The next problem I almost always find: they’re empty shells. No unique title tag. No unique H1. No meta description. And very often the same paragraph copy-pasted at the bottom of dozens of category pages. Google sees twenty near-identical pages and can’t tell which one deserves to rank, so it ranks none of them well. That’s keyword cannibalization, and real estate sites are full of it.
On Horizon we gave every filter page its own title with its own keyword, a unique H1, and copy describing that area or property type. It takes more work upfront, and this work is what separates filter pages that rank from filter pages that merely exist in the index. A title that scales without collapsing into sameness follows a template with variables, {property type} for sale in {neighborhood} — {beds} bed, from {price}, so “Villas for Sale in Canggu — 3 Bed, from $450k” and “Apartments for Sale in Seminyak — 2 Bed, from $220k” read as distinct pages to Google and to a human scanning the SERP.
To measure whether you have this problem rather than assume it, crawl the site with Screaming Frog and read the Near Duplicates report. It clusters pages by content similarity, and on a broken real estate site the clusters are damning: forty category pages at 95% similarity, all fighting each other for one term. That number is the size of the cannibalization.
None of it works, though, unless you know which queries buyers type, and in real estate that’s less obvious than it looks. One example from the Bali project: “bali real estate” pulls roughly the same 1,300 monthly searches whether the buyer sits in Indonesia, the US or Australia, but the keyword difficulty swings from 46 to 61 depending on the country, because you’re competing against a different set of sites in each market. Same phrase, three different fights. The country-by-country difficulty split, and how to audit for it, is in my guide to running an international SEO audit.
3. Orphaned deep pages, click depth and flat architecture
You can build great filter pages and still have Google never discover them, simply because nothing on the site points to them. The fix is internal linking, and specifically a tag system. From your main sections you link out to narrower, lower-competition pages: “villas” links down to “luxury villas,” horizonestatebali.com/buy/type-villas/tag-luxury/. Each tag is another door into the site from search, another page targeting a lower-competition keyword that’s easier to rank for. Done properly, one real estate agent website ends up with dozens of entry points where it had one or two.

Internal links do a second job that most sites get wrong, and it hits your most valuable pages hardest. A luxury listing or a micro-neighborhood page often sits four or five clicks from the homepage, buried under menus and pagination. Google reads click depth as a signal of importance: the deeper a page, the less crawl priority and internal authority it gets, so your highest-margin inventory ends up treated as an afterthought. Contextual hubs correct it: a “similar properties in this building” or “more in this neighborhood” block that links laterally between related pages. Done right it pulls those deep pages to three clicks or fewer and routes internal authority into them; on the default build that authority pools on the homepage and stays there.
Underneath the linking sits the architecture itself, and most agent sites have the wrong one. The default shape is flat, Home → About → Listings → Contact, which tells Google nothing about how places relate. The shape that ranks is a hierarchy that mirrors how people search: City → Neighborhood → Property Type → Listing, with market and guide content hanging off the location nodes. That structure is what lets a neighborhood page accumulate authority and pass it down to the listings inside it. On the flat shape every listing floats loose.
One architectural note for agents who’ll meet IDX later in this article. If your listing search runs on a subdomain (search.youragency.com), Google treats it as a separate site. Its crawl budget, its authority, its indexing are walled off from your main domain; the two don’t share equity. Google’s crawl-budget documentation is explicit that budget is set per hostname, and a subdomain is its own hostname. So a subdomain IDX means the pages you most want to rank sit on a host that starts from zero. Keep the search experience on the main domain wherever the platform allows it.
We also built video into these pages. A property page with two photos and a line of text is a thin page, and Google can tell, as can a buyer who can’t fly out to view the property yet. Video gives Google a richer, more relevant page, and it gives the buyer a reason to trust what they’re seeing.
4. Template sites: URL control, code bloat, Core Web Vitals
AI design tools learn from the average of everything already online. The more sites built that way, the more they converge: same grids, same gradients, same fonts, same hero. The result is what I’d call template blindness: people have seen the layout so many times their eyes slide right off it. The site doesn’t look bad. It looks like nothing.
The SEO cost is direct, and it’s the reason problem #1 exists on so many sites. A template hands you a fixed structure, which is often why the filter URLs are broken: you simply don’t control them. Templates also tend to ship heavy, bloated code, and that slows the site down. Page speed is something Google measures directly through Core Web Vitals, and a slow site bleeds rankings and visitors at the same time.
Real estate has its own version of the speed problem that generic advice misses: the gallery. A listing page carries thirty to forty high-resolution photos, and if each ships at two to four megabytes unoptimized, the page is thirty megabytes before a word of copy loads. That’s the single biggest Largest Contentful Paint problem in the niche, and on a phone over a hotel connection it’s the difference between a buyer scrolling and a buyer leaving. Image optimization (modern formats, correct sizing per device, lazy-loading below the fold) belongs in the build, and bolting it on after is how the thirty megabytes come back with the next batch of listings. Read Core Web Vitals per template: the listing page, the category page and the homepage fail differently, and a site-wide average hides all three.
Custom development gives you back control of the URL structure, the code and the speed, which is why we don’t build these sites on templates.
5. Sold and expired listing pages: 404s and homepage redirects
The ranking pages barely touch this one, which is strange, because it’s one of the most common ways an agent site bleeds authority unnoticed. A property sells. A rental fills. A listing expires. On most sites the URL behind it either 404s or gets 301-redirected to the homepage, and both are mistakes.
Start with what that page was worth. An address is a permanent search query. People look up “123 Ocean Drive” for years after it last changed hands: neighbors curious about the sale price, buyers researching the building, agents pulling comps. The portals understand this, which is why Zillow and Realtor keep sold pages live and indexed for years and own the address-level search for your entire market. Delete the page for a property you sold and you hand its accumulated ranking history, its backlinks and its address traffic to the portal that kept theirs.
A hard 404 dead-ends every link that pointed at the page and erases the ranking history baked into it. A blanket 301 to the homepage is worse, because it looks helpful: Google reads a redirect from one property to a generic homepage as a soft 404 and drops it the same way, so the equity evaporates just as completely. And the third version: a listing marked “active” a year after it sold, still returning 200, still indexed, still pulling a click that lands on a property nobody can buy. That’s a trust problem and a soft-404 signal at once.
The fix separates the temporary from the permanent, because they route differently and most sites treat them the same. To find the leak, pull your old listing URLs from Search Console and the sitemap history, crawl them by status code in Screaming Frog, and cross-check against Ahrefs’ Best-by-links report filtered to 404s; that surfaces the dead pages that still hold backlinks, which are the ones costing you the most. Then three verdicts. A property that will come back, a seasonal rental, a relisting, stays live, no reindexation drama. A permanently sold property keeps its URL, flips to a clear “Sold” state with the sale noted and a block of similar available listings underneath, so the page keeps serving the address query and routes the visitor to live inventory; the schema.org type here is RealEstateListing with the availability marked accordingly. Only a page with no equity and no address demand gets a clean 410. The one thing you never do is send it to the homepage. Horizon runs its own inventory rather than a feed, so those states are ours to set; on an MLS site the same logic has to survive the sync problem in the IDX section below.
Real estate keyword strategy: portals, territory, local content
6. Competing with Zillow and the portals on head terms
A fight you lose every time: “homes for sale in Miami,” you versus Zillow. The portals have more inventory, more domain authority and more engineers than any agent or brokerage will ever out-muscle. Chasing the head term is spending your whole budget to come 40th.
But the portals win on inventory, and inventory is the one thing they can’t make specific. They can’t out-write you on “Brickell waterfront condo specialist,” or “what it’s like to own in [named building],” or “selling a luxury condo in [neighborhood].” Those searches are smaller, but the buyer typing them is worth ten of the tire-kickers on the head term, and no portal is competing for them. So stop measuring yourself against Zillow’s rankings and pick a territory instead: a set of neighborhoods, buildings, price bands or property types where your first-hand knowledge is the best answer on the internet. Don’t compete on inventory. Compete on expertise. That decision is what makes the next problem solvable; without a territory, there’s nothing narrow enough to write about.
7. Commodity content and thin neighborhood pages
Most agent content is commodity. “10 Things to Know Before Buying a Home in Miami” exists ten thousand times over, in the same order, with the same advice. Google no longer scores a page just on whether it’s clean and on-topic. It scores on information gain, whether the page adds anything the pages already ranking don’t, and a tenth restatement of the same relocation checklist adds nothing, so the ranking system has no reason to prefer it.
What a model cannot generate is the thing you have. It doesn’t know which buildings hold their value and which don’t. It’s never heard the special-assessment story on that gorgeous tower, can’t say why one line of units bakes in the afternoon glare, has no idea what the last unit closed at versus its ask. That knowledge is first-hand experience, and it’s what Google’s systems now reward: information gain, plus the E-E-A-T signals that only come from evidence a machine can’t fabricate. The neighborhood page that ranks carries the median price the buyer can’t get from Zillow’s estimate, the note on which streets flood, the school-run timing, the candid read on the HOA, the market data and local judgment that come only from working the area. Word count has nothing to do with it. Build those, plus the buyer and seller guides that answer the questions your territory asks.
8. Entity consistency and schema markup: RealEstateAgent, Place
Under the last point sits a technical layer, and it’s where local content breaks. When your page says “luxury condo in Brickell,” Google sees a string of characters until those words are tied to a real-world entity: the place, the building, you as the agent. That grounding is what lets both traditional search and the AI engines (Perplexity, ChatGPT, AI Overviews) pull you into a local answer with confidence instead of guessing.
The first blur is missing structure: the agent, the property type and the location left unmarked in the code, so nothing connects the prose on the page to the point on the map. Mark it up (RealEstateAgent, Place, the listing types) so the machine can follow the thread. The second is telling a different story in each place you appear. Your site says “luxury specialist,” your Google Business Profile says “general realtor,” Zillow shows four reviews and a stale headshot, Instagram is a lifestyle feed with no mention of what you sell. To a knowledge graph that reads as four different people, and a blurred entity is one the AI engines would rather leave out of an answer than risk getting wrong. This matters more each quarter, because the local pack and the AI Overview increasingly decide who gets named before the buyer ever reaches a website, and they name the entity they’re sure about.
Real estate website UX and conversion issues
9. Outdated design and first-impression trust
When someone is about to spend six or seven figures, everything downstream, the call, the viewing, the deal, depends on whether the site earns their trust in the first few seconds. The research here is old but remarkably consistent. In a well-known British study of health websites, 94% of the reasons people gave for distrusting a site were about its design rather than its content (Sillence et al., 2004). The Stanford Web Credibility Project found that roughly three quarters of users admit to judging a company’s credibility by how its website looks. And that judgment forms fast: in lab studies people rate a page’s visual appeal in a fraction of a second, long before they’ve read a line about your listings.
Underneath is a psychological layer. A clean, calm interface reads as competence; a cluttered one creates low-level stress, and people leave to escape the feeling without knowing why. For a higher-end audience the effect sharpens: a refined, minimal site signals status and seriousness, while an overloaded one reads as cheap. And in real estate that audience is bigger than the “young first-time buyer” default assumes. In NAR’s 2025 data, repeat buyers are 79% of the market, the median buyer is 59 (a record), and 26% of purchases are all-cash, rising to 30% among repeat buyers. That’s an older, wealthier buyer than most agent sites are designed for, and to that buyer minimalism reads as competence. Design for the person who signs.
10. Mobile layout collapsed from desktop
Most property searches happen on a phone (70% of buyers used a mobile device in NAR’s 2025 count), so a squished mobile layout on a real estate agent website costs money. With a template, the “mobile version” is usually the desktop layout collapsed automatically: three columns stacking into one, text reflowing wherever it lands. Nobody designed that for a phone. It just happens to fit on the screen.
A proper mobile version is designed deliberately, around how someone uses a property site one-handed on a small screen: can they filter, work the map, swipe the gallery, tap to call, book a viewing, without fighting the layout at any step. Those five actions are the whole job on mobile, and each is a place a squished desktop breaks: a map that needs two hands, a filter drawer that covers the results, a phone number that isn’t a tap target.

11. Missing agent bio, license number and track record
A buyer landing on a real estate agent website is asking one silent question before any other: is this person real, and have they done this before? Most agent sites never answer it. The About page is a paragraph of “passionate about helping clients find their dream home,” there’s no license number, no brokerage named, no evidence of a single completed sale. To a six-figure buyer researching from another country, that’s a reason to close the tab.
Proof, laid out plainly, answers it: an agent profile with a photo and a bio, the license number and the brokerage, and a track record of transactions, sold properties with enough detail to be verifiable. Those sold pages do double duty, because they’re the address-level assets problem #5 told you to keep. And this connects to the entity problem in #8: the same signals that tell a nervous buyer you exist, a named and credentialed and consistent identity, are the signals that tell Google’s knowledge graph you’re an entity it can name with confidence. Proof for the human and proof for the machine are the same proof. Build it once.
12. No target buyer and no seller journey
A site built for everyone speaks clearly to no one. The investor chasing rental yield, the family relocating, the first-time buyer: they don’t want the same things, don’t decide the same way, and don’t respond to the same design. A premium audience responds to space, restraint and story; a price-driven one wants visible proof, clear benefits and density of information, and too much white space reads to them as unfinished. One site, designed around the buyer you want, beats one site designed for an imaginary average visitor.
The sharper gap in this niche is on the other side of the transaction: most agent sites forget sellers exist. Everything is listings, listings, listings, built for someone shopping. Meanwhile 91% of sellers list with an agent (NAR 2025), and a seller is choosing who gets a six-figure commission on the largest asset they own. Search the SERP for your market and you’ll find almost nobody built a page for them. That’s an open lane: a Home Valuation tool, a Selling Process walk-through, Recent Sales in their neighborhood, a Seller Guide, the seller-side mirror of the buyer journey.
For the differentiation itself, score the top-ranking agent pages in your market on what they publish, because in most markets they’re missing at least a few of these, and each one you add is a reason a seller or buyer picks you: a published commission structure where everyone else says “competitive rates”; a true-cost breakdown that names the closing costs buyers get surprised by; a named mortgage or financing partner for overseas buyers who can’t get a local loan; a realistic sale timeline in place of “we’ll sell it fast”; a concrete guarantee, “if it isn’t sold in N days, here’s what happens”; before/after sold examples annotated with the parameters. Where the top pages all carry something you lack, add it; where none of them carry something a buyer would use, that’s the page to write first.
13. Contact paths, tap-to-call, lead qualification and CRM routing
The easiest one to miss. The site gets visitors, the rankings even improve, and still the phone doesn’t ring. Usually it’s because nobody designed the next step. The same mistakes recur: the phone number in the footer where the header should hold it, no tap-to-call on mobile, the only contact form buried on a separate “Contact” page, a listing a buyer likes with no obvious way to ask about it. The visitor was interested, and the site gave them nothing to do with that interest.
The fix starts with a question most sites skip: how does your buyer prefer to get in touch? On Horizon the buyers are international; they sit in Australia, the US or Europe, and almost none will dial an Indonesian number. They message. We put WhatsApp and Telegram straight into the top menu, one tap from any page.

And in place of an anonymous “contact us” form, every listing and the homepage carries a contact block with a named person: photo, name, role, direct number and messenger links.

That block does two jobs. It removes friction, since the buyer reaches a human in their own channel in one tap. And it builds trust: a named person with a face tells the buyer who will answer, which matters when the inquiry is a six-figure purchase in another country.
The contact block is only half the system. The other half is what the form asks. Name, email, phone tells you almost nothing; you’ve captured a lead without learning whether it’s worth chasing. A few intent questions change that: are you buying, selling or investing, which area, what’s your timeline, have you already spoken with an agent. Now the enquiry lands in the CRM with the listing, the source and the intent attached, so the agent answers the hot lead in minutes and routes the six-month browser into nurture instead of letting both die in one unread thread. That’s the difference between lead capture and lead qualification, and in real estate, where the problem is rarely too few leads and usually poor follow-up on the ones you have, it’s most of the game. Even simple sites should clear a floor here: a seller-valuation CTA and a way to book a viewing or a call, because a site with no appointment path makes the buyer do the scheduling work, and most won’t. Your channels may differ; for a local US audience, tap-to-call and a “book a viewing” button beat Telegram.
IDX website SEO issues
14. Bolted-on IDX/MLS: duplicate feed content and status sync
If you work with an MLS, IDX is usually the first place SEO breaks, and it deserves its own section because the architecture is different from everything above. Our own projects, like Horizon Estate, run in markets without an MLS, where every listing is the site’s own content. But the IDX failure modes are well documented across US agent sites, and they follow directly from the logic of this article.
Two problems dominate, and by now you can name them yourself: the feed pastes the same MLS description onto thousands of agent sites, and every filter, sort order and map state spawns another parameter URL. These are problems #1 and #2 all over again, unreadable parameter URLs and duplicated pages, with one crucial difference. This time you can’t fix the pages themselves, because the listing content comes from the feed and looks identical on every site running it.
So the division of labor changes. It’s the same facet-indexation discipline from problem #1, applied to a feed you don’t control. The pages that can be unique are your area and neighborhood pages, written by you, and those become the SEO entry points, ranking on your first-hand local content and linking through to the IDX results for their area. The IDX side, which can’t be unique, stays out of Google’s way: canonical the endless parameter variations, noindex the sort and map states, keep the templates light, and don’t let thin duplicated listing pages become the face of your site in search.
IDX adds one failure the custom-site sections don’t have: sync. The feed and the site drift, and a listing shows “active” on your site days after it went under contract in the MLS. That’s the sold-listing problem from #5 in an IDX setting: a trust break for the buyer who inquires on a gone property, and a soft-404 signal to Google at once, because the status the page claims and the reality don’t match. Status sync on IDX decides whether the feed helps the site or slowly wrecks its credibility. Indexed: your clean neighborhood nodes, backed by search demand. Hidden: the feed’s infinite grid.
Root cause: design, SEO and buyer psychology built separately
A real estate website is built on its search structure from the first line of code, or the SEO fights the design forever.
Fourteen items, and underneath them the same root cause from the first paragraph. An agency builds something pretty. An SEO contractor is brought in afterwards and has to fight the structure. A copywriter fills the pages with the same advice as everyone else. Nobody designed the site around the person buying or selling a property.
The old approach was: make it clean, make it look good. The one I’d argue for is different: make it so the right person, at the right moment, immediately understands what’s here, trusts it, and does the thing you need them to do. That means the search structure, the evidence that earns trust, and the buyer or seller you’re building for are all decided on day one.
That’s how we approached the Horizon Estate project, design, development and SEO built as one process. If you want that on your own site, that’s what our digital experience design work is.
My bet for the next two years: by 2028 the address-level query for a home you sold will be answered by an AI Overview citing a portal’s sold page, unless yours still exists, and the agents who kept those pages live will be the ones the engines name when a seller asks who works that street.