Most local SEO advice quietly assumes one business at one address. The moment you open a second branch, a fair amount of it stops mapping onto your situation, because you're no longer optimising a business, you're optimising several small local businesses that happen to share a name. That's the core of multi-location SEO, and most of what goes wrong in local SEO for chains comes from treating the brand as the unit of work when Google is ranking the branches.
One distinction before anything else. This post is about businesses with genuine premises in more than one place, shops, clinics, showrooms, depots, offices that customers visit or staff work from. If you're one base and a van covering ten towns, you're a service-area business, and the tool for you is the local landing page, which I've covered separately. The two get muddled constantly, and the muddle produces bad decisions in both directions.
Google ranks locations, not brands
The map pack runs on relevance, distance, and prominence, and it evaluates them per location. I've unpacked how that contest works in what local SEO actually is, but the practical consequence for a chain is worth stating plainly. Your Manchester branch competes in Manchester on the strength of the Manchester profile, the Manchester page, and the Manchester reviews. The fact that your Leeds branch is thriving lends it very little.
Brand-level strength isn't worthless, a well-known name earns searches, clicks, and links that benefit every branch. But it acts like a rising tide, not a substitute for the per-branch work. The chains that dominate their local markets are the ones where each location could stand up as a credible local business on its own, and that framing, one credible local business per branch, is the honest job description for everything below.
One Google Business Profile per location
Every branch that's staffed during its stated hours and deals with customers in person qualifies for its own profile, and should have one. This is the single highest-leverage piece of the whole discipline, because the profile is what enters each branch into its local map pack contest. The mechanics of a strong profile, categories, services, photos, the fields that matter versus the cosmetic ones, are the same as for a single-location business, and I've walked through them in the Google Business Profile guide. Three things change at chain scale.
Naming has to be consistent. Google's guidelines are explicit that chains should use the same name across every location, so it's "Hart Dental", not "Hart Dental Didsbury" on one profile and "Hart Dental - The Manchester Smile Experts" on another. Appending the town feels like optimisation and reads, to Google, like the keyword-stuffed names it has spent years suppressing. The exception is a business whose real-world branding genuinely varies by site, which is rarer than people want it to be.
Categories should match wherever the offering matches. If every branch does the same work, every branch carries the same primary category. Letting each branch manager pick their own is how you end up with three branches in the same chain competing in three slightly different contests.
Each profile links to its own location page, not the homepage. The profile is how a searcher in that town reaches you, and landing them on a generic homepage that mentions the town nowhere wastes the click and weakens the association Google is trying to build between profile and page.
A page per branch, and why chains have it easier than they think
Every location needs its own page on the site. The failure mode is the same one that kills service-area businesses, a single template with the town name swapped per page and nothing underneath that could only be true of that branch. I've covered what separates a page that ranks from a doorway page in detail, and all of it applies here.
The good news is that a real branch generates real material almost without trying. It has an address, photos of the actual premises, the team who work there, opening hours, parking and transport detail, the services or stock particular to that site, and reviews from customers who name it. A service-area business has to work hard to make each area page genuinely different; a branch page practically writes itself once someone bothers to collect the material. If your location pages still look templated, that's an effort problem rather than a content problem, and it's usually because the pages were built centrally by someone who has never visited the branches.
Each page should carry LocalBusiness schema, or the most specific type available for what you do, with that branch's own name, address, phone number, opening hours, and geo coordinates. One block per branch on its own page, not a single sitewide block listing head office.
Structure: a locations hub, one click from everywhere
Location pages fail structurally as often as editorially. The pattern that works is a locations hub at something like /locations/, listing every branch with its town and a link, reachable from the main navigation or footer sitewide. Each branch page sits one level below it, /locations/manchester, and links back up to the hub and across to the main service pages. Past a few dozen branches, add a regional layer, but don't add it before you need it.
The store locator deserves a specific warning. A locator that's a map widget rendered entirely in JavaScript, with no crawlable HTML links to the branch pages, can leave those pages effectively orphaned. If the only route to your branch pages is typing a postcode into a search box, Google may never find them. Plain HTML links on the hub page solve this completely.
What head office owns and what the branch owns
The recurring tension in multi-location SEO, and the defining one for franchises, is central control versus local effort. Centralise everything and the pages go templated and stale. Devolve everything and you get seventeen naming formats and a suspended profile. The split that works in practice looks like this.
| Element | Head office owns | The branch owns |
|---|---|---|
| Name format, categories, brand assets | Sets and enforces | Follows |
| Site templates, schema, page structure | Builds once | Supplies the material |
| Business details and opening hours | Holds the source of truth | Reports changes immediately |
| Photos and proof of work | Sets the standard | Takes and submits them |
| Reviews, asking and replying | Sets the process | Does the asking and replying |
| Local links and community presence | Encourages | Earns them |
The pattern is that consistency is central and evidence is local. Head office is the only place naming, categories, and data consistency can be enforced from, and the branch is the only place photos, reviews, and local relationships can actually come from. Chains that invert this, branches inventing their own naming while head office writes all the "local" content from a desk ninety miles away, get the worst of both.
On the data side, keep one source of truth for every branch's name, address, phone number, and hours, and push changes from it to the site, the profiles, and the major directories together. Mismatched details across platforms are quietly corrosive, and with dozens of locations a spreadsheet nobody owns will drift within months. Give each branch its own local phone number where you can, it reinforces the location and makes per-branch call tracking possible.
Reviews are a branch-level job
Reviews attach to profiles, not brands, so a five-hundred-review flagship does nothing for the map pack position of a branch sitting on twelve. Velocity, recency, and replies all count per location, and the branches that accumulate reviews are the ones where asking is somebody's actual job, built into the point of sale or follow-up, rather than a head-office aspiration. The full picture of how reviews move local rankings, and how to stay ethical about it, is in the reviews and local rankings guide. At chain scale the added ingredient is process, a consistent ask at every branch, and replies handled by someone close enough to the branch to reply like a human who was there.
Per-branch review counts also make a useful internal league table. If one branch gathers reviews at triple the rate of the others, that's rarely a demand difference, it's a process difference, and the process can be copied.
Measuring it per location
Brand-level traffic charts hide everything useful, a strong quarter for the brand can conceal three branches drifting backwards. Three views keep it honest. Search Console filtered to each branch page URL shows whether Google is surfacing that page for service-plus-town queries, and at what position. Each profile's own performance report shows calls, direction requests, and website clicks for that branch. And tagging each profile's website link with UTM parameters lets your analytics attribute branch-page sessions to the profile that sent them, which is the piece most chains are missing when they say they can't tell whether any of this works.
Review the set quarterly per branch, not annually per brand. The question is never "is local SEO working", it's "which branches is it working for, and what are the others missing".
Multi-location SEO FAQs
Should each location have its own website?
No, almost never. Separate domains split your authority into fragments, multiply the maintenance, and usually end up thin and stale. One domain with a strong locations structure lets every branch benefit from the links and reputation the whole business earns. The exception is genuinely distinct brands under one company, which is a branding question rather than an SEO one.
Can two branches in the same town both rank?
Both can hold profiles and pages, but for any given search Google tends to show a brand once in the map pack, usually whichever branch is nearest or strongest for that query. Give each a distinct page with its own reviews and detail, and where they genuinely differ in offering, say a showroom and a service centre, reflect that in the categories so they're not competing for identical queries.
What should I do when a branch closes or moves?
For a move, update the address everywhere at once, profile, site, directories, rather than letting the old address linger in half the places. For a closure, mark the profile permanently closed rather than deleting it, and redirect the branch page to the nearest branch or the locations hub. Leaving a closed branch's page live to "keep the traffic" earns you searchers who drive to a shut door, and reviews to match.
How do I stop my location pages all reading the same?
Make the branches supply the material rather than writing the pages centrally. Photos of the actual site, the team, branch-specific services, parking and access detail, and reviews naming that location will differentiate the pages naturally. If a page can't be filled with material specific to that branch, the problem is the collection process, because unlike a service-area business, a real branch always has the material.
Want every branch pulling its weight in search?
Tell me what you're working on and what you're trying to achieve, and I'll give you an honest view of whether I can help and what it would take.
Get in touch