Marketing · Mar 2026

Service-area pages that rank: Keller, Southlake, and the doorway-page trap.

Ten cloned city pages with the town name swapped are doorway spam, by Google's own definition. A real service-area page is one of the highest-leverage pages a local business can build — here's what separates them.

You run a service business out of Fort Worth or one of its suburbs, and your customers come from a 20-mile circle: Keller, Southlake, Grapevine, North Richland Hills, maybe Roanoke on a good week. Somebody — a marketer, a YouTube video, a competitor's site — told you the fix is a page for every city. So now you're staring at a to-do list that says "write 10 city pages" and wondering whether that means writing the same page 10 times with the city name swapped.

Don't. That specific move has a name in Google's spam policies: doorway pages. Google defines them as pages "created to rank for specific, similar search queries" that funnel users to the same destination — and calls out "multiple pages targeting specific regions or cities that funnel users to one page" as an example. That's from Google's own spam policies documentation, not a blogger's interpretation.

But here's the part that gets lost: the doorway-page rule is not a rule against city pages. A real service-area page — one that could only have been written about Keller, by someone who actually works in Keller — is legitimate, effective, and often the single highest-leverage page a local service business can build. The whole game is knowing which side of the line you're on.

What actually separates a doorway page from a real one

Run this test on any city page, yours or a competitor's: if you swapped the city name, would anything else on the page have to change?

If the answer is no — same headline, same three paragraphs, same stock photo, "we proudly serve [CITY] and surrounding areas" — it's a doorway page. It doesn't matter that you genuinely do serve that city. The page adds nothing a search engine or a human couldn't get from your homepage plus a service-area list.

A real Keller page changes because Keller is different:

  • The jobs are different. Keller has a lot of 1990s–2000s housing stock in neighborhoods like Hidden Lakes and Marshall Ridge — which means specific, predictable problems: original builder-grade water heaters aging out, cast-stone facades, slab foundations on that clay soil every North Texas contractor complains about. A plumber's Keller page that talks about repiping 25-year-old homes reads nothing like their Southlake page.
  • The customers are different. Southlake's median household income is among the highest in Texas (the U.S. Census Bureau's American Community Survey puts it well north of $240,000). A remodeler writes differently for Southlake — full kitchen guts, permit timelines with the City of Southlake — than for a starter-home neighborhood in Watauga.
  • The proof is different. Jobs you've done there, streets you've worked on, the local supply house you use, how far you are from the town center and what your real response time looks like on a Tuesday afternoon.

None of that can be generated by find-and-replace. That's the point.

Which suburbs actually deserve their own page

Not every city on your service map earns a page. A page you can't fill with genuine local content is a page you shouldn't build yet. A workable filter:

  1. You've done real work there. Three or more jobs is a reasonable floor. One job doesn't give you enough material; ten gives you a page that writes itself.
  2. There's real search volume for it. People search "plumber keller tx" in meaningful numbers. They search far less for tiny unincorporated pockets — those can live on a parent page.
  3. You actually want more work there. Drive time, job size, permit friction. If Southlake jobs are twice the ticket size of your average, that page earns priority.

For a typical Fort Worth-based trade, that usually shakes out to 4–7 pages, not 15: Fort Worth itself, then Keller, Southlake, Grapevine/Colleyville, North Richland Hills, and maybe one growth market like Roanoke or Alliance-area. Everything else gets one honest "areas we serve" page with a map and a list. Fewer, deeper pages beat a thin page for every ZIP code — every time.

What goes on the page (a checklist you can actually execute)

Each city page should carry most of these:

  • A headline that names the service and the city — once, naturally. Not "Keller Plumber | Plumber Keller TX | Keller TX Plumbing."
  • 2–3 paragraphs about doing this work in this city. Housing stock age, common issues, local code or permitting quirks, the neighborhoods you're in most.
  • Local jobs. Even without client names: "Replaced a 50-gallon water heater in Hidden Lakes last month — the original 2003 builder unit, like most on that street." Specific, true, anonymous.
  • Photos from that city when you have them. More on when you don't below.
  • Real logistics. Where you're based, honest drive time, whether you charge a trip fee past a certain radius.
  • Reviews from customers in that city, if your review platform lets you filter them.
  • A distinct meta title and description written for that page, not templated.

And one structural rule: each page targets one city (or one tight cluster like Grapevine/Colleyville if you genuinely treat them as one market). No "Keller, Southlake, Grapevine, Watauga, and Haltom City" keyword pileups.

The honest version of "we don't have photos from that city yet"

This is where most businesses either stall or fake it. You want a Southlake page but you've done two jobs there and photographed neither. The tempting move is stock photos or — worse — photos from a Keller job labeled as Southlake. Don't. If a prospect recognizes that the "Southlake kitchen" is a stock image, you've lost them, and you've earned it.

The honest alternatives work fine:

  • Write what you know instead of showing what you don't. You can describe Southlake's permitting process, typical project scale, and HOA realities without a single photo. Text carries most of the ranking weight anyway.
  • Say it plainly. "We've recently expanded into Southlake and are booking our first projects there — here's exactly how we work." Candor converts better than a page pretending to a track record it doesn't have.
  • Backfill on a schedule. Next Southlake job, take ten photos and get a review. Update the page that week. A page that visibly improves over months is exactly what Google's helpful-content guidance rewards.
  • Use real area photos honestly labeled — Southlake Town Square as a location shot is fine, as long as it's presented as the place, not your work.

How West Fork approaches this

We build service-area pages one at a time, starting with the city where the client has the deepest job history, and we interview the owner about that specific market before writing a word — what breaks there, who calls, what the jobs look like. Pages without real local material wait until there's something true to say. It's slower than cloning ten pages in an afternoon, and it's why the pages hold up.


The takeaway

The swap testif changing the city name wouldn't force any other change, the page is thin
Build 4–7 deep pages, not 15 thin onesreal work, real search demand, real appetite for the job
No photos from that city yet? Say so.candor converts better than a page pretending to a track record it doesn't have
One city per page, one page per citydepth beats coverage, every time

Deciding which cities actually deserve their own page? We'll interview you about each market and build the ones with something true to say — not fifteen thin clones.

Fixed quote within 48 hours — no obligation.