Local SEO for multiple locations comes down to one rule and one problem. The rule is that every location gets its own Google Business Profile and its own page on one website. The problem is making those pages genuinely different from each other, because the thing that sinks multi-location businesses is not missing pages, it is twelve pages that are the same page with the city swapped.
Everything below follows from that. The profile work is mechanical and you can finish it in a week. The page work is a content problem wearing a technical costume, and it is where the results actually come from.
The rule Google states plainly, and the three exceptions
One location, one profile. Google's representation guidelines put it without hedging: do not create more than one page for each location of your business, in a single account or across multiple accounts. Duplicates do not double your presence, they split it and risk both listings.
Three exceptions are written into the same guidelines, and they are narrower than most people assume.

Four cards setting out Google's one-profile-per-location rule and its three exceptions: publicly facing departments, individual practitioners, and genuinely separate co-located businesses.
Departments inside a larger business can hold their own profiles, but only if they are publicly facing, operate as distinct entities, have a separate customer entrance, and sit in different categories. The service department at a dealership qualifies. The sales desk at the back of your showroom does not.
Individual practitioners can have their own profiles if they work in a public-facing role and can be reached directly at the verified location. A four-doctor clinic can legitimately run five profiles: one for the practice, one per doctor.
Co-located businesses that are genuinely separate, like a restaurant inside a hotel, each get a profile under their own name.
Everything else is one location, one profile, and the name has to match across locations unless the real-world signage genuinely varies.
Two locations, five, or fifty are three different problems
Almost every guide on this topic is written for a brand with forty branches. If you have three, most of that advice is overhead you do not need, and it skips the problem you actually have.

Three-tier breakdown of multi-location SEO by business size: two to five locations compete with each other, six to twenty fight data drift, and twenty plus need a system.
Two to five locations, usually in one metro. Your hardest problem is that your own locations compete with each other. You have enough pages to cannibalize and not enough to justify tooling. Do everything by hand, and spend your effort on making the pages different.
Six to twenty, spread across a region. Now data drift is the problem. Somebody changes the hours at one branch and tells nobody, a phone number gets forwarded, a location moves two blocks. The work shifts from creating to maintaining, and you need one named owner of location data.
Twenty or more. Now you need a system: a single source of truth for location data, bulk verification, and reporting that shows each location separately rather than a brand total. This is where listings management software stops being a luxury.
Be honest about which of these you are. A three-location business running enterprise processes wastes the budget it needed for content.
Your own locations compete, and Google picks one
Here is the part nobody warns small multi-location businesses about.
Google filters results so that one brand does not occupy several map pack slots for one search. When two of your locations are close enough to be plausible answers for the same query, one wins and the other is filtered out. You do not get both. From inside your business it looks like the second location has an SEO problem, and it does not, it has a geography problem.

