
There are two ways a business with more than one address usually gets local SEO wrong. Either it has one contact page listing every branch, so no single branch ranks anywhere, or it has fifty location pages that are the same page with the town name swapped in, which is the exact pattern Google's doorway policy was written for.
The fix sits in between, and it has changed shape since 2025 because Google's AI answers now read your Business Profile before they look at your site. This is how we set up local SEO for multiple locations today, whether that is a hotel group with four properties, a dental chain with eight clinics, or an estate agency with a branch in every district.

One Business Profile per location, where the rules allow one
Google's rule is one profile per physical location where customers can visit or be served during stated hours, and more than one for the same place is a suspension risk (Business Profile guidelines). Three edge cases catch multi-location businesses.
Service-area businesses. A plumbing firm working out of one depot and covering five towns gets one profile with service areas attached, not five profiles. Google asks that the overall area stays within about two hours' driving time of the base, and that you hide the address if nobody visits it.
Practitioners. Doctors, dentists, lawyers and estate agents who deal with the public directly and can be reached at the verified address during opening hours may have their own profile alongside the practice profile, named for the person. Where a practitioner is the only one at a branded location, the format is "[brand]: [practitioner name]". Our local dentist SEO guide covers the clinic version.
Departments. A department qualifies for its own profile only if it operates as a distinct entity with a separate customer entrance and a different category from the main business. A hotel restaurant with its own street door qualifies; a dealership's oil change service does not.
On categories, the guideline is to use as few as possible to describe what the business is, not what it sells. Pick the most specific primary category per branch and let it differ where the branches differ. Primary category was the single highest-scored Local Pack factor in Whitespark's 2026 Local Search Ranking Factors, and we wrote up how category choice moves local rankings separately.
One operational rule: each profile's website field points to that branch's location page, never the homepage. That is how Google ties profile to page and how you attribute traffic later.
Location pages that are not doorway pages
Google's spam policies define doorway abuse as pages "created to rank for specific, similar search queries" that funnel users to the same destination, with "multiple domain names or pages targeted at specific regions or cities" as the first example (Google spam policies). The problem is not having a page per city. The problem is pages per city that are interchangeable and lead nowhere different.
A location page stops being a doorway when it is the page a customer would want to land on for that branch. Every page needs material that is true only for that branch.
| Element | Why it makes the page unique |
|---|---|
| Full address, local phone number, opening hours | Matches the Business Profile and anchors the page to a real place |
| Map, directions, parking and transit notes | Cannot be copied from another branch |
| Services offered at this branch, with prices where you publish them | Branches rarely offer identical services; say so |
| Team photos and named staff | Ties back to the practitioner rules above |
| Reviews from this branch's customers, with the branch's own rating | Do not pool brand-wide reviews and reprint them everywhere |
| Two or three local FAQs (nearest hospital, languages spoken, late opening days) | Feeds the conversational queries AI answers pick up |
Templated sections are fine when the branch-specific layer sits above them. The test we use is to strip out every line that would still be true on another branch's page. If what is left is the city name, you have a doorway page, and if you publish dozens of them at once you also run into the scaled content abuse policy on the same page. Generate the skeleton from a template; have someone who has been to the branch write the unique layer.
Hub-and-spoke URL structure
Keep every location under one hub and keep the hub crawlable.
/locations/ hub: every branch listed, linked, on a map
/locations/limassol/ one branch
/locations/limassol/implants/ optional: a branch-level service page
/services/implants/ the brand-level service page
The hub links to every spoke. Every spoke links back to the hub, up to the brand-level service pages, and sideways to the nearest two or three branches. The brand-level service page links down to every branch offering that service. That gives each branch page link equity, ties the pages to one entity, and stops branch pages competing with the national service page.
Only build branch-level service pages where the branch has something distinct to say (a different team, equipment or price). Do not create pages for towns where you have no address and no service area. If a branch closes, 301 its page to the nearest open branch, and mark the profile permanently closed rather than deleting it.
Which architecture fits which business
| Single page listing all locations | One page per branch | Full site section per location | |
|---|---|---|---|
| Best for | 2 to 3 locations in one city, or where the branch does not change the offer | Most multi-location businesses, from 3 branches to a few hundred | Franchises where each unit has its own management, offers and reviews; multi-country brands |
| What ranks | Brand name, plus the city the homepage already targets | Each branch for "[service] [town]" and "near me" queries in its area | Each unit as effectively its own local site, including branch-level service pages |
| Doorway risk | None | Real if pages are templated with no unique layer | Low if genuinely maintained, high if it is a copied template |
| Maintenance | Trivial | One page per branch to keep accurate | Needs a content owner per unit |
| Schema | Usually one Organization | One LocalBusiness subtype per page | One LocalBusiness subtype per page plus Service and FAQ items |
| Tracking | Cannot separate branches | Per page in GA4, per profile in GBP | Per section, rolls up by region or country |
We push most clients to the middle column. The right-hand column is for organisations that will resource it; 200 sections head office never touches again are worse than 200 tidy single pages.
LocalBusiness schema per location, with the right subtype
Each location page gets its own LocalBusiness item using the most specific subtype that fits: Dentist, Hotel, RealEstateAgent, Restaurant, InsuranceAgency. Google's LocalBusiness structured data documentation asks for each location to be marked up as its own LocalBusiness, recommends address, telephone, geo, url, openingHoursSpecification and priceRange, and supports a department property for a hotel restaurant or an in-store pharmacy with its own hours.
The mistakes we see most on multi-location sites:
- Every page carries the head office address because the markup lives in the site template.
- The
namehas the city stuffed in ("Brand Dental Limassol Implants") when the real-world name is "Brand Dental". aggregateRatingis the brand-wide figure copied onto every branch. Use the branch's own reviews or leave it out.
Set url to the location page itself and reference the parent Organization via parentOrganization. Our schema markup generator produces the LocalBusiness subtypes with location fields if you would rather not write JSON-LD by hand.
NAP and citations: what still matters, what is a waste
Consistency matters in a narrow sense: the name, address and phone number on the page, in the schema, on the profile and in the handful of directories your market actually uses should match. Fix old listings still carrying a closed address or a legacy number.
What is a waste is the 2015 model of building 80 citations per branch on directories nobody visits. Citation signals sit near the bottom of the Local Pack weightings in the 2026 Whitespark report, and have been sliding for most of a decade. Multiply that by 40 branches and you have a line item that buys almost nothing.
The exceptions are Apple Maps, Bing Places and the dominant booking or review platform in your category (Tripadvisor and Booking for hotels, the medical directories for clinics, the portals for property). Those are where a customer or an AI assistant looks you up. Get every branch onto them accurately and stop there.
Reviews at scale, and why 2026 is the year to stop cutting corners
Review signals moved up again in the 2026 survey, and reviews are the part of the profile AI answers quote directly. The multi-location question is how to get them evenly and honestly across 30 branches without anyone doing something that gets the brand flagged.
The rules tightened in April 2026. Google's Maps content policy now prohibits "merchants requesting that staff solicit a certain number of reviews" and "merchants requesting that staff solicit reviews that include specific content, including content that identifies a staff member", alongside the existing bans on incentives, review gating and only asking happy customers (Maps user-contributed content policy). Staff review quotas, which most franchise incentive schemes quietly ran on, are now a written violation.
The enforcement side makes this a board-level issue. Google's documented restrictions for fake engagement are that a profile "will not be able to receive new reviews or ratings for set period of time", that existing reviews "will be unpublished for set period of time", and that the profile "will display a warning to let consumers know that fake reviews were removed" (Business Profile restrictions). A warning banner on one branch is a brand problem, not a branch problem.
What we set up instead:
- One review link per branch, sent by the same automated post-visit message everywhere. Same wording, no incentive, no filtering by satisfaction score.
- A branch-level dashboard showing rating, review count and days since last review, so head office can spot a quiet branch without handing anyone a number to hit.
- Owner responses written, or at least edited, by someone at the branch.
- A standing rule that nobody buys, trades, gates or writes reviews, in the franchise agreement if there is one.
Local links per market
Every branch is a local business with local relationships, and the mistake is one national PR campaign expected to lift 40 branch pages. Links to the homepage help the domain; they do not tell Google the Larnaca branch is prominent in Larnaca.
What works is repeatable per market: the chamber or business association page, the sports club or school the branch sponsors, supplier and partner sites that list stockists, local press when the branch opens or hires, and local "best of" lists. Expert-curated lists are also the top-scored AI visibility factor in the 2026 Whitespark survey, so they pay into two surfaces at once.
Point those links at the branch page, not the homepage. Our backlink building work for multi-location clients is scoped per market for this reason.
Tracking per location
GBP Performance reports calls, direction requests, website clicks, messages and bookings per profile, plus the search terms that triggered it (Business Profile performance help). Export it monthly per location so you hold a history you control.
GA4 needs the profile's website field to carry UTM parameters (utm_source=google&utm_medium=organic&utm_campaign=gbp&utm_content=limassol) so profile traffic separates from ordinary organic, and a location_id parameter on every branch page so roll-ups are trivial.
Calls are where it usually falls over. Give each branch page a tracking number that forwards to the real one, keep the real number on the Business Profile and in the schema, and fire a call_click event from the page.
One field warning. Sterling Sky's tracking found mobile AI local packs on around 8% of tracked keywords by early 2026, typically showing two businesses instead of three and dropping the call button, with calls falling for profiles that were still ranking (Search Engine Roundtable). If a branch's calls drop while rankings hold, check whether its core queries now trigger an AI pack before blaming the branch.
Franchises and multi-country brands
Franchise SEO adds an ownership problem. Decide in writing who owns each profile (franchisor as owner, franchisee as manager), who edits the location page, and what happens when a unit changes hands. Every franchise suspension we have untangled came from a franchisee creating a second profile or adding a keyword to the name.
For brands in more than one country, location pages sit inside the country structure, not the other way round. Google's guidance is to mark up every language or region variant with hreflang, to make the annotations bidirectional (if page X references page Y, Y must reference X, or Google may ignore them), and to use x-default for the fallback (Google Search Central). Use language-region codes (en-gb, el-cy, en-cy) where one language serves two markets.
/en-cy/locations/limassol/ hreflang en-cy
/el-cy/locations/lemesos/ hreflang el-cy
/en-gb/locations/manchester/ hreflang en-gb
Limassol and Lemesos point at each other. Manchester does not reference them, because it is a different place, not a translation. Hreflang connects versions of the same page, not branches. Our international SEO team handles the country layer.
How AI Overviews and AI Mode answer local queries
The 2026 change that matters most is where the answer comes from. A Steady Demand study of 14,472 citations across 1,487 local queries in August 2026 found nearly 60% of Gemini's local citations pointed at business websites, with Reddit taking 13.7% and out-citing every directory combined. Identical queries produced overlapping sources only about 40% of the time, so a single AI answer is a snapshot, not a ranking.
The rating, hours and summary sentence in those answers come from the Business Profile, review platforms and, increasingly, licensed data. We covered why AI local answers run on licensed platform data rather than crawled websites, which means the branch record on Tripadvisor, the medical directories or the property portals has to be right as well.
For a multi-location brand that means every branch profile is complete and current, because it is what gets summarised, and every branch keeps a steady flow of recent reviews, because old ones get quoted too.
We went deeper on how "near me" behaviour is shifting in local SEO in 2026 and AI search: fewer slots, more weight on the profile and reviews, and no tolerance for a branch page that says nothing specific.
Where to start with twenty branches and no plan
Audit the profiles first: duplicates, wrong categories, head-office addresses on branch listings, website fields pointing at the homepage. That is a week of work and moves rankings faster than anything on the site. Then build the hub, rewrite the ten worst location pages with a real unique layer, add per-page schema and tracking, and only then scale the template. Reviews and local links run monthly per branch, not as a campaign.
If you want a second opinion on how your location pages and profiles measure up against the rules above, our local SEO service is built around this kind of multi-location work, and a free SEO review is the easiest way to get the audit started.





