A common conversation early in a discovery call goes like this. The owner of a roofing or HVAC or plumbing business pulls up their current website on their phone and types something like "best roofer" into Google. They scroll through the results, frown, and ask why their site doesn't show up — even though they paid the previous web designer specifically for SEO.

The answer is almost always the same. Their old designer optimized for a national keyword in a market where national keywords don't matter. The customer searching for a roofer in Colorado Springs is not looking for the country's best roofer; they are looking for a roofer who can drive to their house this week. The Google search that produces that lead is structured fundamentally differently from a national search, and the websites that win it are structured fundamentally differently too.

This post is about that difference, and why a service business should never let a designer talk them into chasing a national keyword.

What "local" actually means in a Google search

When a homeowner types "roofer" into Google, the search engine does not return a global list of roofers. It returns roofers within a specific radius of the searcher's IP-detected or device-permitted location. Behind the scenes, Google has automatically rewritten the query as "roofer near {city, state}" before any results get fetched.

This is true for almost every service-business search. "Plumber," "HVAC repair," "landscaper," "electrician," "home inspector," "general contractor" — Google interprets each of these as a local query by default. The few exceptions are searches where the user is clearly researching, not buying ("how to choose a roofer," "questions to ask a plumber"), which behave more like national queries because the searcher's location does not yet matter.

The practical consequence: ranking #1 nationally for "roofer" would put you in front of a lot of researchers, but the people actually about to call a roofer are not seeing the national results at all. They are seeing the local pack and the locally-relevant organic results, both of which are filtered by geography first and quality second.

What makes a website rank for the local version of a search

Three things, in roughly the order Google weights them:

Proximity. Google checks how close the business's listed address is to the searcher's current location. A roofer five miles from the searcher, all else equal, beats a roofer fifteen miles away. Proximity is not something the website itself controls — it comes from the Google Business Profile address — but it is the strongest single ranking factor for local pack results, which is why even an excellent national-SEO website with a wrong or missing GBP loses to a worse local site that has a complete profile.

Relevance. Does the website actually talk about the service the searcher is looking for, in the geographic terms a local searcher would use? A site that says "we provide quality service to discerning homeowners" loses to a site that says "we install asphalt shingle, metal, and tile roofs in Colorado Springs, Monument, and Black Forest" — even if the first site is otherwise nicer. The terms a local searcher uses are the terms Google scores for relevance.

Prominence. Reviews, citations from local sources, mentions on news sites, links from other locally-relevant sites. Prominence is roughly "is this business a known quantity in this area." It compounds slowly — you cannot fake it — but a site that is two years into being properly indexed, reviewed, and linked from local sources outranks a brand-new site even when the new site is technically better.

National-SEO tactics — long-form content, broad keyword targeting, link-building from high-domain-authority sites — can move the needle on relevance but they don't move the needle on proximity or prominence at all. For a service business, that means national-SEO tactics by themselves leave most of the available ranking signal on the table.

What this changes about how a website should be built

The structure of a site built for local-first search looks different from the structure of a site built for general SEO.

  • The homepage names the city or metro area in the H1, not in a buried meta description. "Roofing in Colorado Springs" is the page's real subject; the words "high-quality" and "experienced" are filler, not signal.
  • Each major service has its own dedicated page that combines the service name with the geography. "Asphalt shingle roof replacement in Colorado Springs" is a different page from the homepage; both pages target different searches.
  • Each meaningful coverage area — Monument, Black Forest, Falcon, Manitou Springs — gets its own dedicated page. The page is not a thin doorway repeat of the homepage; it has genuine local content (notable neighborhoods, local building patterns, weather considerations).
  • The footer carries the full NAP — Name, Address, Phone — in a format Google can parse, identical to the way it appears on the Google Business Profile, identical to every directory listing.
  • Schema markup describes the business as a LocalBusiness with an areaServed covering the actual coverage geography, not a vague "United States."
  • An interactive map — Leaflet on OpenStreetMap, no Google Maps API fees — pins each covered area visually so visitors can confirm in five seconds whether the business covers their address.

Each of these is independently a small thing. Together they make the difference between a site that ranks for the keyword "roofer" in a thousand locations none of which produce calls, and a site that ranks for "roofer in Colorado Springs" in the one location that does.

What about national clients?

The honest answer: most service businesses do not have national clients. A roofer in Atlanta, a plumber in Salt Lake, a landscaper in Boulder — their entire revenue comes from a 30-mile radius of their shop. Spending budget on national-SEO tactics is spending budget on visitors who will never call.

The exception: businesses that genuinely are national. A SaaS company, a national franchise, a B2B distributor with customers in every state. For those, the SEO conversation is different and national keywords are worth optimizing for. But even there, smart national businesses still build local pages for their major-market presence; the local-vs-national choice is more often "and" than "either."

For a small service business, the choice is "local, full stop." Every dollar of design and SEO budget should be aimed at the local-pack result and the locally-relevant organic results. Anything else is a designer charging you for vanity rankings.

How to tell if a site is built for local search

Three quick checks before hiring anyone for a website rebuild:

  1. Look at the homepage's H1 (the largest headline). Does it name the city? If not, the designer has not started the local conversation.
  2. Look at the URL structure. Is there a /service-areas/[city]/ page for each city the business covers? If not, the site is leaving geographic relevance on the table.
  3. Look at the footer. Is the business address there in plain text, with the full street address, city, state, ZIP? Not a vague "Colorado Springs and surrounding areas" — the literal address. If not, Google cannot crawl it and the business is invisible to local search.

A site that fails any of those three is built for the wrong audience. The fix is not optional — it is what makes the entire SEO investment work.

Share this article
Local SEO included

Every site I build is structured for local-first search.

Service-area pages, dedicated city content, NAP consistency, schema markup, and a coverage map. The same elements Google's local-pack uses to decide who shows up. Part of the standard plan.

Start a Conversation → See what's included