Three-column explanation of why a brand's own locations compete: map pack filtering, organic self-competition, and the three things that actually help.
The organic equivalent is worse because it is quieter. Two location pages targeting nearly identical terms both rank badly rather than one ranking well, because the site is offering the same answer twice and Google has to guess which one you meant.
Three things actually help. Make each location page answer a different question, not the same question in a different city. Point your internal links deliberately, so each location page is linked from content about that area rather than from a generic footer list. And accept that in a dense metro, one flagship location will carry the brand term while the others earn their traffic from neighborhood and service-specific searches.
If your locations are more than twenty minutes apart in normal traffic, most of this stops mattering. It is the two-branches-in-one-city case that hurts.
A worked version: a dental practice opens a second office four miles from the first. Both target the same city term, both pages read almost identically, and after six months the newer office ranks for nothing. Nothing is broken. The brand term resolves to the older, better-reviewed office every time, and the newer page offers Google no reason to prefer it for anything else. The fix was not more links. It was giving the second office the services the first one does not offer, naming the three neighborhoods it is genuinely closest to, and letting the first office keep the city term it had already won.
What goes on a location page that a city swap cannot fake
A useful location page is written by somebody who has been to the location. That is the whole test, and it is why these pages are hard to produce at scale.
Traditional shopfront with a painted sign and window displays on a quiet street.
Concretely, the things that cannot be templated: the staff who work there, by name, with photos taken at that address. The parking situation. Which services that branch actually offers, because it is rarely all of them. Hours that differ from the other branches, and why. The neighborhoods and suburbs this location genuinely serves, in the words locals use rather than the census names. Reviews from customers of that location. Directions from the landmark people actually navigate by.
Things that can be templated without harm: your service descriptions, your warranty terms, your booking form, your brand story, and your FAQ about the service itself.
| Page element | Shared across locations | Written per location |
|---|---|---|
| Service descriptions | Yes | Only where the branch differs |
| Staff names and photos | No | Yes, taken at that address |
| Hours and holiday closures | No | Yes |
| Parking and access notes | No | Yes |
| Areas served | No | Yes, in local wording |
| Reviews shown | No | Yes, that location's only |
| Booking form and terms | Yes | No |
| Brand story and credentials | Yes | No |
The ratio matters more than the total. A page that is 70 percent shared boilerplate and 30 percent genuinely local is fine. A page that is 95 percent shared with the city name find-and-replaced is a doorway page, and Google has a specific policy for those.
One shortcut that is not a shortcut: writing forty pages with an AI tool and varying the adjectives. It produces exactly the pattern the doorway policy describes, at speed.

Four warning signs that location pages are doorway pages: they survive a find-and-replace, nobody has visited the location, pages exist for cities with no business, and the set was generated at volume.
URL structure, and the decision that is hard to undo
Put every location on one website, in a folder, under a pattern you can still live with at triple the number of locations.

Three-column comparison of where to put location pages: folders on one domain, subdomains, or a separate site per location.
The structure that works: yourdomain.com/locations/city-name, or yourdomain.com/city-name/service if the service split matters more than the geography split. A parent /locations page lists them all and links to each one, which gives crawlers a clean path and gives customers something useful.
What to avoid: a separate website per location, which divides your authority into small pieces that each have to earn it from scratch. Subdomains have the same problem in a milder form. Both show up most often where a franchise or a partnership made it politically easier, and they cost real ranking ability.
The bit that is hard to undo is the pattern, not the platform. Changing from /locations/austin to /austin across thirty pages means thirty redirects, a temporary ranking dip, and a month of watching Search Console. Pick the pattern once, at the start, with the version of the business that has twice as many locations in mind.
Two-level structures earn their keep once you have several services in several cities: /locations/austin for the branch, /locations/austin/emergency-repair for the service in that city. Do not build that grid until real demand supports each cell, because an empty grid is the doorway pattern again.
NAP consistency stops being a task and becomes a process
Name, address and phone number consistency is trivial for one location and a genuine operational problem for fifteen.
Set up one spreadsheet as the source of truth before you touch any directory. Every location, with the exact string you intend to use everywhere: suite formatting, abbreviations, punctuation. Not "Ste 4" in one place and "Suite #4" in another. Then push that exact string out, and check it back rather than trusting that it took.
The failures that recur: a location moves and the old address survives in eleven directories. A tracking number replaces the real one on the profile, so the number on your site and the number on Google disagree. A closed branch keeps its listing and quietly competes with the branch that replaced it. Two profiles for one location, created three years apart by two different employees.
Audit quarterly. It takes an hour per location if you have the spreadsheet, and most of the hour is confirming nothing moved. Which directories deserve that hour, and which are noise you can skip entirely, is the subject of our citations guide.
Go looking for the listings you forgot you made
Every multi-location business over about five years old is carrying listings nobody remembers creating, and they are doing damage quietly.
Search your brand name plus each city in Google Maps and look at what comes back. Then search each old address, including any you have moved out of. Then search any former trading name. You are looking for three things: duplicate profiles for a location you already manage, live profiles for locations that have closed, and profiles created by a former employee on an account nobody can access now.

