Business
Residential HVAC contractor, 11 techs
Market
Raleigh & Wake County, NC
Services Used
Local SEO, Technical SEO, GBP Management, Content
Engagement
6 months, $3,500/mo retainer

HVAC is one of the most competitive local search categories in the Triangle. Demand spikes are weather-driven, the jobs are high-ticket, and the top three Google Maps results take the overwhelming majority of the calls. This contractor had a solid reputation and a full crew — and a website that generated 41 organic leads a month, most of them in July and January. Six months later the site was producing 169 a month, and the seasonal cliff had flattened out.

The short version
• The site had one 340-word page covering six services. We replaced it with six dedicated service pages and nine service-area pages.
• The Google Business Profile was set to the wrong primary category. Fixing that one field moved more rankings than any content we wrote.
• A text-message review request sent within two hours of job completion took the profile from 23 reviews to 118.

The Problem

The owner's read was that they needed "more Google ads." The actual read was that they were invisible for every commercial search except their own brand name. When we pulled the data, the picture was consistent: strong offline reputation, near-zero digital demand capture, and heavy dependence on repeat customers and referrals.

The revenue impact was real. At a 34% close rate and a blended job value of roughly $780, 41 leads a month works out to about $10,900 in monthly organic-sourced revenue — for a company running eleven technicians. Their trucks had capacity that their marketing was not filling.

What the Audit Found

Before touching anything we ran a full technical, local, and content audit. Six issues accounted for essentially all of the underperformance:

  • One page for six services. A single 340-word "Services" page covered AC repair, AC installation, heating repair, heat pumps, duct work, and maintenance plans. Google had nothing specific to rank for any of them.
  • Wrong GBP primary category. The profile was set to "Contractor" rather than "HVAC Contractor." Primary category is consistently the single strongest local pack ranking signal, and this one was wrong from day one.
  • A dead Google Business Profile. Nine photos, 23 reviews, zero posts in fourteen months.
  • Mobile performance failure. Largest Contentful Paint of 4.8 seconds on mobile — on a site where the emergency-repair traffic is almost entirely phone-based and in a hurry.
  • Content aimed at the wrong audience. Of the 23 published blog posts, 14 targeted national informational queries ("how does a heat pump work") with no local or commercial intent.
  • Citation inconsistency. 14 of 32 directory listings carried a stale suite number from a previous office.

What We Actually Did

Month 1 — Foundation

Technical cleanup first, because everything downstream compounds on it. We compressed and lazy-loaded the image library, deferred four render-blocking scripts, and moved the site to a leaner template. Mobile LCP went from 4.8 seconds to 1.9. We added LocalBusiness and Service schema, fixed the 14 inconsistent citations, and corrected the GBP primary category.

Months 1–2 — Service Page Architecture

We built six dedicated service pages, each 1,200–1,800 words, each with its own schema, pricing guidance, real project photos, and a clear path to booking. This is unglamorous work and it is usually where the largest share of the gain comes from. You cannot rank for "ac repair raleigh" with a paragraph on a combined services page.

Months 2–3 — Service Area Coverage

Nine service-area pages: Cary, Apex, Holly Springs, Wake Forest, Garner, Morrisville, Knightdale, Fuquay-Varina, and Durham. The rule we hold to here is that a location page has to earn its existence — local project photos, named neighborhoods, actual response-time commitments for that area, reviews from customers in that ZIP. Template pages with the city name swapped are the fastest way to get a site filtered out of local results.

Months 2–6 — The Google Business Profile Program

Weekly GBP posts, a photo program that took the profile from 9 to 140 original images, and a review engine built on a single behavior change: the tech sends a review link by text before leaving the driveway. Same-day text requests convert dramatically better than the follow-up email most companies send three days later. Reviews went from 23 to 118 at a 4.9 average, and every one of them got a response within 24 hours.

Months 3–6 — Commercial Content

Fourteen articles, all targeting queries with buying intent and local modifiers — cost guides, repair-versus-replace decision content, seasonal maintenance timing for the Triangle climate. Each one linked into the relevant service page.

Want to see what your audit would turn up?

We'll run the same technical, local, and content review on your site — no cost, no commitment.

Book a Call

The Results

MetricBaselineMonth 6Change
Organic leads / month41169+312%
Organic sessions / month2,4108,930+270%
Keywords ranking top 31196+773%
Calls from GBP / month88312+255%
Google reviews23118+413%
Mobile LCP4.8s1.9s−60%

At the same 34% close rate and $780 blended job value, month six's 169 leads represent roughly $44,700 in monthly organic-sourced revenue against $10,900 at baseline — about $33,800 a month in incremental revenue on a $3,500 retainer. Cost per organic lead landed at $21.

What Actually Moved the Needle

Three things, in order of impact.

The category fix. One dropdown field, changed in about fifteen seconds, produced more local pack movement in the first three weeks than any content asset we built over six months. It is worth checking yours before you spend a dollar on anything else.

Service pages that match how people search. Nobody searches "hvac services." They search "ac not blowing cold raleigh" and "heat pump replacement cost cary." Page architecture that mirrors the actual query set does most of the work.

Review velocity, not review count. Google reads freshness. A business that adds eight reviews a month consistently outranks a business with a larger but stagnant total. The text-before-you-leave-the-driveway habit is the cheapest ranking lever in local SEO and almost nobody does it.

Who This Applies To

This pattern holds for most residential service businesses — plumbing, electrical, roofing, pest control, garage doors, landscaping. The common profile: good offline reputation, real capacity to take more work, a website built years ago that nobody has touched since, and a Google Business Profile that was claimed once and forgotten. If that describes you, the ceiling here is usually higher than the owner expects.

For the underlying playbook, see our Raleigh local SEO guide and the Google Business Profile checklist. If you'd rather have it executed for you, that's our local SEO service.

Let's find out what your site is leaving on the table.

A 30-minute call, a look at your actual numbers, and a straight answer on whether we can help.

Book a Call

About this case study. This is an illustrative scenario built to show how an Inside Leads engagement is structured and what a business in this category can realistically target. The client is not a real named company and the figures are modeled, not audited results from a specific account. Your own results will depend on your market, competition, budget, and how fast you can execute.