Website Rebuild & Local Data Automation for We Buy Houses Cash by Olha StalskaWebsite Rebuild & Local Data Automation for We Buy Houses Cash by Olha Stalska

Website Rebuild & Local Data Automation for We Buy Houses Cash

Olha Stalska

Olha Stalska

The problem

We Buy Houses Cash needed a WordPress site that could serve a large local-market footprint without turning content updates into a manual maintenance job. The site already ranked, with almost 2,000 indexed state and city pages, but every page carried static copy and numbers that went stale. Paid traffic landed on a page scoring 51 on mobile PageSpeed. The job was a full rebuild without losing anything Google had indexed.
Industry: Real estate · Services: WordPress development, data and API integration, CRM integration, performance · Timeline: 4 weeks · Tools: GeneratePress, GenerateBlocks Pro, ACF Pro, WP All Import Pro, Fluent Forms Pro, GoHighLevel, Python, PHP, Kinsta.
One template, every city with its own numbers: Atlanta, Miami, Detroit, Charlotte
One template, every city with its own numbers: Atlanta, Miami, Detroit, Charlotte

Build one template and fill it with real data

I rebuilt the site on GeneratePress and GenerateBlocks Pro from the client's HTML mockups. Every city and state page is a single template driven by ACF fields. The data comes from Redfin, the US Census ACS API, OpenStreetMap Overpass and a Census zip crosswalk, cleaned with Python scripts and imported with WP All Import. That covers 1,935 city pages and 50 state hubs, each with its own numbers.
The data pipeline, from four sources to one template
The data pipeline, from four sources to one template

Keep the numbers fresh on a real cron

Two PHP sync scripts pull Redfin's monthly market files on a server cron on Kinsta, on the 1st of every month. They update median price and days on market for 1,914 cities, plus the all-cash share for 37 metros. The 21 cities Redfin doesn't track hide their price blocks with display conditions instead of showing zeros.
The 2-step lead form and its path into GoHighLevel
The 2-step lead form and its path into GoHighLevel

Make the lead form talk to the CRM cleanly

The lead form has two short steps: address first, then contact details. The address field uses Google Places autocomplete inside a plain text field, because the native address field sends a nested object that GoHighLevel can't read. Each lead goes to a GHL webhook with gclid and UTM data, and the conversion is verified in GTM.
Home, Atlanta city page and market snapshot on mobile
Home, Atlanta city page and market snapshot on mobile

Challenges along the way

WP-Cron only runs when someone visits the site, so I moved the syncs to a real server cron.
Four cache layers (Kinsta edge, CDN, WP Rocket, Cloudflare) made live changes look missing, so I fixed a purge order for every release.
Redfin's region names don't match WordPress city names, so a bridge field maps each page to its Redfin region.
A partial WP All Import update can wipe every unselected field, so every import updates only its own columns.
PageSpeed Insights results, 25 Oct 2026
PageSpeed Insights results, 25 Oct 2026

Outcome

The PPC landing page went from 51 to 100 on mobile PageSpeed, with LCP at 1.0 s. The Atlanta city page scores 99 on mobile and 100 on desktop, with SEO at 100. All 1,935 city pages and 50 state hubs share one template, and 1,914 of them refresh their market numbers every month without anyone touching them.
Development, data pipeline and integrations: Olha Stalska. Design: client's HTML mockups.
Like this project

Posted Oct 26, 2026

WordPress rebuild for a US cash home buyer: 1,935 city pages synced monthly with Redfin data, a 2-step lead form into GoHighLevel, PageSpeed 100.