Real Estate IDX Site That Doubled Its Search Visibility
Rapattoni MLS/IDX search, local area pages, and 25.8K to 51.3K Google search impressions year over year
The Challenge
Teresa Grant is a Keller Williams agent serving Lynchburg, Forest, Smith Mountain Lake, Bedford, and Huddleston, Virginia. Her old site had two problems. Property search bounced visitors out to a third-party portal, so the traffic she earned leaked straight to a competitor's brand. And the site leaned on a single homepage to rank for every town she covers, which left her thin in local search for the specific markets where buyers and sellers actually search. She needed listings to live on her own domain, and she needed each market to have a real page behind it.
The Solution
I rebuilt the site on Astro SSR, server-rendered from a Node process, with a Rapattoni MLS/IDX integration that pulls live listings into native property search and listing pages. Visitors browse current inventory on therealtygrouponline.com instead of being sent off-site. Local SEO is built into the structure: every market Teresa serves gets its own geographic area page with Schema.org structured data, so search engines get clear relevance signals for "realtor lynchburg", "huddleston va", and the lake communities, rather than asking one homepage to carry everything. The hero video is tuned to the LCP standard, where a high-priority poster image is the Largest Contentful Paint element and the video lazy-loads after, holding a Lighthouse score of 100 without giving up the visual.
1,265 Buyer Clicks for $1,338, at $1.06 Each
Alongside the organic work, we run a deliberately narrow Google Ads campaign: not "realtor near me", not every town in Central Virginia, but people looking for waterfront property on Smith Mountain Lake.
Over the last 60 days that campaign spent $1,338.26 and returned 1,265 clicks at $1.06 each, read from the Google Ads API. It recorded 6 tracked enquiries, which is $223 per enquiry on property running from the mid-six figures upward. That number is ours, end to end, and it is the one we stand behind.
Separately, Teresa reports seven new lakefront buyer clients over the same window, the largest of them on a home above $1 million. We are not going to turn her seven into a cost-per-client figure. The site earns heavily on organic search as well as ads, we have no access to her CRM, and dividing our spend by her clients would invent an attribution nobody measured. The budget went from $25 a day to $45 because she asked for it after seeing the enquiries, which is the only endorsement that counts.
| Ad clicks by buyer location, 60 days | Clicks | Spend |
|---|---|---|
| Virginia | 587 | $618.82 |
| North Carolina | 188 | $197.82 |
| Pennsylvania | 69 | $73.64 |
| Maryland | 57 | $62.28 |
| West Virginia | 40 | $41.60 |
The interesting part is who is clicking. North Carolina is the second largest source of paid clicks, behind Virginia and ahead of every other state, and the pattern repeats in organic: the site ranks 1.7 for "lake gaston vs smith mountain lake" and 1.4 for "lake norman vs smith mountain lake". Those are the two lakes a North Carolina buyer already knows. Somebody weighing their local water against Virginia's finds this site at the top of the comparison. Out-of-state demand for this lake is real and measurable, and it is where a second-home buyer comes from.
Which of these we can prove, and which we are told. The spend, the clicks, the cost per click, the click locations and every search position above are read directly from the Google Ads and Search Console APIs on 2026-08-17. The seven clients and the deal sizes come from Teresa. We have no access to her CRM or her closing paperwork, so we will not present her word as our measurement, we will not claim the ads caused those seven when organic search brought 1,206 clicks over a similar period, and we will not publish anything that could identify a live transaction or a buyer. Our instrumentation recorded 6 tracked enquiries, not 7 clients; an enquiry is a form fill rather than a signed client, so the two counts measure different things and neither confirms the other. The $223 figure divides our spend by our own tracked enquiries and involves nothing we were told.
16 Meta Leads, No Deals Closed Yet
We added a Meta lead form campaign alongside the Google Ads work. The current version, TRG - SML Lead Form - US, was rebuilt on a USD ad account to avoid the 19% IVA that Meta adds to Colombia-registered accounts. Read directly from the Meta Ads API on 2026-09-12, it has spent $27.23 and recorded 12 leads at $2.27 each, three days into delivery.
Teresa's own count across both the earlier COP-currency trial and the current campaign is 16 leads in under a month. The gap is a tracking gap, not a phantom number: the earlier trial ran on the personal Colombia-registered ad account, optimizing against a pixel Lead event that never fired, so Meta's own reporting shows zero leads there even though real contacts reached Teresa. We are not going to round that up to a cost-per-lead figure for the untracked four, the same way we would not invent one for her seven Google-side buyer clients.
None of the 16 has closed as a deal yet. That is expected this early. We will report a close rate once one exists rather than guessing at it now.
Which of these we can prove, and which we are told. The $27.23 spend, 12 leads, and $2.27 cost per lead are read directly from the Meta Ads API for the current USD campaign. The total of 16 is Teresa's own count, and includes contacts from the earlier campaign that Meta's pixel never tagged as a lead. We will not present the API's 12 as the full picture, and we will not present Teresa's 16 as something our own tracking measured. Zero deals closed is also her report, not ours; we have no access to her CRM to verify it either way.
The Results
Search figures come straight from Google Search Console, ad figures from the Google Ads API, both read on 2026-08-17. Where a number depends on what happened after the click, a signed contract or a buyer's home state, it is the agent's own report and is labelled as such. July 2026 was the site's best month on record.
+268% Impressions Year Over Year
July 2026 drew 36,290 search impressions against 9,862 in July 2025. Across the last 90 days it is 88,974 impressions and 1,206 clicks, verified in Search Console
Position 27 to 11
Average Google position more than halved year over year, moving the site from page three toward page one across its queries
36,290 Impressions in July
The best month on record, with 499 clicks. June was the previous record at 27,659, so the site beat its own peak the very next month
Page One for Real Listing Queries
"bernards landing condos for sale" sits at 4.8 and "keller williams realty" at 3.4, the non-branded searches that actually bring buyers to the site
Live IDX/MLS Search
Rapattoni integration keeps current inventory on Teresa's own domain instead of leaking traffic to a third-party portal
Lighthouse 100
Hero-video LCP standard: poster image as the LCP element, video lazy-deferred, for a perfect performance score on mobile
$1.06 Cost Per Click
1,265 ad clicks for $1,338.26 across 60 days, read from the Google Ads API. Real estate keywords commonly run several times that
Ranked #1 Against Other Lakes
Position 1.7 for "lake gaston vs smith mountain lake" and 1.4 for "lake norman vs smith mountain lake". Those are North Carolina lakes, and NC is the second largest source of clicks
16 Meta Leads in Under a Month
12 verified via the Meta Ads API at $2.27 each on $27.23 spend, plus 4 more from an earlier untracked campaign. No deals closed yet
Update, October 2026
Figures below come from Google Search Console, pulled October 9, 2026, with windows ending October 7, 2026. They sit alongside the figures above, which were read in August.
+109% Clicks Year Over Year
295 clicks in the 28 days from September 10 to October 7, 2026, against 141 in the same 28 days a year earlier (September 11 to October 8, 2025)
27,134 Impressions, Up From 4,249
Impressions for the same 28 days, year over year. Average position moved from 12.5 to 11.5
+46% Clicks in 90 Days
1,207 clicks in the last 90 days against 828 in the 90 days before. The Smith Mountain Lake vs Lake Norman comparison post gained the most, 118 clicks against 56
Down 25% From the Prior 28 Days
295 clicks against 392 in the previous 28 days. That drop is consistent with the late-summer lake season ending, so the year-over-year comparison is the fairer one
Want Similar Results?
Let's discuss your project. Free consultation, no strings attached.
Get in Touch