Local SEO

Local SEO Services: Map Pack, Business Profile and Location Pages

Map pack visibility is won on a different set of inputs than organic rankings: profile configuration, address data that agrees with itself, a real page per branch, and reviews that arrive steadily. This is how seothumb.com runs local SEO and multi-location SEO, from a single storefront to a sixty-branch estate.

  • Geo-grid tracking

    Per location, not one citywide rank

  • One page per address

    Location pages, never a single list

  • 12-page technical audit

    Free, delivered in 5 business days

Customer paying at the counter of a local business found through Google Maps search

Primary category is the single biggest lever in local SEO

Almost everything else on a Google Business Profile is downstream of one field. The primary category decides which query sets the profile is eligible to appear in at all. Secondary categories add eligibility at lower weight, and attributes, services and products refine relevance inside those sets. A practice listed with Dentist as primary and Cosmetic Dentist as secondary competes for a different query set than the same practice with those two reversed, in the same building, with the same reviews.

So category selection is a research task, not a dropdown pick. We pull the primary and secondary categories of every profile currently holding the map pack for the queries that matter, per location, and look at what the winners have in common rather than at what a category name sounds like. Google's category list also changes without notice, so a set that was correct two years ago may include a category that no longer exists.

Attributes are the quieter second layer: accessibility, payment types, service options such as curbside pickup or online estimates, identity attributes, and the services list, which on many categories accepts free-text entries that can be matched to how people actually search. We fill these out completely, because an empty attribute behaves like a filter that excludes you the moment a searcher narrows results.

Category changes are made one at a time with dated notes, so movement on the grid can be attributed to the change that caused it rather than to the month it happened in.

Citation cleanup and NAP consistency across the data supply chain

Listing data does not live only where you typed it. It propagates through aggregators and vertical directories, and retired records resurface long after the source was corrected. A suite number dropped by one aggregator, a phone number from a previous office, an old legal name on a chamber listing: each is a small contradiction, and contradictions make an entity harder to resolve confidently.

We work cleanup in supply-chain order rather than alphabetically. The Business Profile first, then the primary data aggregators that feed everything downstream, then the mapping and vertical platforms that matter for the category, then geo and niche directories. Duplicates are merged or suppressed rather than edited, because an edited duplicate is still a duplicate competing with the profile you want to rank.

Format is decided once and then enforced everywhere: one canonical spelling of the street line, one suite format, one decision on legal versus trading name, one phone number. Call tracking is compatible with this when it is done correctly, with the tracked number in the secondary phone field and the canonical number left primary, and incompatible when tracked numbers are sprayed across citations.

Citations point at the specific branch page rather than the homepage, so the listing, the profile and the page all describe one address. The listing inventory comes out of the same discovery pass as the technical SEO audit, and Google's SEO starter guide makes the same argument for unambiguous business information.

One location page per address, not a single list of locations

A single locations page listing twelve branches gives Google one URL to satisfy twelve different local intents. One page per address gives each branch a URL that holds its own title, its own markup, its own internal links and its own row in Search Console. That last point carries more weight than it sounds: with one page per address you can filter performance by page and see which branch is winning, which is the only way to run multi-location SEO as a managed portfolio rather than as one blended average.

The failure mode is template fill. If the only difference between two location pages is a city name in five slots, they are duplicates with a variable in them and they compete with each other. A location page earns its URL when it carries things that are true only of that address:

  • Parking, transit, entrance and access details a customer needs to actually arrive
  • The services genuinely offered at that branch, not the corporate list
  • Hours including holiday exceptions, plus the departments or counters inside
  • Photographs taken at that location, not stock and not another branch's
  • Reviews and worked examples from that branch
  • Internal links out to the matching service pages and back again

URL pattern, breadcrumbs and the internal linking model are set before a word is written, because retrofitting architecture later means redirecting every page. Google's guidance on helpful, people-first content is the standard each page is held to.

LocalBusiness markup that matches the profile it describes

Structured data does not create rankings. It removes ambiguity. On a location page it states in machine-readable form that this URL is about this business, at this address, with these hours, this phone number and this geo point.

It ships as JSON-LD, the format Google documents for structured data, and we pick the narrowest correct type rather than defaulting to LocalBusiness for everything: Dentist, AutoRepair, HomeAndConstructionBusiness, FinancialService. A narrower type exposes more specific properties and leaves less to inference.

What a location page typically carries:

  • @id as a stable entity identifier, so the location can be referenced from other markup on the site
  • address, geo, telephone and openingHoursSpecification, including holiday exceptions and split shifts
  • areaServed for the territory actually covered, and hasMap pointing at the profile's map URL
  • sameAs pointing at the Business Profile and the branch's own social accounts
  • Service entries built on schema.org/Service for what is sold at that address

Two rules do not bend. The markup says what the visible page says, and where hours differ between the two it is the markup that is wrong, not the page. And review markup is added only where Google's rules permit it, since self-serving review snippets on a business's own page are not eligible for rich results and are not worth the exposure. Google's LocalBusiness reference sets out the required and recommended properties.

Review generation as a workflow the front desk can run

