Almost everyone approaches how to do keyword research for multiple locations the same wrong way: they take one keyword, multiply it by a list of cities, and generate 200 near-identical pages. That is not keyword research — it is a doorway-page factory, and Google has demoted exactly this pattern in every core update since 2019. The real work is smaller, sharper, and mostly about deciding which locations deserve a page at all. Do that part right and the writing takes care of itself. Get it wrong and you build a thin-content liability you will spend the next year cleaning up.
The multiplication trap that kills most local SEO
The seductive math looks like “plumber” × 50 suburbs = 50 pages of traffic. In practice you get 50 templated pages where the only difference is the city name in the H1, and Google treats them as scaled, low-value content. The correct mental model is the inverse: you research demand across markets, then earn each page individually. Done right, how to do keyword research for multiple locations is a filtering problem, not a generation problem. Your job is to throw locations away, not add them.
First, classify keywords by local intent — using the SERP, not your gut
Not every keyword in a local business’s niche actually triggers local ranking. “Emergency plumber” shows a map pack; “how does a sump pump work” shows blog posts and gets ranked identically worldwide. Before you spend a dollar, split your seed list into two buckets by looking at what Google actually returns:
- Local-intent keywords — the SERP shows a map pack, “near me” suggestions, or localized organic results. These need location pages or Google Business Profile work.
- Global-intent keywords — the SERP is the same in every city (guides, definitions, comparisons). These need one great page, ranked once, that serves every market.
This single distinction saves you from the most common mistake in how to do keyword research for multiple locations: building 40 city versions of an informational article that only ever needed one. If the SERP doesn’t localize, neither should you.
Physical locations vs. service-area businesses change the whole approach
A dental clinic with five real addresses and a plumber covering “anywhere within 30 miles” are not the same SEO problem. A physical-location business can build a genuine page per branch with a real address, hours, staff, and Google Business Profile — Google rewards that authenticity. A service-area business (SAB) has no address to anchor to, so a page for every suburb it “serves” is pure fabrication in Google’s eyes. If you’re an SAB, be ruthless: build pages only for the handful of core cities where you have real proof of work, reviews, and volume, and let broader service-area terms flow to a strong hub page.
Build one master keyword set before you touch a single city
Start location-agnostic. Pull 200–300 keyword ideas per core service — “drain cleaning,” “water heater repair,” “emergency plumber” — with volume, difficulty, and CPC on the head terms, then narrow to the 30–40 that map to services you actually sell. This is where AI-assisted research earns its keep: SEO Rocket runs keyword discovery on live Ahrefs data, so you’re filtering against real search volume and difficulty per country instead of guessing from autocomplete. You now have a clean master set. Every location decision downstream is just this set, checked against a specific market.
Estimate real demand per market — and know why the numbers lie
Here’s the honest caveat almost no guide mentions: keyword tools massively undercount hyperlocal volume. A tool might show “plumber Ashfield” at zero searches, but the “near me” and implicit-location searches from that suburb are real and invisible in the index. So don’t validate on the exact “keyword + city” string — validate on the market. For each candidate location, check three signals:
- Head-term country/region volume — is there meaningful demand for the service in this geography at all?
- The top 3–5 explicitly modified terms (“plumber [city],” “[city] drain cleaning”) — enough to prove people search with the modifier.
- CPC and competition — advertisers bidding is the strongest proof of commercial intent, even when reported organic volume looks thin.
Set your market index to the right country before you run any of this. A UK business querying the US index will see a near-empty, misleading picture — a mismatch that quietly wrecks more local campaigns than any algorithm ever does.
Decide which locations actually earn a page
This is the decision the multiplication crowd skips. A location earns a dedicated page only when it clears all three gates:
- Real presence — you have a physical address, or genuine, provable service history there.
- Real demand — the market validation above returned a signal, not a flatline.
- Real differentiation — you can write 400+ genuinely unique words about serving that place, not a find-and-replace of another page.
Fail any gate and the location doesn’t get a standalone URL — it gets a mention on a regional hub, or nothing. Three strong location pages will out-earn thirty thin ones every time, because Google measures the average quality of your site, not the count of your URLs.
Turn market differences into content that isn’t templated
The differences between markets are your unique content — you just have to find them. For each location that earned a page, mine the specifics that a find-and-replace can never fake: local vocabulary (“geyser” vs. “water heater”), seasonality (frozen pipes in one region, drought restrictions in another), regulations and permits that differ by council or state, the named local competitors you’re up against, and neighborhood-level detail (older housing stock, hard water, specific building codes). SEO Rocket’s competitor gap analysis surfaces the terms rivals rank for in each specific market, which is the fastest way to see what a genuine local page in that city needs to cover.
Structure URLs and internal links so the network scales
Pick one URL pattern and never deviate: /service/city/ or /locations/city/. Consistency lets you scale to 50 pages without a chaotic architecture. Then link deliberately — a service hub links down to each location page, each location page links up to its service hub and sideways to nearby locations. This internal-linking mesh is what distributes authority across the network and stops your city pages from becoming orphaned islands. Skip it and even your good location pages stall on page two because nothing on the site tells Google they matter.
A worked example: five suburbs, one plumbing brand
Say you cover a metro area with 40 suburbs. The lazy build is 40 pages. The real process: your master set has 35 service keywords. Market validation shows genuine “plumber [suburb]” demand and CPC in only 8 of the 40 suburbs. Of those 8, you have real job history and reviews in 5. So you build 5 location pages — each with the local council’s permit quirks, the specific water-hardness issue in that area, and the two named competitors ranking there — plus one regional “areas we serve” hub linking to all five and mentioning the other 35 suburbs as service coverage. Five deep pages, one hub. That structure ranks; the 40-page version gets filtered as scaled content within a couple of update cycles.
Track rankings by market — or your data will lie to you
A rank check run from your office reports one location’s results, not your customer’s. Rankings for local terms vary by the searcher’s physical position, so you must track each keyword with its target location specified, and read the trend across weekly top-100 snapshots rather than a single-day spot check that jitters. Cross-check against Google Search Console impressions filtered by query and page — that’s your ground truth for which location pages are actually surfacing. SEO Rocket’s rank tracking and per-market view exist for exactly this: so a page ranking #3 in its own city isn’t misread as a failure because it shows #40 from your desk.
Honest caveats and the mistakes that sink campaigns
A few truths worth stating plainly. Location pages are slow — expect three to six months before a new city page settles, same as any competitive term. Programmatic location pages can work, but only when each carries real, distinct data; the moment they’re templated, they become a liability, not an asset. And more pages is not more traffic — a site of 15 thin city pages routinely underperforms one of 4 excellent ones. The playbook proven across 1,000,000+ ranking pages isn’t “publish more.” It’s “publish only what you can make genuinely, provably better than what already ranks in that specific place.”
FAQ
How many keywords do I need per location?
Fewer than you think. You need one strong master set of 30–40 service keywords, not a fresh set per city. Each location page then targets the 3–5 explicitly localized versions of your core terms plus the local-vocabulary variants — everything else is served by that page’s depth and your internal linking, not by more keywords.
Should I create a page for every city I serve?
No. Create a page only where you have a real presence, validated demand, and enough unique local detail to write 400+ non-templated words. For every other area, use a single “areas we serve” hub. Building a page per city with no real differentiation is the classic doorway-page pattern Google demotes.
Why do keyword tools show zero volume for my city terms?
Index-based tools undercount hyperlocal and “near me” searches, which are real but poorly captured. Validate on head-term regional demand and CPC instead of the exact “keyword + city” string, and confirm with Google Search Console impressions once pages are live.
Multi-city in one country vs. multi-country — is it different?
Yes. Multi-city research shares one language and index and hinges on local intent and presence. Multi-country adds language, currency, search-behavior, and hreflang considerations, and each country must be queried against its own index — the demand and difficulty are entirely different datasets, not the same numbers translated.