Local SEO · Complete guide
Multi-location SEO: how to structure a website with several cities or branches
A real branch, a service area and a city you merely want to target do not deserve the same page, the same Google listing or the same markup. Here is how to organise your site based on what you genuinely have in each city.
In this article 9 sections
- 01 · Branch, service area, target city: start from what you genuinely have
- 02 · Google listing: one per branch, or a service area?
- 03 · Building a clear hierarchy: branches section, service areas and URLs
- 04 · The branch page: accurate information consistent with the listing
- 05 · Service-area city pages: when to create one, and when to hold back?
- 06 · Differentiating the content and titles of your local pages
- 07 · Getting your local pages discovered and indexed
- 08 · LocalBusiness markup: one object per real location
- 09 · Tracking and managing a branch network
In brief: a city page is only worth having if a real establishment or service stands behind it. Give each branch its own page and listing, give service areas a useful (or grouped) page, and mark up only what exists.
On paper, three more cities in the catalogue means three more pages to publish. In practice, it often means three duplicates that dilute your site and confuse Google. To structure a multi-location site, the right question is not "how many cities do we want to cover?" but "what do we actually have in each one?" Throughout this article, we will follow a fictional company, Thermalis, which services boilers at its customers' premises, with two branches (Lyon and Lille) and several communes served.
Branch, service area, target city: start from what you genuinely have
The three situations
There are three cases, and each calls for a different response. A real location has a team and, most often, a reception. A service-area city is covered from an existing establishment, with no presence of its own. A target city is only a commercial target: no team operates there yet.
Situation | Thermalis example | Website page | Google listing |
|---|---|---|---|
Real location | Lyon and Lille branches, with staff | Detailed branch page | One listing per branch, subject to eligibility rules |
Service area | Villeurbanne, covered from Lyon | Area page if it provides useful information, otherwise a grouped page | No listing of its own: the city appears in the branch's service area |
Target city | Grenoble, under consideration, with no team or operations | No service page until the service is actually provided there | None |
This table is the starting point for every decision that follows. If you are unsure which row a city belongs in, you are not ready to create a page for it.
What Google expects from a real location
A business listing must correspond to a real location. Under the representation guidelines of Google Business Profile, a virtual postal address with no on-site activity is not eligible. A shared office must have signage, receive customers and be staffed during the stated opening hours.
Be careful not to mix everything up, though. These rules concern theeligibility of a listing, not the right to publish an informative web page about a city you serve. The website page can exist for a service area; the Google listing, by contrast, depends on having a physical location.
Finally, the structure comes after preliminary work on the phrases your customers actually type, which we cover in " Choisir mots cles seo local ". Without this step, you risk building a tidy site architecture around cities nobody is searching for.
Point to watch
A registered-office address or an office with nobody there during the posted hours does not turn your target city into a branch. It is better to openly declare a service area than to invent a location.
Google listing: one per branch, or a service area?
A single establishment, several cities
First case: you travel to your customers without receiving them at your address. You then use a service-area business listing and hide your address. Second case: a single location covers several cities. It does not get one listing per city, because its service area is set out on the establishment's listing.
Google lets you define these areas by city, by postcode or by another type of area. At Thermalis, the Lyon branch's listing therefore lists Villeurbanne, Vénissieux and Caluire in its service area, with no additional listing.
Also remember that an area page on your website creates neither a new location nor a new listing. You can describe your coverage of a city on the site, but that is not enough to justify an additional establishment in that city.
Several operational locations
A service business may, on the other hand, have one listing per location when it has distinct premises, each with its own teams and service areas. That is the case with Lyon and Lille: two listings, two teams, two areas.
This option remains subject to the other eligibility rules. Covering several cities from a single establishment is not enough to open several listings; you need genuine premises and genuine teams.
Building a clear hierarchy: branches section, service areas and URLs
The branch directory
Google discourages doorway pages (pages created mainly to capture local searches, with no value of their own) and favours a clear, navigable hierarchy. Every important page should also receive at least one link from another page on the site. A "branches" directory and, where relevant, a "service areas" directory, linked to the local pages, apply these principles. Google does not impose a URL format: the naming of your sections is up to you.
In practical terms, an "Our branches" page lists each establishment with a descriptive link to its detailed page. It becomes the natural entry point from the main menu and the footer.
Separating branches and areas in URLs
Google recommends simple, descriptive, logically organised URLs. Paths such as /agences/lyon/ and /zones-desservies/villeurbanne/ are design examples for distinguishing a branch from a service area, not prescribed syntax. The value is mainly editorial: visitors, your team and search engines can see at a glance what is a place and what is coverage.
Worked example: a company with two branches
Here is Thermalis's illustrative site structure, after deciding city by city (the reasoning behind these choices is detailed below).
/
/agences/
/agences/lyon/
/agences/lille/
/zones-desservies/
/zones-desservies/villeurbanne/
/zones-desservies/lyon-communes-voisines/ (Vénissieux, Caluire)
/zones-desservies/roubaix-tourcoing/
/zones-desservies/villeneuve-d-ascq/Each area page links to the branch that serves it, and the branch page links back to its areas. This two-way linking shows the relationship clearly: Villeurbanne depends on Lyon, while Roubaix and Tourcoing depend on Lille. Grenoble, a target city with no presence, appears nowhere.
The branch page: accurate information consistent with the listing
Contact details and reception
Each branch's listing must provide accurate information about its address, hours and activity. Your branch page repeats exactly the same details: any discrepancy between the two sows doubt in the minds of customers and Google alike.
Google recommends a phone number that reaches the individual establishment, or a website representing that establishment. So display the branch's direct line rather than a national switchboard. Only give a visiting address if customers are actually received there; a team that works solely at customers' premises does not need to publish a reception point.
What then gives the page its value is the content specific to the location:
the team in place and its specialisms;
how customers are received or appointments are made;
access (public transport, parking) where the public is received;
the services actually available at this branch.
Linking from the listing to the right page
The phone number or website shown on a listing must represent the business in question. For local action links (booking, appointment scheduling, for example), Google's policy more specifically requires a dedicated page for the relevant business, and advises against a general page or one belonging to another location.
This explicit requirement applies to action links; it would be excessive to turn it into a literal rule for every "website" link. In practice, the instinct remains a sound one: the Lille listing points to the Lille branch page, never to the national homepage or to Lyon.
Service-area city pages: when to create one, and when to hold back?
The usefulness test
A page devoted to a city without a branch must meet an identifiable local need and provide useful information about the service actually delivered in that city. If you can write nothing more than the name of the town, the page has no reason to exist.
The risk is well known. Creating many near-identical city pages that all lead to the same destination matches the examples of doorway page abuse cited in Google's spam policies.
Group rather than clone
When the content specific to a town is thin, an area page covering several nearby towns is more honest and more useful. Let's apply the test to Thermalis's cities:
Villeurbanne: its own page, because (in our scenario) the Lyon team has specific service arrangements to describe there.
Vénissieux and Caluire: a combined page, as there is no distinct content for each.
Roubaix and Tourcoing: a combined page, served from the Lille branch.
Villeneuve-d'Ascq: its own page, with specific service information.
Grenoble: no page, since the service is not provided there.
This triage should be redone with your own data: enquiries actually received, service specifics, and questions asked by customers in each town.
Differentiating the content and titles of your local pages
Location-specific content
Google recommends content that provides original information and demonstrates first-hand experience. For local pages, this translates into services that are genuinely available, local service or reception arrangements, and evidence specific to the location. This is an editorial application of that principle, not a mandatory list of fields. These details must be accurate, and including them does not guarantee ranking.
Changing only the city name is not enough, and the risk is real: when several pages have identical or very similar main content, Google may group them together and keep only one URL.
Descriptive titles
The title tag is the page title read by search engines and often shown in results. Google recommends a descriptive, concise title, and discourages boilerplate titles where only a small part varies. It may also display a title link different from the one you wrote: a title that faithfully reflects the visible content limits this discrepancy.
Element | Before (cloned page) | After (useful page) |
|---|---|---|
Title, Villeurbanne | Boiler servicing in Villeurbanne | Thermalis | Boiler servicing in Villeurbanne: visits from the Lyon branch | Thermalis |
Content block, Villeurbanne | Generic sentence where only the city name changes | Lyon branch team who travel to you, services offered on site, how to arrange an appointment |
Title, Villeneuve-d'Ascq | Boiler servicing in Villeneuve-d'Ascq | Thermalis | Boiler servicing in Villeneuve-d'Ascq: visits from the Lille branch | Thermalis |
Content block, Villeneuve-d'Ascq | Same text as Villeurbanne, with the city swapped | Services actually available, service arrangements from Lille and evidence specific to the location |
The "before" says only "we exist here". The "after" answers the visitor's question: who comes, from where, and how. Without this substance, a new title will not save the page.
Getting your local pages discovered and indexed
Crawlable links and sitemap
Google discovers pages through crawlable links, and recommends that an important page be linked from at least one other page on the site. HTML links with an href attribute and a descriptive label suit a branch directory and its detail pages well.
Beware of attractive interfaces: an interactive map or a store locator should not be the only route in if it does not expose these links. Back it up with a simple list of links.
A sitemap (a file listing a site's URLs) can help Google discover the pages of a large or complex site. It does not replace navigation linking the important pages, and guarantees neither crawling nor indexing.
Duplicates and canonicals
When pages are nearly identical, Google may group them and choose a canonical URL, that is, the version it judges to be representative. Duplicate content is not, in itself, a breach of the spam policies; doorway page abuse is a separate issue.
The rel=canonical tag is a signal of preference, not an instruction: Google may select a different URL. Pointing all your cities to a single canonical is therefore not a way to get them indexed as distinct local pages.
Please note
To find out which URL Google has actually selected, open the URL Inspection tool in Search Console and compare the canonical chosen by Google with the one you declared.
LocalBusiness markup: one object per real location
Markup is code added to the page to describe its content to search engines in a structured form. Google asks you to define each local business as a LocalBusinessobject, ideally using the most specific subtype. The page presenting the business is the relevant place for it: for Thermalis, the Lyon branch page describes one object, and the Lille branch page describes another.
For eligibility for the LocalBusiness rich results documented by Google, the name and physical address are required. The phone number, opening hours and URL of the specific business are among the recommended properties.
You should therefore not invent a physical address to mark up a mere service area, nor a fictitious branch inferred from a city page. These properties describe a defined place; they do not prove eligibility for a listing, and offer no guarantee of display or better ranking.
Tracking and managing a branch network
Measuring by location
Search Console lets you analyse search performance by page and by query, and inspect the indexing status of a URL. You can thus track branch pages and city pages separately. These data alone do not represent the interactions that take place directly on a listing.
For that, review the performance of verified listings, for one or more locations. Depending on the business, the metrics include website clicks, call button clicks and direction requests. An export lets you compare locations with one another.
Bulk management from 10 locations
Google offers bulk addition, verification and management to businesses with at least ten locations eligible locations. A business group and a spreadsheet make it possible to centralise their management. This threshold applies neither to creating web pages nor to the sitemap: Thermalis, with two branches, is not affected.
Final five-point checklist to validate the structure:
Every city is classified as an actual location, a service area or a target city, with its corresponding page and listing.
Every branch has a page whose contact details match its listing, and the listing links to that page.
Every area page passes the usefulness test; otherwise, it is grouped with neighbouring towns or not created at all.
Every important page receives a descriptive HTML link from the directory, with readable URLs and distinct title tags.
LocalBusiness markup describes only real locations, and the chosen canonical is verified in URL Inspection.
A solid multi-location site often has fewer pages than you might expect, but each one corresponds to a location or service that you can show, and it is this correspondence that stands the test of time.
FAQ
It is the set of actions that help a business appear when customers search for a service near them. It combines the website (pages, content, markup) and the Google Business Profile listing, which depends on a real physical location.