Review acquisition fails when it belongs to nobody. It works when it is a short, repeatable step attached to a moment that already exists in the day: the handover, the invoice, the discharge, the collection.

What gets built is the workflow, not a plugin:

  • A named owner per location and a daily target small enough to be real
  • A scripted verbal ask, timed to the point of service, that names the platform
  • A short link and QR code per location, resolving to that location's review form
  • A follow-up message sent hours later rather than days later
  • A response policy: every review answered, negatives answered within one business day by someone with the authority to fix the underlying problem

Two constraints are not negotiable. Google prohibits review gating, so there is no survey that screens sentiment first and forwards only the happy customers. That includes any flow routing a low score to a private form and a high score to the profile. And reviews may not be incentivized: no discount, no prize draw, no per-five-star staff bonus.

Review text is also treated as a query source. The words customers use to describe what they bought are the words worth testing in the services list, the attributes and the on-page copy, and they are one of the few inputs to a content strategy that come from customers rather than from a keyword tool.

Geo-grid tracking, not one citywide rank

Map pack results move with the searcher's location. Two people on opposite sides of the same city, typing the same query at the same second, can see different three-packs. A single citywide rank collapses that variation into one number that is accurate nowhere in particular, and it is the reason local reporting so often disagrees with what the phones are doing.

Positions are tracked on a grid instead: points laid out at fixed intervals around each location, queried individually, rendered as a heat map. A 7x7 grid at half-mile spacing tells you what a single rank cannot, such as that you hold the pack within a mile and vanish at two, or that you are strong north of the pin and absent to the south where a competitor sits.

The shape is diagnostic. Tight, symmetric weakness around the pin usually points at relevance: category, services, on-page. Weakness on one side usually points at a competitor with stronger prominence in that direction, which is where digital PR and link acquisition contributes to local visibility as much as to organic. Flat weakness across the entire grid points at the profile itself: suspension, a category mismatch, a duplicate absorbing the signals.

Grids run per location and per priority query on a fixed cadence, so a category change or a rewrite from the on-page SEO track can be judged before and after. Share of local voice across the grid is the headline metric, reported next to calls, direction requests and branch-level clicks.

Service-area businesses, storefronts and per-branch reporting

The rules differ by business type, and getting this wrong is a common cause of a suspended profile.

A storefront profile requires premises staffed during the stated hours where customers are served. A service-area business, such as a plumber, a mobile repair operation or a home services crew, serves customers at their address, hides the street address and defines service areas by city, postal code or region. What is not permitted: a virtual office, a mailbox, a coworking desk or a relative's house used to plant a pin in a city you want to rank in. Those get caught, and reinstatement costs more time than the position was worth. Hybrid cases exist, such as a workshop customers can visit plus a mobile crew, and those keep the address visible and add service areas on top.

Which model each location runs under is documented before anything is touched, because the model decides what the location page can honestly claim and what the profile is allowed to say.

Reporting rolls up per branch first and to a total second. Each location gets its own row: grid share of local voice, profile impressions split into discovery and direct, calls, direction requests, website clicks, and organic performance for its own URL from Search Console. Those feed a Looker Studio dashboard, with BigQuery behind it once the location count makes exports unmanageable. The regional total sits on top, but the branch rows are where decisions get made and where next month's retainer hours get pointed.

FAQ

Questions about local seo

  • What access do you need to our Google Business Profiles?

    Manager access on each profile, or on the profile group where locations are managed in bulk, plus Search Console, GA4 and CMS access to publish location pages. Manager rights are enough to edit categories, attributes, hours and services and to respond to reviews. Ownership stays with you throughout, and access can be revoked at any time without affecting the listings themselves.

  • Can a suspended or duplicated profile be fixed?

    Yes, as remediation work. That means identifying the likely trigger, usually the address model, a category mismatch, name stuffing or a bulk edit, correcting it, assembling the evidence Google asks for and filing the appeal. Duplicates are merged rather than deleted where merging preserves the reviews. Reinstatement timelines are set by Google, and no outcome is guaranteed, as our disclaimer states.

  • Does this work for a single location?

    Single locations too. The work is the same in kind, category and attribute selection, citation consistency, one strong location page, reviews and grid tracking, and smaller in volume, which usually places it in the Foundation tier on our pricing page. Multi-location adds what only exists at scale: bulk profile management, duplicate control across branches, and reporting split per branch.

  • How is it measured when conversions are calls and walk-ins?

    Profile calls and direction requests are counted directly from Business Profile data for each location. Website calls are tracked using a number placed in the secondary phone field, so the canonical number stays consistent across citations. Walk-in influence is modeled from direction requests and branch-level bookings, with the assumptions written down and agreed before they ever appear in a report.

Next step

Start with the audit, then take the map pack

Send your domain and the addresses you trade from. You get a 12-page technical SEO audit back inside five business days, free, with no call required, and where addresses are in play the local checks go into the same document. If the work fits, retainers run from $2,400 a month, flat and scoped in advance, with the first 90 days committed and month-to-month after that. [Get in touch](/contact) or [see the pricing tiers](/pricing).

Get my free technical SEO audit

Five business day turnaround. No call required to receive it.