Why most real estate websites lose buyers
We audit a lot of property sites. Brokerages spend $3,000 to $40,000 a month on Google Ads and Meta, then send the traffic to a homepage that takes seven seconds to paint on a phone. The same five real estate website problems show up on almost every site we open. None of them are exotic. All of them are fixable in a normal sprint, and together they decide whether a brokerage closes deals or keeps paying for clicks that bounce.
Here is what we find, in the order they cost you money.
1. The homepage is too heavy to load on a phone
Open most brokerage homepages on a mid-tier Android over 4G and the timeline looks the same. A 12 MB hero video. A slider with four uncompressed JPEGs at 3,840 pixels wide. Twenty-eight to thirty-five active plugins, half of them loading their CSS and JS on every page whether the page uses them or not. LCP lands somewhere between 5.2 and 7.8 seconds. The user is gone before your headline shows up.
You do not need a deep audit to confirm this. Run the page through PageSpeed Insights and read the field data section, not the lab section. If your 75th-percentile LCP is over 2.5 seconds, every paid click is being penalised. WebPageTest with a Moto G Power profile on Slow 4G will show you exactly which asset is blocking paint.
The fixes are unglamorous. Pull the hero video, replace it with a poster image and a play button that loads the video on click. Kill the slider. Audit your plugin list and deactivate anything that is not earning its keep, especially old listing import tools and form builders that nobody is using. Convert hero images to AVIF, set explicit width and height, and serve them at the size the device actually needs. If you want a structured approach, our WordPress speed optimisation service walks the whole pipeline from cache layer to render path.
2. Listings are not marked up for Google
Open a listing detail page and view source. On most brokerage sites you will find a Yoast block describing the page as a generic Article and nothing else. Price, beds, baths, floor size, address, geo coordinates: all sitting in the visible HTML, none of it tagged.
Google's rich result coverage for residential listings is genuinely limited right now, and that is worth saying out loud. The dedicated RealEstateListing schema is community-supported, not in Google's official rich result catalogue. But the markup still earns you four real wins. Your internal site search returns better results because your own queries can read structured fields. Aggregators and AI search tools that scrape your pages get cleaner data and cite you correctly. Bing and Yandex do render some of these fields. And when Google does extend coverage, sites that already ship the markup move first.
For sale listings, model each one as a Product with an Offer for the asking price, and add additionalProperty entries for numberOfRoomsTotal, numberOfBathroomsTotal, and floorSize. Add a PostalAddress and a GeoCoordinates block. Reference schema.org/RealEstateListing for the fuller field list and pick what your CMS actually has data for. Do not invent fields. Empty schema is worse than no schema.
3. The mobile property search is broken
This is the cheapest problem to ignore and the most expensive in lost leads. We test brokerage sites on a real iPhone with iOS Safari and a real Pixel with Chrome, and the same bugs surface every time.
Filter dropdowns clipped by a parent container with overflow: hidden, so the user sees the top three options and nothing scrolls. Map view freezes because the map iframe captures every touch event and the page itself cannot scroll past it. The "Filter" button on iOS Safari does nothing because the touch handler is wired to a non-passive listener that the browser blocks. Range sliders with handles two pixels wide that no fingertip can grab.
The fix starts with real-device QA. Simulators lie. Buy a cheap Android, borrow an iPhone, and tap through your own search like a buyer would. Then prefer native HTML controls, select, input[type=range], input[type=number], over JavaScript-heavy widgets that ship 200 KB of code to do what the browser does for free. Debounce the filter submit so the listing grid does not refetch on every keystroke. Make the map embed cooperative: set touch-action: pan-y on the parent so vertical page scroll wins over map gestures.
A property site that filters cleanly on a phone outperforms a beautiful desktop site every time. Roughly 70 percent of property search traffic is mobile.
4. The lead form emails a Gmail nobody checks
You can guess the rest of this story. The form is wired to [email protected], which forwards to a personal Gmail. The Gmail filters real estate notifications into a tab that gets opened on Mondays. The lead came in on Friday at 6 p.m. By Monday the buyer has already toured two properties with a competitor.
Lead routing is the cheapest fix on this list and the one with the largest revenue impact. Wire the form to a real CRM. For brokerages, FollowUpBoss and Wise Agent are built for this. HubSpot and Pipedrive work fine if your team is already on one of them. If you are starting from zero, even Airtable plus a Slack webhook plus an SMS via Twilio is a working system. The non-negotiables: a logged record per lead, an SMS to the agent within sixty seconds, and a deduplication rule so the same buyer does not generate three records.
While you are in there, add a hidden field that captures the listing the buyer was viewing. A lead that arrives with the address attached closes at a different rate than an anonymous "I want more info" submission.
5. Sold homes still show "for sale"
WordPress real estate sites usually pull listings from an MLS feed, an IDX broker, or a custom CSV that the back-office team uploads. The default sync runs once a day, sometimes once every six hours. That window is too wide. A buyer who tours a sold home on Saturday and then watches it sit at "Available" on your site through Monday morning loses trust in everything else you publish.
Move the feed sync to webhooks if your provider supports them. If you are stuck with cron, run it every fifteen minutes and make sure the status field updates in the same write that updates price and photos. Sold listings should not 404. Redirect them to the listing index filtered by the same neighbourhood and price band, with a small banner explaining that the property has sold and showing two or three comparable active listings.
This single fix has another quiet benefit. Pages that 404 because a listing went offline waste your crawl budget and chip away at your domain authority. A redirect to a relevant index page keeps that signal where it belongs.
What to do this week
Pick the one that is bleeding most. If your Search Console shows mobile usability issues, fix the filter first. If your Google Ads cost-per-lead has crept above $80, the problem is almost always lead routing or homepage LCP. If your impressions are healthy but click-through is poor, the schema work pays for itself.
If you want a second pair of eyes on which of the five is costing you the most, our real estate website service starts with a two-hour audit and a prioritised fix list. We will tell you which problem is real on your site and which is theoretical, so you spend the next sprint on the one that actually moves bookings.
