- As soon as a search has local intent, Google changes its results by city, not just the local pack.
- The geolocation parameter (city, region, country) reproduces the SERP seen from a specific town.
- For local SEO at scale: cross keywords with cities, on mobile; one page of depth is often enough.
Why the SERP changes with location
Google adapts its results to the searcher's location as soon as a query has local intent: “plumber”, “restaurant”, “garage”, but also “home insurance” or “divorce lawyer”. The difference isn't limited to the local pack, the block of three businesses with a map. Organic results change too: local directories, branch pages, regional news.
The direct consequence: a SERP collected without a precise location, or from a server located elsewhere, matches what none of your customers see.
Three levels of location
- Country: the Google version queried (google.com, google.co.uk, google.ca…) and the language. It is the minimum, and enough for searches without local intent.
- City: the SERP seen by a searcher in a given town. The right level for local SEO and for networks of branches or stores.
- Device: on mobile, location weighs even more, and the local pack takes a bigger share of the screen.
Getting a geolocated SERP through an API
With the Semscraper Google Search API, three parameters are enough: location for the Google version, language for the language, and geolocation for the city, as “city, region, country” separated by commas.
[
{"search_engine": "google_search", "keyword": "plumber", "device": "mobile", "location": "en", "language": "en", "depth": 1, "geolocation": "Austin, Texas, United States"},
{"search_engine": "google_search", "keyword": "plumber", "device": "mobile", "location": "en", "language": "en", "depth": 1, "geolocation": "Denver, Colorado, United States"}
]Both SERPs come back with their blocks, and the rank and pixel position of every result. The local pack is returned with each business's rating, review count and price range.
The same parameter exists on the Google Maps API, to collect the full list of listings from a Maps search in a given city.
Tracking local SEO at scale
For a network of stores, the classic method crosses a keyword list with a city list: 50 keywords across 40 cities is 2,000 SERPs per snapshot. A few tips:
- Pick the cities where you have a presence, plus two or three control cities without one to measure the gap.
- Collect on mobile: it is the device of local searches.
- One page of depth is usually enough: locally, what matters happens in the local pack and the top results.
- Compare pixel position from one city to another: a higher or fuller local pack pushes organic results down.
At €0.30 per 1,000 SERPs for page 1, a 2,000-SERP snapshot costs €0.60.
Limits to keep in mind
Geolocation reproduces the SERP of a searcher located in the city, with no history or Google account. Personalized results, tied to one person's history, are by definition not reproducible. And a local SERP moves faster than a national one: a competitor opens, new reviews come in, opening hours change. A weekly snapshot is a good starting pace.