Four-step process for auditing forgotten business listings: search the brand plus each city, search every old address, search former trading names, then merge, close or reclaim.
Duplicates get merged or removed through the profile interface. Closed locations get marked permanently closed, which is important and widely skipped: deleting the profile loses the reviews and the history, and leaves the listing floating in other data sources anyway. Marking it closed keeps the record and stops it competing with the branch that replaced it.
The unreachable account is the painful one and the reason to do this early. Reclaiming a profile from an account nobody can log into is a verification process measured in weeks, and it is much easier to start before the location depends on it.
Reviews are per location, and so is the damage
Review counts do not pool. A brand with 900 reviews across nine locations competes with 100 reviews at each location, against local rivals who have 300 at their only location.
That reframes the goal. You are not trying to raise the company average, you are trying to get every location past the threshold where it looks credible next to whoever it is standing beside in the map pack. Which means your newest and smallest branch needs the most attention, not the least, and a brand-level review average hides exactly that.
Ask at the location, by the person who did the work, with a link that goes to that location's profile. Every centralized review request campaign we have seen underperforms the version where the technician asks before leaving. Respond to reviews as the location, mentioning something specific, because a chain of identical thank-you replies is visible to the next reader. We went through the mechanics in our post on getting more Google reviews.
Service area businesses have a different set of rules
If your team drives to customers and you have no storefront they visit, you are a service area business, and half the advice above changes.
Folded paper road maps spread across a desk.
You still get one profile per real location, meaning per office or depot where staff actually work, not per city you serve. Service areas are a setting inside the profile, not a reason for another profile. Listing twenty cities as service areas on one profile is legitimate. Creating twenty profiles for those cities is the thing that gets accounts suspended.
City pages are where service area businesses get into trouble, because the temptation is one page per city served, and the demand rarely supports it. Build a city page when you can answer yes to all three: people search for your service with that city name, you have done real jobs there you can reference, and you can say something about working in that city that is not true of the next one. Otherwise, one strong page for the service and a list of areas covered does more.
Schema, briefly, because it is oversold
Add LocalBusiness structured data to each location page with that location's exact name, address, phone, hours and geo coordinates. Use the most specific type that fits, and follow Google's LocalBusiness documentation rather than a generator's defaults.
That is the whole job. Schema helps machines read what is already on the page. It does not create eligibility, it does not rank a thin page, and no amount of nesting fixes a location page with nothing on it. Get the page right, then mark it up.
The one schema detail worth care at multi-location scale: each page's markup has to describe that location only. Copying the head office's address into every location page's schema is a common and quietly damaging mistake, because you are telling machines that all fifteen branches are at one address.
One person owns location data, or nobody does
The operational failure mode at scale has nothing to do with search. It is that four people can change a location's hours and none of them tells the person who maintains the listings.
Name an owner. One person, or one role, responsible for the source-of-truth spreadsheet and for pushing changes out. Then make the path to them obvious: a branch manager who changes holiday hours needs somewhere to send that, and if the only route is remembering to email marketing, the data will drift within a quarter.
The counterweight, and the reason pure centralization fails too, is that head office does not know which three suburbs a branch actually gets calls from. Centralize the fields that must be identical everywhere, which is name, address, phone and category. Let the location contribute the fields only they know, which is areas served, staff, photos, and what makes that branch different. Brands that lock everything centrally end up with fifteen accurate, interchangeable listings and no local relevance at all.
What multi-location looks like in AI answers
Assistants answering local questions are not running your map pack query. They are assembling an answer from a handful of sources, and a multi-location business is easy to get wrong.
The failure is specific: an assistant asked for your service in a city returns the flagship location's address for a query about a different branch, or returns a phone number from a directory that is two moves out of date. Both come from the same root cause as the ranking problems above, which is inconsistent data and undifferentiated pages, and both are fixed by the same work.
Two things help disproportionately here. Put the address, hours and service area of each location in plain text on its page rather than only in an image or a map embed, because plain text is what gets extracted. And answer the obvious questions on the page in a form that can be quoted: which branch is open Sunday, which one does emergency call-outs, which one is closest to the airport. That is the same answer-first structure we use everywhere, applied per location, and it is the part of AEO work that overlaps most with ordinary local SEO.
Measure per location or do not bother measuring
Report at brand level and you will find out about a failing location from the manager, six months late.

