Free Resource · Local SEO

Local SEO Playbook

A battle-tested system for dominating local search — from Google Business Profile to citations, reviews, and beyond.

Get the Checklist
01
Choose the right primary category — and add secondaries

Your primary category is the single biggest ranking factor in GBP. Use Google's exact category names (not custom ones). Add up to 9 secondary categories that accurately describe your services — a plumber can also be a "water heater installer" and "drainage contractor." Never add categories for services you don't offer just to rank broader.

High Impact
Fill every attribute — especially "From the Business" and service-specific ones

Attributes like "LGBTQ+ friendly," "women-owned," "free Wi-Fi," and "outdoor seating" filter searches directly. Service-specific attributes (e.g., "online appointments," "in-store pickup") are surfaced in Google's local panels and affect click-through rate significantly.

Quick Win
Post weekly — mix offers, updates, and events

GBP Posts expire after 7 days (Offers and Events have custom dates). Regular posting signals an active business and gives Google fresh content to surface in the Knowledge Panel. Use UTM parameters on post links to track traffic in GA4. Minimum cadence: one post every 5–7 days.

Ongoing
Seed Q&A with your own questions

Anyone can ask — and anyone can answer — questions on your profile. Get ahead of it: ask your own most common FAQs and answer them authoritatively. This directly populates the Q&A section and reduces the chance of wrong information appearing there from a competitor or troll.

Underused Tactic
Upload 10+ photos at launch, then add new ones monthly

