You have six locations, Kingwood to Katy. You search your own brand from the parking lot of the Cypress store and Google shows you the Tomball one. One profile still lists a suite you moved out of two years ago. Another sends calls to a corporate line that rings out after 5 p.m.
Most multi-location local SEO work starts with a mess like that. Every real location needs its own verified Google Business Profile and its own page on your site. Name, address and phone should match everywhere. Add schema per page, handle reviews store by store, and track which location the calls came from.
Google ranks each location on its own. A strong brand doesn’t carry a neglected listing.
This is for owners running 2 to 50 locations around Greater Houston: franchisees, regional chains, multi-office practices, home service companies with shops in Conroe and Pearland. It’s the order we work in, and you can do most of it without us.
How does local SEO work when you have multiple locations?
Google’s own explanation of local ranking names three factors: relevance, distance and prominence. The second one is the reason a chain can’t treat local SEO as a brand-level project. Distance is measured from the person searching to each individual location. Your Katy store has no chance in a Kingwood search, and it shouldn’t.
What you actually have is six (or twenty) small local SEO programs sharing a brand and a website. The Sugar Land store might face two national chains; the Magnolia store might face one guy with 400 reviews who has owned that market since 2009.
It’s also why chains often lose to single-location shops. The independent in Spring has one owner answering every review; the chain has a profile nobody at corporate looks at. Prominence is earned per location, and only real, staffed locations qualify for a profile at all. For how a single profile climbs, see how to rank in the Google map pack in Houston.
Google Business Profile for multiple locations: groups, bulk verification and store codes
Business groups
Google’s business groups let you add owners or managers to a whole set of profiles at once (the option appears at two or more). Anyone added gets every current and future profile in the group, which is convenient until your Katy manager can edit the Pearland hours. We split groups by region or franchisee, and since each group needs its own bulk spreadsheet, plan that split before uploading anything.
Bulk verification (10 or more locations)
Under Google’s bulk verification rules, you can request chain verification once your account holds 10 or more eligible profiles for the same business. Duplicates and suspended profiles don’t count toward the 10. You do it in Business Profile Manager on a computer: Verifications, then Chain, then Start, and fill in the form. A few details catch people:
- Service-area businesses aren’t eligible.
- Agencies holding several different businesses in one account can’t bulk verify; the brand does it from its own account.
- Google may still ask for video verification at a location.
- No timeline is given. Don’t schedule a grand opening around it.
Under 10 locations, you verify one at a time. It’s tedious work, though none of it is hard. Our video verification walkthrough covers the tricky part.
Store codes
Every location in a bulk spreadsheet needs a unique store code. Google’s store code help page says any identifier works as long as it never changes for that location: “HOU-KATY-01” or just “114”. The warning on that page is worth reading twice. If you add or change a store code on an existing location through a spreadsheet upload, Google creates a duplicate location. Change codes in Business Profile Manager under Advanced settings, and use spreadsheets only for new locations.
Names and categories
Google’s guidelines for representing your business require all locations in the same country to use the same name, unless a location consistently uses a different name on its signage and website. Store codes and city names don’t belong in the business name; Google’s own example says “The UPS Store - 2872” is not acceptable. Adding “Katy” to the name because it might help rankings is a common route to a suspension. All locations should also share the one primary category that best fits the business.
Practitioners, departments and shared addresses
Practitioners (doctors, dentists, lawyers, agents) can have their own profiles if they’re public-facing and reachable at the location. Support staff can’t, and one practitioner shouldn’t have a profile per specialty. Departments that operate as distinct public entities, like a dealership’s service center, can get their own profile and hours; a counter inside a bigger store doesn’t qualify.
Otherwise it’s one profile per location. Two brands under one roof get separate profiles only if they operate independently.
Keeping NAP consistent across every location
NAP is name, address, phone. With 15 locations, the problems are rarely in Google. They live in the Yelp listing a former manager claimed, or the Apple Maps pin still sitting on the old strip center on FM 1960.
Build one master location record and update everything from it. Never the other way around.
| Field | Example | Rule we follow |
|---|---|---|
| Store code | HOU-SPR-03 | Never changes, even if the store moves down the street |
| Business name | Brand name only | Identical at every location, no city or keywords added |
| Address | Street, suite, city, ZIP | Written the same way everywhere (pick “Suite” or “Ste” once) |
| Primary phone | Local number for that store | Rings at that location, not a central line, during business hours |
| Website URL | /locations/spring/ | That location’s page, never the homepage |
| Hours and holiday hours | Mon to Sat 8 to 6 | Updated before every holiday and every hurricane closure |
| Primary category | Same for all | Matches the brand; secondary categories can vary by what the store offers |
Check, roughly in order: Business Profile, your location pages, Apple Business Connect, Bing Places, Facebook, Yelp, and your industry’s big directory (Healthgrades, Avvo, Houzz). We skip 80-directory syndication packages for most clients. The first eight or ten listings do nearly all the work; the rest mostly generate invoices.
On call tracking, the usual practice is a tracking number per store as the profile’s primary phone, with the real local number kept as an additional phone. Never a different tracking number on every directory; that’s 40 numbers for one store and a confused Google.
When a store closes, mark it permanently closed instead of deleting it. When one moves, read changing a business address without a suspension first. Moves are the most common way we see chain profiles get flagged.
Location pages SEO: one page per profile, without building doorway pages
Every Business Profile should link to its own page on your site, not the homepage or a bare store locator.
The risk is the shortcut. Google’s spam policies list “having multiple domain names or pages targeted at specific regions or cities that funnel users to one page” and “creating substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy” as doorway abuse. Twelve location pages where only the city name changes is that, more or less word for word.
A location page earns its keep with boring, specific details that only someone who works there would know.
- The manager and staff, with real photos and a sentence each.
- Directions that help: which side of the road, where to park, “the turn-in off Kuykendahl comes up fast if you’re heading north.”
- Which services this store does and doesn’t offer. Chains almost always have some variation, and hiding it costs you angry reviews.
- Holiday hours, and what happens during a hurricane or freeze closure.
- Reviews and a few photos from this location, not a brand-wide carousel.
- A few FAQs this store actually gets (parking at Market Street on a Saturday is its own question).
Write them one at a time, with 20 minutes of input from each store manager. Slow going, and most competitors skip it.
City pages where you have no store are a separate question. A page or two for areas your Spring store genuinely serves can be legitimate. Forty pages for every suburb within 60 miles is a doorway problem waiting for a core update. More in the power of local landing pages.
LocalBusiness schema for each location (and where department and branchOf fit)
Schema won’t rank a weak location, but it removes ambiguity about which store is which. Google’s LocalBusiness structured data documentation says to define each location as its own LocalBusiness (name and address required). Put each block on that location’s page, not 15 blocks on the homepage, and include geo and opening hours.
| Property | What to put there | Multi-location note |
|---|---|---|
| @type | The most specific type that fits (Dentist, Plumber, Restaurant, AutoRepair) | Same type across locations unless a store is genuinely different |
| name, address, telephone | Exactly what’s in the master record | Must match the Business Profile character for character |
| url | The location page | The same URL the profile’s website link uses (minus UTM tags) |
| parentOrganization | Reference to the brand’s Organization @id | Ties every store to one brand entity |
| department | Nested LocalBusiness for distinct departments | Only for real departments, like a pharmacy or service center |
Older tutorials still use branchOf. According to schema.org, parentOrganization supersedes it. For departments, Google’s example pairs the store name with the department (“gMart” and “gMart Pharmacy”) unless the department has its own brand.
One expectation to reset: Google recommends aggregateRating only for sites that collect reviews about other businesses, so marking up your own testimonials won’t earn stars. Spot-check a few pages in the Rich Results Test after any template change, which is when markup quietly breaks.
Franchise local SEO: who should own the Google Business Profile?
This one causes real fights, usually when a franchisee sells and nobody can say who owns the profile with 600 reviews.
Your franchise agreement may already decide it, so read its marketing and digital assets sections first. The common models:
| Model | Who owns the profile | Works well when | Where it breaks |
|---|---|---|---|
| Brand controlled | Franchisor, franchisee has no access | Large systems with a central marketing team | Reviews go unanswered, photos are stock, local hours drift |
| Franchisee controlled | Each franchisee, brand has no access | Very small systems or loose licensing deals | Inconsistent names and categories, profiles lost when owners exit |
| Hybrid (our usual pick) | Brand is owner; franchisee is manager | Most 2 to 50 location systems | Needs a written rule on who edits what |
In the hybrid model the brand controls what should be identical (name, primary category, website URL) and the franchisee handles what only they do well: review replies, real photos, hours. One wrinkle catches people. When a business group bulk verifies through its main owner, Google says no one else can own those profiles, so if the brand bulk verifies, franchisees become managers by design. Decide that on purpose.
Then there’s the franchisee who builds a separate territory website (sometimes with a nephew’s help) that competes with the brand’s location page. Let franchisees add local content to their page on the main site and most will happily drop it.
Review management at scale: asking and replying per location
One store has 900 reviews and a manager who replies to every one. The store 20 minutes away has 41, and the last reply is from 2022. Customers notice, and so does the map pack.
Start with what you can’t do. Google’s fake engagement policy bans discouraging negative reviews, selectively asking only happy customers, incentives, and pressuring people while they’re still on the premises. A “rate us 1 to 5, and fives go to Google” flow is selective solicitation, and we see it in franchise review software all the time. (The FTC has rules too; see the fake reviews rule.)
At scale, this is the routine we set up:
- Give every location its own review link and QR code from its own profile. Brand-wide links that land on the wrong store are common.
- Ask every customer the same way, at the same moment. A text after the job beats a card at the counter.
- Local managers reply within two business days. Corporate takes legal threats, injuries and press.
- Mention something real from the review. Thirty stores posting “Thanks for your feedback!” reads as nobody listening.
- Track monthly per store: new reviews, rating, reply rate, oldest unanswered review.
Per Google’s review reply help page, replies are checked before they appear (usually within 10 minutes, sometimes up to 30 days) and show as the business, not the person. Basics on getting reviews are in our complete guide to Google reviews.
Tracking each location: UTM tags, calls and Business Profile performance
Most chains we audit know total leads and nothing about which store produced them.
Start with UTM tags on every profile’s website link. Without them, profile clicks blend into organic search in Google Analytics. Tag each profile’s link with something like ?utm_source=google&utm_medium=organic&utm_campaign=gbp&utm_content=spring. Google’s Google Analytics UTM help recommends always including source, medium and campaign, and warns that values are case-sensitive: “Spring” and “spring” become two rows in your report. Pick lowercase and stick to it. In GA4, the Traffic acquisition report then splits profile traffic by store.
Calls come next. For most local businesses the call is the conversion that matters, and a tracking number per store shows which location’s calls are growing.
Each profile also reports its own calls, direction requests and clicks. Pair that with a grid rank tracker, because rankings around Hughes Landing can look nothing like rankings near Waterway Square.
Keep one sheet, a row per location, refreshed monthly. Within a quarter the weak stores stand out, usually for a fixable reason like a missing location page or a manager who never asks for reviews.
Google Ads location assets for multi-location businesses
Link your Business Profiles to Google Ads and you get location assets: the nearest store’s address, distance and call button alongside your ads. The data comes from Business Profile and Maps, so a wrong profile address becomes a wrong ad address.
Set it up in Tools, Shared library, Location manager. For chains:
- Location groups let each campaign use only the stores it’s about.
- Campaign-level settings override account-level ones, so remove the broad account-level asset if you manage locations per campaign.
- Video ads show locations by default unless you opt out.
- Removing all locations also removes location-based targeting, bidding and store visit tracking. Don’t switch it off to tidy up.
Match targeting to each store’s real trade area. A Conroe campaign that also targets The Woodlands competes with your own Woodlands store. We set a radius per store and add negative locations where stores sit close together; our Google Ads management for chains usually starts with that cleanup.
A multi-location local SEO audit you can run this week
Score each location 0 to 2 per line, one column per store. Anything under 11 out of 18 gets your time first.
| Check | 0 points | 2 points |
|---|---|---|
| Profile verified and owned by the brand account | Unverified or owned by an ex-employee | Verified, in the right business group |
| Name and primary category | Keywords or city added, category differs | Brand name only, shared primary category |
| Website link | Points to homepage | Points to a tagged location page |
| Location page | City-swap template | Staff, directions, services, local FAQs |
| Schema on location page | None, or homepage only | LocalBusiness with parentOrganization |
| NAP on top directories | Two or more mismatches | All match the master record |
| Reviews in last 90 days | Fewer than 5 | Steady, at least weekly |
| Review replies | Unanswered reviews older than a month | Replies within a few days, specific |
| Tracking | No UTM, no call tracking | Both, reported monthly |
Can you do this in-house? Under five locations, with someone who has four hours a week, yes. Past ten, or once franchisees are involved, the job turns into governance (who owns what, who updates hours during a storm), and outside help tends to pay off there. It’s part of our SEO and web work, and we’ll say so if a store manager with a checklist would do the job.
If you also run Google or Meta ads across those stores, our free Ad Spend Leak Check is a 10-minute video showing where that budget leaks, overlapping store radiuses included, in your inbox within 48 hours. For the profile side, start with why your Business Profile is your number one asset, then score your weakest store.
Frequently asked questions
How do I manage Google Business Profiles for multiple locations?
Put every location in one Business Profile account, organized into business groups by brand or region, with a unique store code for each location. Keep the brand as owner and add local managers only to their own stores. Use a master spreadsheet for name, address, phone, hours and website link, and update profiles from it so details stay identical everywhere.
How many locations do you need for Google bulk verification?
Google's bulk verification requires 10 or more eligible profiles for the same business in one account. Duplicates, suspended and disabled profiles don't count. Service-area businesses aren't eligible, and agencies holding several different businesses in one account can't use it. With fewer than 10 locations, each profile is verified individually, sometimes by video.
Do I need a separate page on my website for each location?
Yes. Each Business Profile should link to its own location page, not the homepage. The page needs content specific to that store, such as staff, directions, parking, services offered, hours and local reviews. Pages that only swap the city name can look like doorway pages under Google's spam policies, so write each one individually.
Should a franchisee or the franchisor own the Google Business Profile?
Check your franchise agreement first. In most systems of 2 to 50 locations we prefer the brand as owner and the franchisee as manager. The brand protects the name, category and website link, while the franchisee replies to reviews, adds photos and keeps hours current. It also keeps the profile and its reviews with the location if a franchisee exits.
Can I add the city name to my business name on Google for each location?
Usually not. Google's guidelines require all locations in the same country to share one name, unless a store consistently uses a different name on its signage and website. Adding a city, store number or keywords to the name is not allowed and can lead to suspension. Put the city in your location page and categories instead.