Four cards listing the metrics to report for every location: calls and form fills, map pack position, reviews per profile, and share of brand total.
This is the part of agency reporting I would change first if I could change one thing. Impressions and sessions for the whole domain are the easiest chart to produce and the least useful to act on. Our own local clients are measured in calls per location, which is why a result we quote reads as 90+ monthly phone calls for a real estate office in seven months rather than a traffic percentage. A location manager can act on calls. Nobody has ever acted on a sessions graph.
What to track per location: calls and form submissions, map pack position for the three terms that matter there, direction requests, review count and average, and the share of your total that this location contributes month to month. That last one is the early warning. A location whose share of brand total is sliding is failing while the brand chart still points up.
When a second location does not deserve a page
Sometimes the honest answer is that you have one business with a second address, not two locations.
If the second address has no staff, no signage, and no customers visiting it, it is not a location Google wants a profile for, and a page about it will not rank because there is nothing to say. A virtual office, a co-working desk, and a friend's spare unit are the three versions of this that get businesses suspended.
If the second location genuinely exists but is three miles from the first, consider whether it needs its own page at all, or whether it is better as a section on the first page. Two thin pages competing with each other beat one strong page in exactly no cases.
And if you are a single-location business reading this to plan ahead, the answer is not to build the structure yet. Build it when the second lease is signed. Empty location pages waiting for a location are the clearest doorway signal there is.
FAQs
Should each location have its own website?
No. Use one website with a folder per location, such as yourdomain.com/locations/city-name. Separate sites split your authority into pieces that each have to earn rankings from scratch, and they multiply the maintenance. One domain with well-differentiated location pages outranks a collection of small sites in almost every case.
Can I create multiple Google Business Profiles for one address?
Generally no. Google's guidelines allow one profile per location, with narrow exceptions for public-facing departments with separate entrances and distinct categories, for individual practitioners who can be contacted directly, and for genuinely separate co-located businesses. Creating extra profiles for the same location risks both being removed.
How many location pages is too many?
The limit is set by what you can make genuinely different, not by a number. If you cannot write a page about a city that would be wrong if you pasted it under the next city's name, that page should not exist. Most service area businesses can support far fewer city pages than they build.
Why does only one of my locations show in the map pack?
Google filters results so one brand does not take several slots for the same search. When two of your locations are both plausible answers, one is shown and the other is filtered. It is a proximity outcome rather than a ranking fault, and it mostly affects locations in the same city.
Do reviews from one location help my other locations?
Not directly. Reviews attach to the profile they were left on, so each location competes on its own count and rating against the businesses nearest it. A high brand average is no help to a new branch with eleven reviews sitting next to a rival with three hundred.
What is the fastest fix for a multi-location business that has done nothing?
Claim and complete every profile, get the categories right, and make sure the name, address and phone number match exactly everywhere. That is a week of work and it moves more than anything else on this list. Content differentiation is the bigger job and the one that compounds, so start it second, not first.
Do I need separate phone numbers for each location?
Yes, a unique local number per location is worth having. It is a consistency signal, it routes customers correctly, and it lets you measure calls per location, which is the metric that tells you which branch is actually working. If you use call tracking, make sure the tracked number and the real number are handled the way your listings tool recommends so the two never disagree.
The order that saves you a rebuild
Profiles first, because they are quick and they are the map pack. URL structure second, because it is the decision you cannot cheaply reverse. Location page content third, because it is the slow one. Citations and reviews run continuously after that, and per-location reporting starts on day one so you can see which branch is drifting.
Do it in that order and a fifteen-location rollout is a quarter of work. Do it backwards, and you will rebuild the URLs after the content is written, which is how these projects end up taking a year. If you want the structure reviewed before you commit to it, that is the sort of thing our SEO work front-loads. Tell us how many locations and where they are, and we will tell you which of the three problems above you actually have.