TL;DR
If you’re a plumber, electrician, HVAC tech, contractor, or any business that drives to your customers instead of having them drive to you, here’s the truth no one will tell you: the most common reason you’re invisible in nearby cities isn’t a missing citation or a weak GBP — it’s that your city pages look like duplicate content to Google. After managing local SEO for service-area businesses across 20 accounts and ranking some of them in 20–30 cities, the playbook that wins is built on three things: research-led city selection, completely unique content per city page, and a NAP-radius strategy that respects how Google cross-references your physical address. Get those three right and the rest is detail work.
Most service-area businesses don’t fail at local SEO because they did the wrong things. They fail because they templated their way through what Google now treats as duplicate content — and after the March 2026 core update, that’s no longer a survivable mistake.
What is a service-area business, and why is local SEO different?
A service-area business (SAB) is one where you go to the customer rather than the customer coming to you. Plumbers, electricians, HVAC technicians, mobile detailers, locksmiths, cleaning companies, roofers, lawn services, mobile vets — all SABs.
That single difference reshapes everything about how Google evaluates you. A storefront business gets one Google Business Profile pinned to one address, and customers find them by searching “near me.” An SAB has a real address (your shop or your home office) but is trying to rank for “plumber in [City A], [City B], [City C], [City D]…” — places you serve but where you don’t have a storefront. Google’s job is to figure out whether you actually serve those areas or whether you’re a [VERIFY: spam term — “lead-gen aggregator” works] gaming the system.
Three rules follow from that:
Your physical address still matters even when you hide it on Google Business Profile. Google cross-references everything against your NAP (Name, Address, Phone). The further a city is from your real address, the harder it is to rank there.
You can’t fake service area. Adding 50 cities to your GBP service area doesn’t make you rank in 50 cities — it dilutes your relevance signal across all of them.
Every city page on your site has to be different. Duplicate or near-duplicate content across city pages is the #1 reason SABs we audit are stuck. After March 2026, Google’s tolerance for thin or templated content dropped substantially — and it’s hitting SABs especially hard.
The mistake: treating city pages as duplicate content
Walk me through a typical SAB site we get handed. Header, hero, “We serve [City A], [City B], [City C]…” listed in tiny text in the footer. Twelve city pages, each with a 300-word block of text, the same H1 with just the city name swapped out, the same FAQ section pasted on every page, the same images.
The owner’s reasonable response: “We are a plumber. The plumbing service is the same in every city. What am I supposed to write differently?”
That’s the trap. Google reads those twelve pages as one page repeated twelve times. It picks one to rank — usually the largest city — and treats the other eleven as duplicate filler. Your effort, your sitemap depth, and the internal link equity you spent to build them out all collapses into a single ranking opportunity instead of twelve.
The fix isn’t writing twelve unique novels about plumbing. It’s giving Google a real signal that each city page represents distinct local context.
The ChitChat method: research-based city selection
Before you build a single city page, you do the research. Two filters drive our selection:
Filter 1 — Population density that justifies the page
Not every city in your radius deserves a dedicated page. We prioritize cities by population because two factors scale with population: search volume for your service, and competitive intensity. A small town with 800 households and three plumbing competitors isn’t worth the page; a city with 40,000 households and search volume to match is.
Pull the Google Keyword Planner and look at city-modified queries — “emergency plumber [city]”, “water heater installation [city]”. Cities with measurable monthly search volume (we typically use 50+ as the floor for the head term) get a page. Cities with under 30 monthly searches get rolled into a regional page or a neighborhood mention on the closest city page.
Filter 2 — Proximity to the home city
This is the rule that most SAB strategies miss and the one that quietly determines whether your plan works. Google cross-references all of your data against your NAP information. The further a target city is from your physical address, the more proof you need to rank there — citations, reviews from that city, jobs photographed at that city, and consistent service signals across your data graph.
Our approach: rank the closest cities first. Build authority in a tight radius around your home city. Once those rank, expand outward in concentric rings. The plumber clients we’ve taken from 1 city ranking to 20–30 cities ranking didn’t get there by chasing every distant city upfront — they got there by stacking close-in wins and letting that authority radiate outward.
The recent core updates reinforced this. Sites that aggressively targeted cities far from their NAP are getting filtered as low-confidence local results. Sites that built their footprint outward from a real address are gaining ground.
Building city pages that don’t look like duplicate content
Once you’ve picked your cities, the build itself is where most SABs lose ground. Every page has to be unique. Not “rewritten with a thesaurus” unique — actually different content, addressing the local context of each city.
Here’s the structure that’s worked for our plumbing clients ranking across 20–30 cities:
What’s templated (and that’s fine)
Service definition (what plumbing services you offer)
Trust signals (license number, insurance, BBB, years in business)
Schema markup structure (you’ll customize the values, not the structure)
Brand-level testimonials block
Site-wide FAQ schema (4–6 brand questions about your business)
These can be templated because they’re your business identity — they’re the same regardless of city, and Google understands templated brand elements aren’t duplicate content the way templated body copy is.
What has to be unique per city
City-specific opening paragraph (200+ words) referencing real local context: neighborhoods you serve, common housing stock and the plumbing issues that come with it, recent work in the area, weather patterns that affect the trade.
Jobs you’ve completed in that city — even three or four real, specific jobs with the type of work, neighborhood, and outcome. Photos help.
Customer testimonials from that city specifically. Even one or two genuine testimonials carry more local relevance signal than a dozen generic ones.
Local landmarks, neighborhoods, or service zones referenced naturally in the copy, not stuffed.
City-specific FAQs — at least 2–3 questions that only make sense for that city. Examples: questions about the local water utility, common housing-stock issues, permit requirements that vary by jurisdiction.
Schema markup with city-specific values — Service schema with
areaServedset to the city,LocalBusinessschema variations where appropriate, anddateModifiedthat reflects when you actually updated each page.
What never works
The same H1 with only the city name swapped.
A 300-word generic block with no city-specific signal.
A list of every city in your service area in the footer of every page (the internal-linking structure should be intentional, not exhaustive).
Auto-generated or AI-generated city pages with no human editing. After March 2026, Experience signals — real photos, real testimonials, real first-hand work — separate winners from losers in this space.
Internal linking that signals authority, not desperation
Internal linking on an SAB site is where most strategies break. The default move is to link every city page from every other city page in the footer or sidebar. That’s a flat structure that tells Google nothing.
The structure that works is hub-and-spoke with proximity logic:
Locations hub page linking to every city page — this is your master page that establishes the topical cluster.
Each city page links back to the Locations hub and to 2–3 neighboring cities. Not all cities — neighboring ones. This mirrors how a real customer might think about coverage: “If they serve [city A], they probably serve nearby [city B].” It also distributes link equity in a way that respects geographic logic.
Service pages link into the relevant city pages when the service has city-specific variations (e.g., the “Sewer Line Repair” service page links into the city pages where you’ve actually done sewer work).
Blog posts about specific local jobs link into the city page for that area. Every job-completed blog post is a chance to reinforce a city page’s authority with a real Experience signal.
Google Business Profile — the basics that still matter
GBP is the second pillar of SAB local SEO. The mechanics haven’t changed dramatically in 2026, but a few details matter more than they used to:
Hide your address on GBP, but list it accurately on your website. GBP lets SABs hide the physical address from public view; do that. But your website’s footer, contact page, and Schema markup should all carry consistent NAP — that’s what Google cross-references.
Set service area accurately. List the cities and zip codes you actually serve, ranked by proximity to your home city. Don’t list cities you can’t realistically respond to within your stated response window.
Categories matter. Pick the most specific primary category (e.g., “Plumber” not “Contractor”) and add secondary categories that genuinely apply.
Photos with metadata. GBP photos with location data embedded in the EXIF help reinforce the geographic signal. Take photos at the actual job site and upload them to GBP — and to the corresponding city page on your site.
Review velocity from across your service area. You don’t need 500 reviews — you need a steady cadence of reviews from customers in different cities. Build a review-request workflow that’s geographically distributed.
NAP consistency: still the boring foundation
Name, Address, Phone — listed identically across your website, Google Business Profile, Bing Places, Apple Business Connect, Yelp, BBB, and the major industry directories (for plumbers: Angi, HomeAdvisor, Thumbtack). One typo in a phone number across listings is enough to suppress your local rankings. Run a citation audit annually.
The AI search angle nobody is talking about yet
In 2026, “near me” searches don’t just happen on Google. They happen in ChatGPT, Perplexity, and Google’s AI Overviews, and increasingly in voice assistants. The optimization patterns for AI search overlap with classic local SEO but add a few layers:
Make sure your site is server-rendered. AI crawlers don’t execute JavaScript. If your city pages render client-side, AI engines see empty pages.
Schema markup is more important, not less. AI engines preferentially cite content with structured data.
Get cited in third-party listicles. AI engines build “best plumber in [city]” answers from existing listicles, Reddit threads, and industry directories. Pursue inclusion in those.
Maintain consistent entity data across the web. Crunchbase, LinkedIn Company, and your GBP should all describe your business the same way. AI engines reconcile across these sources.
What to do this week
If you read this and recognize your own site in the mistake section, here’s the prioritized list:
Audit your city pages for duplicate content. Run a Screaming Frog crawl and look at the percent-similar metric across your location pages. Anything over 60% needs a rewrite.
Pull your closest 5 cities by NAP proximity and make sure those pages are fully unique before you do anything else. Authority radiates outward from your real address.
Verify your GBP service area matches the cities on your website and the cities you can genuinely serve within your stated response window.
Run a NAP citation audit. Free tools like Moz Local flag inconsistencies.
If you’d like a free local SEO audit on your specific site — including a city-page duplication analysis and a NAP-proximity map — request one here.
Key takeaways
SABs are different from storefront businesses because Google cross-references everything against your physical address.
The #1 reason most SAB sites underperform isn’t citations or GBP — it’s city pages that look like duplicate content.
Pick cities based on population (search demand) and proximity to your real address (ranking difficulty). Build outward in concentric rings, closest first.
Every city page has to carry unique content: real jobs, real testimonials, real local context. Templated brand elements are fine; templated body copy is not.
Internal linking should follow proximity logic, not a flat footer-link structure.
After the March 2026 core update, the penalty for templated city pages is steeper than it’s ever been.
FAQ
How many cities can a single SAB realistically rank in?
We’ve taken plumbing clients from 1 city ranking to 20–30 cities ranking, but the journey is sequential. Build authority in close-in cities first, then expand outward. Trying to rank in 30 cities from day one almost always fails.
Should I hide my address on Google Business Profile?
Yes — for SABs, GBP supports hiding the physical address from public view. But your website footer, contact page, and Schema markup should still carry an accurate NAP that Google can cross-reference.
What’s the minimum unique content per city page?
We aim for 200+ words of city-specific opening copy plus city-specific testimonials, FAQs, and at least one real local job example. Total page word count should be in the 800–1,500 range.
Will AI search engines kill local SEO?
No, but it’s reshaping it. AI engines like ChatGPT and Perplexity rely on the same underlying signals — schema markup, NAP consistency, third-party citations, and crawlable content. Optimizing for them and for Google’s local algorithm is increasingly the same job.
How long does local SEO take to work for an SAB?
For close-in cities (within 10–15 miles of your physical address), expect first ranking improvements in 60–90 days with the right execution. Cities further out take 4–6 months because you have to build the supporting signals (citations, reviews, jobs done in that city) from scratch.
Sources cited: Search Engine Land — March 2026 Google Core Update · Digital Applied — E-E-A-T After March 2026 · Google — Structured Data Documentation · Google Keyword Planner · Ahrefs — Internal Links Guide

Thomas Guardado is a seasoned digital marketing and SEO expert with over a decade of hands-on experience helping brands grow their online presence and dominate search results. Based in Connecticut, he specializes in organic search strategy, technical SEO, content optimization, and data-driven campaigns that turn clicks into customers.


