Case Study — Real Estate Investor
SHH Buys Homes
Real estate investors compete on long-tail local SEO — "sell my house fast [city]" for every city in their market. Building one page at a time doesn't scale. We built 216 of them.
The Opportunity
Local investors compete on long-tail search.
The "we buy houses" and "sell my house fast" space is won at the city level. A homeowner in Scottsdale searches "sell my house fast Scottsdale" — not a broad term. They want someone local and fast. The national players (Opendoor, Zillow Offers) own the broad terms. Local investors win by owning every long-tail city variation in their operating area.
The problem: doing that manually means 200+ individual pages, each with unique content, proper meta, and clean URL structures. Without a programmatic system, that's weeks of hand-built pages — and most investor sites stop at ten.
Programmatic Generation
200+ pages. One build command.
How it works
Astro's getStaticPaths() function generates pages from a data source at build time. We built a structured city dataset — city name, county, state, population tier, neighborhood references — and wired it into a dynamic route template. One template. One dataset. 216 unique pages at build.
Each city page has its own unique title, meta description, H1, and content variations seeded from the city data — not just a name swap. The pages are structurally unique, not thin duplicates.
Why Astro for this
Programmatic page generation is a first-class feature in Astro — it's not a workaround. The build generates every page as static HTML, so Cloudflare Pages serves all 216 from the CDN edge with no server-side logic. Fast, cheap, scalable.
Adding new cities means adding a row to the dataset and running the build. The whole system redeploys in under two minutes.
Indexing API Strategy
Don't wait for Googlebot. Push it.
A 216-page site submitted via XML sitemap alone can take weeks to fully crawl. Googlebot prioritizes known, high-authority domains. A new site at a new domain starts at zero crawl budget.
Google's Indexing API bypasses the queue. We submitted 185+ pages via direct API calls on launch day — each one goes directly into the indexing pipeline, not the crawl queue backlog. The result is indexing that happens in days, not months.
Results
At-scale local SEO coverage. Fast.
Takeaways
Scale changes the game.
Most investor websites stop at a handful of city pages because building them manually doesn't scale. The operators who commit to programmatic coverage — every city, every neighborhood, every long-tail variation — own the search landscape in their market.
The combination of Astro's build system and the Google Indexing API makes this approachable. The technical barrier is low once the system is built. Adding 50 more cities is a dataset update, not a project.
Programmatic SEO works when the pages are genuinely useful — not thin duplicates. The content variation layer is what separates indexed-and-ranking from indexed-and-penalized.
Buy in every city you want to close in.
If you're an investor operating in 10+ cities and you don't have a page for each one, you're leaving leads on the table. Book a call and we'll scope a programmatic build for your market.