Local SEO and Google Business Profile
For a business that serves customers in a place, the map pack is usually worth more than every other search result combined. Three listings sit above the organic results, they occupy most of the screen on a phone, and the person looking at them has already decided to buy something. Ranking fourth is close to ranking nowhere.
Local ranking is also unusual in that most of it is not about your website. It is about a profile you do not own, on a platform whose ranking signals are partly outside your control, and the highest leverage work is frequently a twenty minute administrative task rather than a content project.
Ask these eight questions first
Do not start optimising until these are answered. Several of them change the whole approach, and one decides whether the work is possible at all.
1. What is the business name, exactly as it should appear everywhere?
2. Do customers come to you, do you travel to them, or both?
3. Where are you based, and which areas do you genuinely serve?
4. What are your top three services, in the words a customer would type?
5. Who has access to the Google Business Profile? You, or a former agency?
6. How many reviews do you have, and what is the rating?
7. When you search your main service, which three businesses come up?
8. What do you actually want more of? Calls, bookings, or one specific service?
Question 5 is load bearing and goes first in practice. Everything else depends on owner level access. A profile held by an agency that has stopped replying takes weeks to recover, and finding that out on day one rather than day thirty is worth more than any other answer here.
Questions 2 and 3 decide the address setting, which is one of the most commonly wrong things on a profile. A hidden address for a shopfront costs walk in traffic. A published home address for a mobile business is both a privacy problem and a ranking one.
Question 3 also sets up the honest conversation. Distance from the searcher is a hard ceiling nobody can engineer around. Get the real service area early, so you can say which suburbs are winnable and which need a different tactic, rather than discovering it in month three.
What actually moves local rankings
Three factors, in Google’s own framing, and they are not equally weighted for every query.
| Factor | What it means | How much control you have |
|---|---|---|
| Relevance | Does the profile match what was searched | High. Categories, services, description |
| Distance | How far the business is from the searcher | Almost none. This is the hard ceiling |
| Prominence | How well known and well reviewed the business is | Medium, and it compounds over years |
Distance is the constraint nobody can engineer around, and it is the first thing to be honest about. A business in one suburb will not consistently rank in the map pack for a suburb 20km away, no matter how good the profile is. Searchers in that suburb see businesses near them.
This changes what the work is. You are not trying to rank everywhere. You are trying to win every search within your genuine radius, and then to rank organically, outside the map pack, for the areas beyond it. Those are two different projects with two different sets of tactics, and conflating them is why local SEO campaigns disappoint.
Start with the profile, not the website
Almost every local business has more to gain from an hour on the Google Business Profile than from a month of content. Full detail in references/google-business-profile.md.
The order of leverage, highest first:
- The primary category. The single strongest relevance signal on the profile. “Electrician” and “Electrical supply store” rank for different things, and businesses frequently have the wrong one because they picked it once, quickly, years ago
- Claimed and verified, with no duplicate listings competing with each other
- Services and products listed individually. Each one is a relevance signal and each is a thing a person searches for
- Reviews, covered below. The compounding asset
- Hours, including holiday hours. Being open when a competitor is closed changes what is shown
- Photos, added regularly rather than once
- The description, which matters less than most people think
- Posts, which matter less still, though they occupy space on the listing
Service area versus address. A business customers visit shows an address. A business that travels to customers sets a service area and hides the address. Getting this wrong is common and it is consequential: a hidden address for a business people visit costs you walk in traffic, and a published home address for a mobile business is both a ranking problem and a privacy one.
Reviews are the compounding part
Reviews affect ranking, and they affect click through and conversion more than they affect ranking. A business ranking third with 180 reviews at 4.8 often takes more calls than the business ranking first with 20 at 4.9.
The mechanics that work, in references/reviews.md:
- Ask every satisfied customer, at the moment they are satisfied. Not in a monthly batch
- Make it one tap. A direct review link, in a text message, sent while you are still in the driveway
- Reply to all of them, including the good ones. Publicly, briefly, without a template
- Reply to bad ones calmly and once. The reply is written for the hundred people who will read it later, not for the reviewer
- Never buy reviews or incentivise them. Suspension risk aside, the pattern is detectable and the cost of losing the profile is the whole channel
A steady trickle beats a burst. Forty reviews arriving in one week looks exactly like what it is.
Then the website
The site’s job in local search is to support the profile and to rank organically for the areas the map pack will not give you.
- Name, address and phone identical everywhere, character for character. “St” in one place and “Street” in another is a real inconsistency
- One page per service, one page per genuine location. Not one page per suburb you would like to work in
- Embedded map, local schema, and the address in the footer
- Real content about the area. Jobs done there, photos, references to actual local landmarks and conditions
Do not build 200 suburb pages from a template. It is the oldest tactic in local SEO, it now reliably produces a site that ranks for nothing, and the cleanup is more work than the build. A page earns its place by containing something true and specific about that place.
Research
The connector gives direct access to local search data, which turns most of this from opinion into measurement.
dataforseo_create_serp_google_local_finder_task who ranks in the pack, and where
dataforseo_create_serp_google_maps_task map results for a query
dataforseo_get_business_data_google_my_business_info_task
dataforseo_get_business_data_google_reviews_task a competitor's review profile
dataforseo_get_kw_google_ads_kw_for_kw_live volume and CPC for local terms
Method in references/research.md. The most useful single exercise: run the target query from several coordinates across the service area and see how the pack changes. It converts the distance constraint from an abstraction into a map, and it tells you exactly where the business can and cannot win.
Where Search Console is connected, it will show which local queries already produce impressions. Terms with impressions and no clicks are usually a title and profile problem, not a ranking problem, and they are the cheapest wins available.
Measuring
| Metric | Where | Honest caveat |
|---|---|---|
| Calls, direction requests, website clicks | The profile’s own insights | The closest thing to a real outcome measure |
| Map pack position | A rank tracker with real coordinates | Position varies by metre. A single number is a simplification |
| Impressions and clicks by query | Search Console | Website only. It knows nothing about the profile |
| Reviews and rating over time | The profile | The leading indicator for everything else |
| Actual enquiries | The CRM or phone system | The only one that pays wages |
Track calls, not rankings. Rankings vary by the searcher’s exact location, their history and the time of day, so “we are number one” is a statement about one search from one place. Calls and direction requests are what the business actually gets.
Rules
- Fix the profile before touching the website. Better return, faster, for less work
- One profile per real location. Not one per service, not one per suburb, not one per staff member
- Consistency over cleverness. Identical business details everywhere beats any tactic on this page
- Photos regularly. A profile with photos from this month outperforms one with photos from 2021
- Answer the questions section. You can post and answer questions yourself, and most businesses leave it to strangers
- Check the profile monthly. Google accepts edits from the public, and categories, hours and even the phone number get changed by other people
What not to do
- Do not keyword stuff the business name. “Dave’s Plumbing Sydney Emergency 24/7” is a guideline violation, it is reportable by any competitor, and the penalty is losing the listing
- Do not create a listing at an address the business does not occupy. Virtual offices and a relative’s house are the classic version. Suspension risk, and the address is the one thing that gets verified
- Do not buy, swap or incentivise reviews
- Do not build templated suburb pages
- Do not promise map pack rankings outside the service radius. Distance is real, and a promise that ignores it is one you will have to explain later
- Do not let the listing go stale after the initial work. Local SEO is a maintenance activity, not a project with an end date
A copy ready audit is at assets/audit-checklist.md.
Reference files
Everything the skill tells your AI to read, exactly as it ships in the zip.
references/google-business-profile.md 5.8 KB
# The Google Business Profile
Ordered by leverage. The first three are worth more than everything below them combined.
## 1. Primary category
The strongest relevance signal on the profile, and the most commonly wrong.
Most businesses picked a category once, in a hurry, when they first claimed the listing, and have never revisited it. "Electrician", "Electrical installation service" and "Electrical supply store" compete for different queries, and a business in the wrong one is invisible for the searches it wants.
**How to choose it:** look at what the top three businesses in the pack for your main query are using. Their categories are visible on their listings. If all three use a category you do not, that is the finding.
**Secondary categories** are additive and cost nothing, but only add ones that are genuinely accurate. An inaccurate category dilutes relevance and is reportable.
**Changing the primary category can move rankings within days**, up or down. Change it deliberately, note the date, and watch. It is the fastest feedback loop in local SEO.
## 2. Claimed, verified, and not duplicated
- **Claimed and verified.** An unverified listing is editable by the public and ranks poorly
- **No duplicates.** Duplicate listings split reviews and signals and suppress each other. They usually come from a move, a name change, or someone creating a second listing without knowing the first existed. Search the business name and the phone number to find them, then request removal or a merge
- **Ownership held by the business, not by a former agency.** This is worth checking before anything else, because everything below depends on having access. Recovering a profile from an agency that has stopped replying is slow
## 3. Services, products and attributes
Every service listed individually is a relevance signal and a thing someone searches for. Most profiles list three and stop.
- **List every service you actually offer,** with a real description for each. Not one line
- **Products**, where the category supports them
- **Attributes.** Wheelchair accessible, women owned, appointment required, free estimates, emergency service. Some of these are filter options in search, so a missing attribute means being excluded from a filtered search entirely
## 4. Service area or address
| Situation | Setting |
|---|---|
| Customers come to you | Show the address |
| You travel to customers | Set a service area, hide the address |
| Both | Show the address and set a service area |
Getting this wrong is common and consequential. A hidden address for a shopfront costs walk in traffic. A published home address for a mobile business is both a privacy problem and a ranking one, because the pin sits in a residential street rather than where the work is.
**The service area does not extend your reach.** Setting it to the whole metropolitan area does not make you rank across it. Distance from the searcher still decides. Set it to where you genuinely work.
## 5. Hours
- Accurate, including the days you are shut
- **Holiday hours set in advance.** Google prompts for these, most businesses ignore the prompt, and a listing showing "hours may differ" on a public holiday loses clicks to one that says "open"
- **More hours than the competition, if true.** Being open when others are closed materially changes what is shown for an urgent search. Do not claim 24 hours unless somebody answers at 3am
## 6. Photos
A profile with recent photos outperforms one with photos from years ago, and the gap widens over time.
- **Add some monthly.** Ten minutes on a phone
- **Real work, real vans, real people.** Stock photography is obvious and does nothing
- **Geotagged is not necessary.** The metadata claim is widely repeated and not supported
- **The cover and logo set the first impression** in the pack. Everything else is the detail view
## 7. The description
750 characters. Matters less than most guides suggest, because Google largely does not use it for ranking, but it is read by people deciding between three listings.
Write it for the reader. What you do, who for, what area, what makes the choice easy. No keyword stuffing, no capitals, no phone number.
## 8. Posts
Low ranking value. Real value in occupying space on the listing and in giving a returning searcher something current.
Worth doing weekly if it costs ten minutes. Not worth a content program. An offer, a completed job, a seasonal reminder.
## 9. Questions and answers
Frequently ignored, and it is the only section of the profile that strangers can fill in on your behalf.
- **Post your own common questions and answer them.** This is allowed and encouraged
- **Answer everything within a day.** An unanswered question sits on the listing
- **Watch for wrong answers from the public.** Anyone can answer, and a confidently wrong answer from a stranger stays there until you correct it
## 10. Messaging and booking
Turn messaging on only if someone will actually reply quickly. A slow response is worse than no messaging, because the listing shows the typical reply time.
Booking links, where the category supports them, shorten the path from search to appointment and are worth the setup.
## Monthly maintenance
Twenty minutes, and it matters because the profile changes without you.
- [ ] Check the category has not been changed
- [ ] Check hours, phone and address are still right
- [ ] Read and reply to every new review
- [ ] Answer new questions, correct wrong answers
- [ ] Add two or three photos
- [ ] Check for duplicate listings
- [ ] Check pending edits, Google accepts suggestions from the public
- [ ] Note calls and direction requests from insights
That last point is the one people are surprised by. Members of the public can suggest edits to your listing, and some are accepted automatically. Businesses have had their hours, categories and even phone numbers changed by strangers and not noticed for months.
references/research.md 5.0 KB
# Researching local search
The connector exposes DataForSEO directly, which turns most local SEO from opinion into measurement. These are task based endpoints: post the task, poll for ready, fetch the result.
## The exercise that matters most
**Run the target query from several coordinates across the service area.**
The map pack changes by location, sometimes by a few hundred metres. A single rank check from the office tells you almost nothing about what a customer three suburbs away sees.
```
dataforseo_create_serp_google_local_finder_task
keyword: "emergency electrician"
location_coordinate: "-33.8688,151.2093"
language_code: "en"
dataforseo_list_serp_google_local_finder_tasks_ready
dataforseo_get_serp_g_local_finder_task_get_adv_by_id
```
Run it from five to eight points spread across the area the business claims to serve. You get back a map of where they rank and, more usefully, where they cannot.
This converts the distance constraint from an abstraction into something an owner can look at. It also produces the honest conversation early: these three suburbs are winnable, these four are not, and the work for the second group is organic content and paid search rather than the map pack.
## Who is actually ranking
```
dataforseo_create_serp_google_maps_task
dataforseo_get_serp_google_maps_task_get_advanced_by_id
```
For each competitor in the pack, look at:
- **Their primary category.** If all three leaders share a category the client does not have, that is the finding of the whole audit
- **Review count and rating.** This is the gap to close, and it tells you how long it will take
- **Distance from the search point.** Sometimes the answer is simply that they are closer, and no amount of optimisation changes it
- **Whether they have an address or a service area**
```
dataforseo_get_business_data_google_my_business_info_task
dataforseo_get_business_data_google_reviews_task
```
The reviews endpoint gives a competitor's full review history, which shows their velocity. A competitor gaining fifteen reviews a month is pulling away, and a plan that adds two a month will not catch them. Knowing that before promising anything is worth the call.
## Keyword research for local
```
dataforseo_get_kw_google_ads_kw_for_kw_live
keywords: ["emergency electrician", "electrician near me", "switchboard upgrade"]
location_code: 2840
language_code: "en"
sort_by: "search_volume"
```
Three things about local keyword data that differ from ordinary keyword research:
**"Near me" volume is understated in every tool.** The intent shows up distributed across the base term, because Google resolves the location itself. Do not build a page targeting "near me", and do not discount the term because the reported volume looks low.
**CPC is the best available proxy for commercial value,** and in local service categories it is high, which is the point. A term at 300 searches with a $22 CPC is worth more than one at 8,000 with a $0.40 CPC, because the second is people looking for information and the first is people looking for a tradesperson.
**Suburb modified terms have low volume individually and matter collectively.** "Electrician Parramatta" may show 90 searches a month. That is a real customer every few days at a high conversion rate. It is still not a reason to build 200 templated pages.
## Difficulty, for the organic half
```
dataforseo_post_dataforseo_labs_bulk_keyword_difficulty_live
```
Local organic terms are frequently far less competitive than their volume suggests, because the competition is other small businesses rather than publishers. This is where local SEO gets unusually good returns, and checking the difficulty before committing tells you whether this is one of those cases.
## What the site already ranks for
Where Search Console is connected:
```
google_search_console_search_analytics_query
```
Filter to queries containing place names and to the local service terms. Two patterns are worth hunting:
- **Impressions with no clicks.** Usually a title tag and profile problem rather than a ranking problem, and the cheapest available win
- **Position 5 to 15.** The page already exists and is already close. Improving a page at position 8 is far less work than creating one that starts at nothing
```
google_search_console_inspect_url
```
is worth running on any local page that appears to be missing entirely, since the answer is sometimes that it was never indexed.
## Reading the results
Results may come back as a table rather than inline when they are large. Query and aggregate rather than reading rows one at a time.
Two honest caveats to carry into any report:
**Rank is not a single number.** It varies by the searcher's exact position, their history and the time of day. Report a range, or report the positions from the coordinates you actually measured, and say which.
**Search volume is not traffic.** The map pack takes most of the clicks on a local query before any organic result is reached, so a first position organic ranking on a query with a strong pack is worth much less than the volume implies. Say so before anyone builds a forecast on it.
references/reviews.md 5.6 KB
# Reviews
Reviews affect ranking. They affect click through and conversion more. A business ranking third with 180 reviews at 4.8 routinely takes more calls than the business ranking first with 20 at 4.9, and that is the whole argument for treating reviews as the priority they are.
## What matters, in order
1. **Count.** More is better, and the effect keeps going well past the point people assume it stops
2. **Recency.** Twenty reviews from this year beat eighty from four years ago. A profile whose newest review is from 2023 reads as a business that may not exist
3. **Rating.** Above about 4.2 the differences matter less than the count. Below 4.0 it becomes the problem
4. **Velocity.** A steady trickle. Bursts look like what they are
5. **Content.** Reviews mentioning the specific service and the specific area are worth more than "great job, thanks"
6. **Responses.** Every review answered, which is visible to every reader
**Not a perfect 5.0.** A profile at 5.0 with 30 reviews is less persuasive than 4.7 with 200. Readers assume the perfect one is filtered, and a handful of four star reviews with sensible content makes the whole profile more credible.
## Getting them
The only system that works is asking every satisfied customer at the moment they are satisfied.
**The moment matters more than the wording.** The window is hours, not days. The technician finishing the job, the invoice being marked paid, the problem being solved. A monthly batch request to a list of past customers converts at a fraction of the rate.
**One tap.** Send the direct review link, not "please leave us a Google review". Every additional step loses a large share, and the share is larger than anyone expects. A text message with a short line and the link is the highest converting version in service businesses, by a distance.
**Ask in person first, then send the link.** "Would you mind leaving us a review? I will text you the link now." The verbal ask roughly doubles the response to the message.
**Who to ask.** Everyone who is happy. Not a selected subset, which is a guideline problem, but also there is rarely a reason to ask an unhappy customer for a public review rather than for a conversation.
Where a CRM is connected, the request can fire from the job completion or the invoice payment, which removes the step most likely to be skipped, which is remembering.
```
leadconnector_send_message the request, from the job or invoice trigger
leadconnector_add_contact_tags so nobody is asked twice
```
Tag on send, so a customer is never asked twice, and so the ask rate is measurable. A business that cannot say what share of completed jobs produced a request does not have a system, it has an intention.
## What not to do
- **Do not buy reviews.** The pattern is detectable, and the downside is losing the profile, which is the whole channel
- **Do not incentivise them.** Discounts or entries into a draw in exchange for reviews are against the guidelines, and it is a competitor's easiest report
- **Do not gate them.** Asking how the experience was and only sending the link to people who say "good" is review gating. It is explicitly prohibited and it is easy to spot in the pattern of arriving reviews
- **Do not have staff post reviews**
- **Do not ask for a "5 star review".** Ask for a review. The distinction matters for the guidelines and for how the ask reads
- **Do not run a campaign that produces forty reviews in a week.** It looks exactly like what it is, and filtered reviews are not recoverable
## Responding
Reply to all of them. The reply is public and it is read by people deciding whether to call.
**Good reviews.** Short, specific, no template. "Thanks Sarah, glad the switchboard sorted the tripping. Any trouble, call us." Thirty seconds. A visibly templated reply on twenty consecutive reviews is worse than no reply, because it shows the business is going through motions.
**Bad reviews.** This is where a profile is won or lost, and the rules are narrow:
- **Reply within a day.** An unanswered one star review reads as an admitted one
- **Write for the reader, not the reviewer.** A hundred future customers will read this exchange. The reviewer has usually stopped reading
- **Calm, brief, specific, no defensiveness.** Acknowledge, state what happened factually if it differs, offer to fix it, give a direct contact
- **Never argue, never blame the customer, never mention their behaviour**
- **Never disclose anything about their job or their account.** Privacy obligations apply in public, and a reply revealing details of the customer's situation is a worse problem than the review
- **Reply once.** A public back and forth makes the business look difficult regardless of who is right
- **Take it offline.** "Can you call me on this number and I will sort it out" is the entire goal of the reply
A pattern worth knowing: a calm, human reply to an unfair review frequently reads better to a stranger than the review itself. Some of the best conversion on a profile comes from one badly handled job answered well.
**Fake and malicious reviews.** They can be reported, the process is slow, and the success rate is low. Report it, then reply as though it is real and visible, because it will be visible for a long time either way.
## Other platforms
Google is the priority for most local businesses because it feeds the map pack. After that, follow the customers rather than a checklist. A trade business may find one industry directory matters more than everything else; a restaurant has an entirely different set.
Two things carry across all of them: consistency of business details, and replying to everything.
assets/audit-checklist.md 4.4 KB
# Local SEO audit
<!-- Work top to bottom. The first section is worth more than the rest combined,
which is not how most audits are ordered and is how they should be. -->
| | |
|---|---|
| Business | |
| Audited by | |
| Date | |
| Main query audited | |
| Service area claimed | |
## Access, before anything else
- [ ] The business owns the Google Business Profile, not a former agency
- [ ] Someone at the business has owner level access, not manager
- [ ] Search Console is verified and someone has access
- [ ] The website login is known
<Everything below depends on this. Recovering a profile from an unresponsive
agency takes weeks, so find out on day one.>
## Google Business Profile
**Category**
- [ ] Primary category recorded here: ________________
- [ ] Categories used by the top three in the pack: ________________
- [ ] Primary category matches what the business actually is
- [ ] Secondary categories added, all genuinely accurate
**Fundamentals**
- [ ] Claimed and verified
- [ ] No duplicate listings (searched the business name and the phone number)
- [ ] Business name is the real name, with no keywords appended
- [ ] Address or service area set correctly for the business model
- [ ] Phone number is a real, answered number, consistent everywhere
- [ ] Website link goes to the most relevant page, not always the homepage
**Content**
- [ ] Every service listed individually, each with a description
- [ ] Products listed, where the category supports them
- [ ] Attributes complete, including any used as search filters
- [ ] Description written for a human, no keyword stuffing
- [ ] Hours accurate, including days closed
- [ ] Holiday hours set for the next three months
- [ ] Photos added within the last 30 days
- [ ] Cover photo and logo set
**Interaction**
- [ ] Questions section: own questions posted and answered
- [ ] No incorrect public answers left standing
- [ ] Messaging on only if somebody replies quickly
- [ ] Pending public edits reviewed
## Reviews
| | Client | Competitor 1 | Competitor 2 | Competitor 3 |
|---|---|---|---|---|
| Count | | | | |
| Rating | | | | |
| Newest review | | | | |
| Added last 90 days | | | | |
| Owner replies to all | | | | |
- [ ] There is a system that asks every satisfied customer, same day
- [ ] The ask is a direct link, one tap, usually by text message
- [ ] Every review has a reply
- [ ] Negative reviews answered calmly, once, taken offline
- [ ] No gating, no incentives, no purchased reviews
- [ ] Review velocity compared to competitors. Gap: ______ per month
## Position, measured properly
<Run the main query from several coordinates across the service area, not once
from the office. See references/research.md.>
| Location | Coordinates | Map pack position | Who ranks 1 to 3 |
|---|---|---|---|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
- [ ] Where the business genuinely can rank: ________________
- [ ] Where it cannot, because of distance: ________________
- [ ] The second list has an organic and paid plan instead
## Website
- [ ] Business name, address and phone identical to the profile, character for character
- [ ] Address and phone in the footer of every page
- [ ] One page per service, each with real content
- [ ] One page per genuine location, not per aspirational suburb
- [ ] No templated suburb pages
- [ ] Local business schema present and valid
- [ ] Map embedded on the contact page
- [ ] Loads quickly on a phone on mobile data
- [ ] Phone number is tap to call on mobile
- [ ] Title tags include the service and the place, under 60 characters
## Search Console
- [ ] Local queries with impressions and no clicks, listed: ________________
- [ ] Pages at position 5 to 15 worth improving: ________________
- [ ] Any local page not indexed: ________________
## Consistency
- [ ] Name, address and phone identical across the website, the profile, and the main directories for this industry
- [ ] Old addresses or disconnected numbers removed from anywhere they still appear
## The findings
<Three things, ranked by return for effort. Most local audits produce forty
recommendations and get none of them done. Three get done.>
| # | Finding | Effort | Expected effect |
|---|---|---|---|
| 1 | | | |
| 2 | | | |
| 3 | | | |
**What is not winnable, stated plainly:**
<The suburbs outside the radius. The review gap that will take a year to close.
Saying this now is worth more than a report that promises everything.>