Profiles with 100+ photos get 520% more calls than the average (Google's own data). Prioritize: exterior (so customers recognize the location), interior, team in action, and product/service shots. Geotag images before upload using a tool like GeoImgr — it's a small signal but every bit counts in competitive maps.

High Impact
02
Lock down your NAP format — and never deviate

Name, Address, Phone must be identical everywhere: same abbreviation style (St. vs Street), same suite format (#200 vs Suite 200), same phone format. Create a "NAP master document" and share it with anyone who ever touches your business listings. Google reconciles conflicting signals by averaging — inconsistency means weaker rankings.

Foundation
Priority directories: build these first

Google Business Profile, Apple Maps, Bing Places, Yelp, Facebook, BBB, Foursquare, Yellow Pages, Hotfrog, and your industry-specific directories (Zocdoc for doctors, Houzz for contractors, Avvo for lawyers). These feed the data aggregators (Neustar Localeze, Data Axle, Foursquare) that then push your data to hundreds of smaller sites.

Priority List
Use data aggregators to amplify your NAP at scale

Services like BrightLocal, Moz Local, or Yext push your NAP to aggregators and suppress duplicates. A one-time submission covers hundreds of citations you'd otherwise never build manually. The ROI is strongest in months 3–6 as the data propagates. One-time cost beats ongoing agency fees for this specific task.

Scalable
Hunt and kill duplicate listings

If your business moved, rebranded, or changed numbers, old listings persist for years. Search "[Business Name] + city" on Google and Maps. Check Whitepages, YP.com, and Manta. Claim and merge or delete duplicates — Google will often show both in local results, splitting click equity and confusing the algorithm.

Maintenance
03
Ask at the peak moment — not the invoice

The best time to request a review is immediately after the customer's "wow moment" — when they just saw results, received the service, or expressed satisfaction verbally. Create a short link to your GBP review form (use the Place ID generator in your GBP dashboard) and text or email it within 2 hours of the positive experience.

High Impact
Build a review request cadence — never a one-time ask

One automated request isn't a system. Build a 3-touch sequence: SMS immediately after service → email 48 hours later → final SMS 5 days out (only if no review yet). Most reviews come from the second or third touchpoint. Use GHL, Birdeye, or even a Google Form shortlink in your team's phone signatures.

System Build
Respond to every review within 24 hours

Google explicitly says owner responses are a ranking signal. More importantly: 89% of consumers read business responses before deciding to visit. Thank positive reviewers and use a keyword naturally ("Thank you for trusting [Business Name] for your AC repair in [City]"). For negatives, respond publicly with empathy, take it offline for resolution — never get defensive.

Ongoing
Aim for review velocity, not just volume

A burst of 50 reviews in one week followed by silence looks suspicious to Google and competitors can report it. Aim for a consistent 2–5 reviews per week over months. Google's algorithm weights recency heavily — a business with 10 reviews from last month often outranks one with 200 reviews from 3 years ago in competitive markets.

Strategy
04
Build a city × service matrix as your keyword foundation

Take every service you offer and pair it with every city, neighborhood, and district you serve. [Service] + [City], [City] + [Service] + "near me", "best [service] in [city]" — these are your primary landing page targets. A roofing company serving 5 cities with 8 services has 40 core local keyword clusters to target.

Foundation
Mine Google Suggest and People Also Ask

Type your service + city into Google and screenshot the autocomplete — these are real queries with real search volume. Hit Enter, then scrape the "People Also Ask" box and the "Related Searches" at the bottom. These clusters reveal long-tail intent that keyword tools often miss because volume is too low to show up, but conversion rates are higher.

Free Research
Spy on the top 3 local pack competitors

Use Ahrefs, Semrush, or even the free Ubersuggest to pull the top organic keywords for your top 3 local competitors. Filter by keywords that include city names or "near me" variants. This is the fastest way to find gaps — keywords they rank for that you haven't even targeted yet. Run this audit quarterly.

Competitor Gap
"Near me" is a signal, not just a keyword

You can't control who searches "near me" — Google resolves it based on the user's GPS location. But you can capture it by fully optimizing GBP, building strong local citations, and using "near me" naturally in page copy (e.g., "Find the best HVAC repair near you in Austin"). The real goal is proximity + relevance + prominence.

Nuance
05
Implement LocalBusiness schema on every page

JSON-LD structured data is the clearest signal you can send Google about your business. Include: @type (e.g., Plumber, Dentist, Restaurant), name, address (PostalAddress), phone, URL, geo coordinates, opening hours, and priceRange. Use Google's Rich Results Test to validate. Add Service schema for individual service pages and AggregateRating if you have reviews on-site.

Technical SEO
Create dedicated location pages — one per city you serve

A single "Areas We Serve" page listing 10 cities is weak. Build individual pages: /plumber-austin/, /plumber-round-rock/, etc. Each page needs: unique intro mentioning the city, services offered there, testimonials from local customers, embedded Google Map, local phone number if you have one, and internal links to related service pages. Thin pages hurt — add 400+ words of genuine local content.

High Impact
Title tags: [Service] in [City] | [Brand] — always

Local title tag formula that works: "Emergency Plumber in Austin, TX | [Business Name]". Include the city + state in every page title that targets a local keyword. The meta description should reinforce geography and include a call to action. Keep title under 60 characters. Google rewrites title tags ~60% of the time — the closer your title matches search intent, the less likely it gets rewritten.

Quick Win
Internal link from service pages to location pages — and back

Your site structure should create a mesh: homepage links to main service pages and main location pages, service pages link to each city where that service is offered, location pages link to all services in that city. This passes PageRank to thin local pages and helps Google understand your geographic service area without relying only on GBP.

Architecture
Embed a real Google Map on your contact and location pages

Embed your actual GBP listing map (not just a generic map iframe). This creates a direct crawlable link between your website and your GBP listing. Use the Google Maps Embed API or the "Share → Embed a map" option from your GBP. Keep your address text on the page matching your GBP NAP exactly.

Trust Signal
06
Read GBP Performance metrics weekly — focus on search queries

GBP Performance shows searches that triggered your profile: Direct (people searching your name), Discovery (searching a category or service), and Branded vs. unbranded. The "Queries used to find your business" report is gold — it shows you exact keywords Google is already surfacing you for. Use this to prioritize which pages to build or optimize next.

Free Data
Track local pack rankings separately from organic rankings

Google Maps rankings vary by the user's physical location — a business can rank #1 in the pack for searchers 0.5 miles away and #7 for people 3 miles away. Use a local rank tracking tool (BrightLocal, Local Falcon, or GeoRanker) to get a grid-based view of your Maps visibility across your city. This is the only way to see your true local footprint.

Advanced
Set up GA4 goals for local conversion actions

Track: phone number clicks (tel: link clicks), direction requests, contact form submissions, and click-to-call from GBP. In GA4, use Event-based conversions. Connect GA4 to Google Search Console to see which organic queries drive conversions — not just traffic. For GBP specifically, track the "Get directions" and "Call" metrics in GBP Performance as leading indicators of in-store visits.

Analytics
Build a monthly local SEO scorecard

Track monthly: GBP impressions, GBP calls + direction requests, organic ranking for top 5 keywords, review count + average rating, citation health score (via BrightLocal), and organic traffic from GA4 to location/service pages. Review these 6 numbers monthly — if calls are up but website traffic is flat, your GBP is doing the heavy lifting. If both are flat, it's an on-page or link authority issue.

Reporting

Master Checklist

Run through this before you consider your local SEO "done." Come back to it quarterly.

Google Business Profile
  • Primary category set to the most specific, accurate match
  • All secondary categories added (up to 9 total)
  • All available attributes filled out, especially service-specific ones
  • Business description written (750 chars max) — includes primary keyword naturally
  • 10+ photos uploaded: exterior, interior, team, products/services
  • Q&A section seeded with your own questions and authoritative answers
  • GBP Posts scheduled at least weekly
Citations & NAP
  • NAP master document created and shared with the team
  • Listed on all 10 priority directories (Google, Apple Maps, Bing, Yelp, Facebook, BBB, Foursquare, YP, Hotfrog + 1 industry-specific)
  • Data aggregator submission completed (Neustar, Data Axle, Foursquare)
  • Duplicate listings found and removed or merged
Reviews
  • Review request shortlink created and accessible to the team
  • 3-touch review request sequence active (SMS → email → SMS)
  • All existing reviews have received a response
  • Review monitoring set up (alerts for new reviews)
On-Page SEO
  • LocalBusiness JSON-LD schema implemented and validated in Rich Results Test
  • Dedicated location pages built for every city/area served
  • Title tags follow [Service] in [City, State] | [Brand] format
  • NAP on website matches GBP exactly
  • Google Map embed on contact page points to GBP listing
  • Internal linking connects service pages ↔ location pages
Tracking
  • GA4 conversion events set up for calls, forms, and direction requests
  • Google Search Console connected and verified
  • Local rank tracking tool configured for top 5 keywords
  • Monthly local SEO scorecard template created