Every roofing, HVAC, solar, and plumbing contractor we have ever audited had one thing in common before they came to us: they had tried Local SEO and it had not worked.
Not because Local SEO does not work for home service businesses. It absolutely does. But because the specific problems they were running into were structural, and most agencies either missed them entirely or optimized around them rather than fixing them at the root.
What follows is a diagnostic framework built from five years of auditing home service contractor websites. Read each section as if you are reviewing your own business. If you recognize yourself in more than two of these failures, that is not bad luck. That is a system problem, and system problems have system solutions.
They Optimise for City Pages Instead of Intent Clusters
The most common Local SEO mistake contractors make is building what they think is a "local SEO page" — a page titled something like "Roofing Contractor in Austin TX" — and expecting it to rank for every roofing query in that city.
It does not work that way. And the reason matters more than the symptom.
Google does not rank pages based on location mentions. Google ranks pages based on topical relevance to a specific search intent. A homeowner searching "emergency roof repair Austin" is not asking the same question as one searching "metal roof replacement estimate Austin." Those are different intents, different decision stages, and different conversion windows.
A single city page targeting "roofing Austin" is trying to be relevant to both simultaneously, which means it is probably authoritative for neither.
What Intent Clusters Actually Look Like
An intent cluster is a group of semantically related queries that share the same conversion intent. Instead of one city page, you build a content architecture that covers:
The city is not the organising principle. The search intent is the organising principle. Once you build around intent first, location second, the rankings follow because Google can finally give your pages a clear answer about what question they best answer.
For a deeper look at how this applies to your specific trade, read our guide: Local SEO for Home Service Businesses.
Their Google Business Profile Is Incomplete and Unmanaged
Your Google Business Profile is not a directory listing. It is the primary entity signal Google uses to determine whether your business is a legitimate, active, and trustworthy provider in your local market. An incomplete profile tells Google nothing useful about your business.
The contractor version of this failure usually looks like one of three patterns:
The profile was set up once when the business launched, has never been touched since, and is missing service area definitions, business category specifics, operating hours, service menus, and photos newer than two years old.
The profile was set up by a previous marketing agency, the contractor does not have access to it, and there is no way to update it, respond to reviews, or add posts. The profile is essentially abandoned.
The business is listed under the wrong primary category — "General Contractor" instead of "Roofing Contractor" — which removes it from consideration for every service-specific query in the entire category.
Primary category precisely matched to your core service. All secondary categories populated. Service menus itemized. 20+ photos updated within the last 6 months. Q&A section populated with your own answers. Google Posts published at least twice per month. Every review responded to within 48 hours.
The Attributes Google Uses to Rank Profiles
Google evaluates GBP profiles on three core axes: relevance (does this business match what the searcher wants?), distance (is the business within the searcher's acceptable range?), and prominence (does Google trust this business as a credible result?).
Distance you cannot control. Relevance and prominence you absolutely can. And both of those are directly influenced by how completely and consistently you manage your profile.
We cover the full GBP optimization sequence in our resource on how Google Maps rankings work for contractors. But the baseline diagnostic question is simple: when did someone on your team last log into your Google Business Profile? If the answer is anything longer than two weeks ago, the profile is underperforming.
They Have No Review Velocity Strategy — Only Review Count
Most contractors think about reviews the wrong way. They think the goal is to accumulate reviews — get to 50, get to 100, get to more than the competitor down the road. So they run one push, collect 40 reviews in a month, and then stop asking.
That is not how Google evaluates reviews in local ranking. Google is interested in two signals simultaneously: the total count, yes, but more importantly, how recently reviews are arriving and how consistently they keep arriving.
A contractor with 30 reviews distributed consistently across the last 6 months will frequently outrank one with 200 total reviews where the last review arrived 14 months ago. The 200-review business looks more credible to a human visitor. But Google's ranking signal is telling a different story: this business stopped receiving customer feedback. Why?
What Review Velocity Looks Like in Practice
Reviews trickle in organically — maybe 2 or 3 per month. Most months nothing arrives. The review count sits stagnant. The contractor assumes this is normal because they have "a lot of reviews already."
Every completed job triggers an automated SMS to the customer with a direct link to the review form. Response rate: 15 to 25%. A 10-job week generates 1 to 3 new reviews consistently. 8 to 12 reviews per month. Compounding ranking signal.
The mechanics of a review velocity system are not complicated. Every job completion triggers an automated SMS sequence — not a generic "leave us a review" message, but a specific, personalized message referencing the service completed and the technician name. The review link goes directly to the Google review form, not to a review page that requires additional clicks. Friction kills completion rates.
We build this inside GoHighLevel as part of every CRM and automation setup we deliver. The review velocity system runs automatically behind every completed job — no manual follow-up required.
NAP Inconsistency Across Directories Is Undermining Everything Else
NAP stands for Name, Address, and Phone. When these three data points appear differently across the directories where your business is listed — Yelp, Angi, HomeAdvisor, Houzz, Better Business Bureau, your website, your GBP — Google interprets the discrepancy as an entity trust problem.
This is not a minor ranking signal. It is a foundational one. Google's local ranking algorithm is fundamentally trying to determine whether a business is a real, consistent, verifiable entity in the real world. Inconsistent NAP data is evidence that it might not be — or at minimum, that it cannot be trusted to represent the business accurately.
The Specific Inconsistencies That Cause the Most Damage
We run a full citation audit for every client before we build any new citations. Fixing what already exists is more impactful than adding new listings on top of a broken foundation. A business with 50 consistent citations will outrank a business with 200 inconsistent ones in the same market.
This work is not glamorous. It is not the part of Local SEO that anyone leads with in a sales pitch. But it is the part that determines whether everything else compounds or stagnates.
They Target Broad Keywords Instead of Service + City Combinations
When we ask a new client what keywords they want to rank for, the answer is almost always some version of: "Roofing contractor," or "HVAC company," or "Solar installer."
These are category terms, not buyer queries. Nobody in your service area is searching "roofing contractor" and expecting a national directory. They are searching "roof replacement quote [their city]" or "emergency roofer near me." The person entering that query has already moved past category awareness. They are in buying mode.
Targeting broad category terms has two compounding problems:
The domain authority required to rank for "roofing contractor" is orders of magnitude higher than what is required to rank for "metal roof installation San Antonio TX." You are competing with HomeAdvisor, Angi, Yelp, and every national directory simultaneously, rather than with the 5 to 8 local businesses in your actual market.
Broad keywords attract early-stage research traffic. These visitors are not ready to call. Service + city keyword visitors are in the final evaluation stage. They have already decided they need the service — they are deciding which contractor to call. Conversion rates are 3 to 5x higher from specific queries.
The Keyword Architecture That Actually Produces Leads
For a roofing company in Dallas, the keyword architecture looks like this — not "roofing Dallas," but a structured map of buyer intent:
Replacement tier: "roof replacement cost Dallas", "asphalt shingle replacement Dallas", "metal roof installation Dallas TX"
Inspection tier: "roof inspection Dallas TX", "free roof estimate Dallas", "storm damage roof inspection Dallas"
Geographic spread: Repeat the above for every city, suburb, and neighborhood within your service radius where search volume justifies a dedicated page.
Each of these groups maps to a different page, with a different conversion focus, a different offer, and a different CTA. When this architecture is paired with properly structured Google Ads campaigns using the same keyword segmentation, the result is full-funnel coverage across every buyer stage in your market — exactly what The Booked-Job Pipeline delivers.
See our Local SEO for Roofing Companies page for the specific keyword architecture we build for roofing contractors.
No Internal Linking Connecting Service Pages to Location Signals
Internal linking is the mechanism by which authority flows from high-trust pages to the pages you want to rank. Most home service contractor websites have no internal linking strategy. The homepage links to the service pages. The service pages link to a contact form. Nothing else links to anything.
This is a topical isolation problem. Each page sits alone, without the contextual network of references that tells Google: this page is part of a coherent, authoritative coverage of this topic in this location.
What Internal Linking Actually Does for Local SEO
Think of your website as a map of neighborhoods. The homepage is the city center. High-authority pages like your main Local SEO page or a popular blog post are major arterials. Your service-area pages are the neighborhoods. Internal links are the roads between them.
A neighborhood with no roads in or out is not a destination — it is an isolated lot. Google's crawlers can find it, but the authority that flows through your site from external links, from your homepage, from your most linked content, never reaches it.
2. Blog posts and resource articles never link to commercial service pages. Educational content generates traffic and sometimes earns backlinks — but none of that authority flows to the pages you want to convert from.
3. No cross-linking between related service pages. A roofing company's "roof replacement" page never links to its "roof inspection" page. These pages should be reinforcing each other's relevance constantly.
The Internal Linking Architecture That Works
The internal linking work is ongoing. Every new page published creates new internal linking opportunities. Every case study earns a set of contextual links to the service it demonstrates. This is one of the compounding advantages of a structured content architecture over a flat site — the more you publish, the stronger the existing pages become.
What the Fix Actually Looks Like — and Where to Start
Six structural problems, but not six separate campaigns. Most of these failures share a common root: the absence of a coherent system. Here is the correct remediation sequence.
Fix NAP and Citations First (Before Anything Else)
Before you build new pages, run new ads, or pursue new backlinks, fix the foundation. Audit every directory where your business appears. Standardize your exact legal business name, address format, and phone number. Merge or delete duplicate profiles. Remove outdated listings. This work is invisible but it determines whether every other effort compounds or stagnates.
Timeline to Google trust signal improvement: 4 to 8 weeks after corrections propagate through directories.
Complete and Activate Your Google Business Profile
Correct your primary category. Populate your service menu completely. Upload 20 or more recent, geotagged photos. Set your service area to cover every city where you genuinely work. Begin publishing Google Posts twice per month — job completions, seasonal offers, or short educational tips. Start your review velocity system immediately.
Timeline to ranking improvement: first map pack movement visible within 6 to 10 weeks of consistent profile activity.
Build Your Intent Cluster Architecture
Map every service you offer against every intent stage and every location in your service area. Build dedicated landing pages for each combination — not walls of text, but focused pages with a single intent, single offer, and single conversion action. This is the work that replaces the flat city-page model with a structure that actually earns rankings.
Timeline to organic ranking movement: 60 to 90 days for less competitive terms, 3 to 6 months for primary service + city combinations in medium-competition markets.
Build Your Internal Linking Architecture
As new pages go live, connect them immediately into the existing site structure. Link from your homepage. Link from related service pages. Link from every blog post and resource page that is topically adjacent. Build the roads between the neighborhoods. Every link compounds the authority of the pages it connects to.
Timeline to impact: immediate crawl acceleration, ranking uplift on linked pages within 30 to 60 days.
Pair Local SEO with Google Ads During the Ranking Period
Local SEO takes time. Google Ads produces leads from day one. The contractors who grow fastest are the ones who use paid traffic to generate revenue while the organic architecture builds. The two channels reinforce each other — consistent branded search activity from ads strengthens organic trust signals. This is the only rational approach to local market domination for a service business.
Questions Contractors Ask Before Starting Local SEO
Five years building Local SEO and paid acquisition systems exclusively for home service contractors across the USA. The diagnostics in this article come directly from audits conducted across roofing, HVAC, solar, and plumbing businesses in every major US market. Read more about Web Pinnacles.