Case Study: 290% Organic Growth for HVAC Company | BadassBacklinks
Local SEO Link Building AI SEO / GEO Google Business Profile HVAC & Home Services Houston, TX

How a local HVAC company grew organic leads by 290% in a market dominated by national chains

A family-run air conditioning and heating company in Houston had the skills, the crew, and the customer satisfaction to compete. Online, they were invisible. Here is the full story of how we changed that.

HVAC & Home Services
Houston, TX (Metro Area)
5 months
Local SEO, Link Building, AI SEO
Campaign results at 5 months
290%
Growth in organic search traffic
3.8×
Monthly qualified leads from search
#2
Map pack for primary keyword
41
High-authority backlinks built
54
New verified Google reviews
01 — Background

A solid business with a nearly invisible website

Our client had been operating in Houston for seven years when they came to us. Founded by two brothers, both trained HVAC technicians, the company had built a dependable reputation in Houston’s southwest suburbs. Repeat customers, strong word-of-mouth, and clean Yelp ratings. On paper, a healthy small business.

Online was a different story. Their website was a five-page template built in 2019, untouched meaningfully since. No blog, no location-specific content, no schema markup, and almost no backlinks to speak of. Their Google Business Profile was partly filled in but hadn’t been updated in over a year. They had 21 Google reviews — decent, but nowhere near enough to compete in one of the most saturated HVAC markets in Texas.

Houston is a particularly competitive HVAC market for reasons that go beyond its size. The city’s brutal summer heat means AC repair and installation searches spike dramatically from May through September and every national chain, every private equity-backed home services roll-up, and every established local operator fights for those searches at the same time. ARS Rescue Rooter, One Hour Air Conditioning and Heating, and several well-funded regional operators all had strong digital presences.

Our client had tried running Google Ads independently for two summers. It worked — calls came in — but the cost per lead had crept up to $180-220 per inquiry, and the moment they paused spend, the phone went quiet. They wanted to build something that didn’t require a monthly ad budget just to keep the lights on.

“We were spending $3,000 a month on Google Ads just to keep busy. That’s a lot of money every month, forever. We knew there had to be a better way. We just needed someone to actually show us what to do.”

Co-founder, Houston HVAC company (name withheld at client request)

That framing — ads as a permanent operating cost rather than a growth tool — was the mindset we needed to shift. SEO would not produce calls on day one. But by month three, it was producing calls at a fraction of the cost, and by month five, the organic channel was reliably outperforming everything they had tried before.

02 — The Audit

What we found when we looked under the hood

Before writing a single piece of content or building a single link, we conducted a full technical and competitive audit. The findings shaped every decision that followed.

Technical issues

The site was running on a shared hosting plan with a Time to First Byte of 2.8 seconds. Mobile page speed clocked a 38/100 on Google’s PageSpeed Insights, well below the threshold where Google begins penalising rankings. There were 14 crawl errors, 6 broken internal links, no structured data of any kind, and a sitemap referencing pages that no longer existed.

Content gaps

The client offered AC installation, AC repair, heating installation, heating repair, duct cleaning, and indoor air quality services but had only one page per service, each around 280 words. No FAQ content. No location pages targeting Houston’s many distinct suburbs. Nothing that would allow them to rank for long-tail, high-intent queries that convert best. Searching “AC repair Spring TX” or “HVAC installation Pearland” returned competitors exclusively. Our client wasn’t even in the conversation for searches outside their immediate neighborhood.

Backlink profile

We found 11 referring domains. Three were low-quality business directories, two were Chamber of Commerce listings, and the remaining six were near-zero-authority sources. No editorial links, no industry references, no local media mentions. In a market where top-ranked competitors had 60-150 referring domains from meaningful sources, the client’s authority was essentially non-existent.

Local SEO gaps

The Google Business Profile listed only one service category. The description was generic boilerplate. There were no photos beyond a logo. NAP (Name, Address, Phone) was inconsistent across 9 major directories, with a different suite number on some and a disconnected old phone number on others, actively suppressing their local ranking signals.

Before — Audit Snapshot
  • 0 top-20 rankings for primary keywords
  • Page speed: 38/100 on mobile
  • 11 referring domains, avg DR 12
  • 21 Google reviews (4.4 stars)
  • GBP incomplete, 1 service category
  • No location or suburb pages
  • No schema markup on any page
  • NAP errors in 9 directories
  • No content strategy or blog
After — Month 5 Snapshot
  • Top-5 rankings for 9 target keywords
  • Page speed: 87/100 on mobile
  • 52 referring domains, avg DR 44
  • 75 Google reviews (4.9 stars)
  • GBP fully optimised, #2 map pack
  • 11 suburb location pages live
  • Full schema suite deployed
  • NAP consistent across 62 directories
  • 22 blog posts, 3 ranking in top 10
03 — The Strategy

Where we focused, and why

With the audit in hand, we identified three competitive angles that gave our client a realistic path to meaningful rankings within five months, even against more established competitors.

Angle 1: Own the suburbs

Houston’s metro sprawl is one of the largest in the US. Residents in Katy don’t think of themselves as Houstonians in the way someone in Midtown might. They search for “HVAC Katy TX” or “AC repair Sugar Land” rather than “HVAC Houston.” The big national chains ranked for the broad city terms but had thin-to-no presence on suburb-specific searches. These terms had meaningful search volume and almost no serious competition below position 6. This was the immediate opportunity.

Angle 2: Capture seasonal demand with content

HVAC in Houston is deeply seasonal. Between March and August, search volume for AC-related terms roughly triples. Between October and January, heating queries spike. Most of the client’s competitors had no content targeting these seasonal surges. They were relying on ads or banking on their general service pages. A targeted content strategy around seasonal HVAC issues could capture high-intent informational traffic that converts into bookings.

Angle 3: Win the map pack through reviews

The three businesses in the Houston map pack for “AC repair” had between 28 and 52 reviews — strong, but not insurmountable. More importantly, their review recency was weak. One competitor’s most recent review was 6 weeks old. Google’s local algorithm heavily weights recent reviews. An aggressive review acquisition system, triggered at job completion, could shift map pack position within 90 days.

Strategic insight

In heavily contested local markets, the fastest path to qualified leads is almost never the most-searched keyword. Winning “AC repair Katy TX” three months ahead of “AC repair Houston” generated more revenue per dollar spent than any other single decision in this campaign.

04 — Execution

Month by month: what we actually did

Month 1

Technical foundation and local infrastructure

We migrated the site to a faster hosting environment, cutting TTFB from 2.8s to 0.4s. Fixed all crawl errors, repaired broken links, and submitted an updated sitemap. Implemented full schema markup: LocalBusiness, Service, FAQ, and BreadcrumbList. Rebuilt the Google Business Profile from scratch — 7 service categories, keyword-optimised description, 60 photos of real jobs, Q&A section populated with 14 common customer questions. Cleaned NAP consistency across 62 directories. Unglamorous work, but every subsequent tactic built on this base.

Months 1 to 2

Service pages rewritten, suburb pages launched

All six core service pages were rewritten: longer, better structured, with proper keyword targeting, E-E-A-T signals (technician certifications, years in business, licensing callouts), conversion-focused CTAs, and FAQs at the bottom of each page. Simultaneously, we launched 11 suburb location pages targeting Katy, Sugar Land, Pearland, The Woodlands, Pasadena, Missouri City, Stafford, Friendswood, League City, Spring, and Cypress. Each page was written from scratch with localised references, embedded maps, and suburb-specific service detail — not duplicated templates with the city name swapped out.

Months 2 to 4

Link building: outreach, guest posts, niche edits, digital PR

We started with a competitor gap analysis, identifying 40 referring domains linking to the client’s top-3 local competitors but not to the client. We then prioritised outreach to the highest-DR targets. Over the campaign, we secured 41 referring domains: 18 via guest posting on home improvement, real estate, and Texas lifestyle publications; 11 via niche edits placing the client’s links into relevant existing content on high-traffic sites; 8 via digital PR; and 4 via citation building on niche HVAC and contractor directories. A single digital PR push — a piece about Houston’s HVAC system strain during a record-breaking heatwave — generated 7 editorial links including a mention in a regional business publication.

Month 2 onwards

Review acquisition system

We built an automated workflow: when a job was marked complete in the company’s scheduling software, an SMS went to the customer 3 hours later with a direct Google review link. A follow-up email went 24 hours later if no review was left. The system required zero ongoing effort from the client’s team. In four months, reviews grew from 21 to 75. The average rating moved from 4.4 to 4.9. By month 3, the client had entered the map pack top 3 for two target keywords. By month 5, they held the number 2 map pack position for “AC repair Houston” — a term with over 2,400 monthly searches.

Months 3 to 5

Content marketing and AI SEO

We published 22 blog posts across the campaign, roughly 4 to 5 per month. Topics were tightly mapped to seasonal search demand and long-tail keyword opportunities: “how long does an AC unit last in Texas,” “HVAC maintenance checklist before Houston summer,” “signs your AC capacitor is failing,” “when to repair vs replace your AC system.” Three of these posts ranked in the top 10 within 60 days of publication. Separately, we restructured the site’s content architecture for AI search eligibility — direct-answer paragraphs, HowTo and FAQ schema sitewide, Speakable markup on key pages — and executed an entity establishment campaign targeting the data sources that feed Google Gemini and ChatGPT. By month 5, the client was being referenced by Google’s AI Overview for queries like “how much does HVAC installation cost in Houston.”

05 — Results

Rankings, traffic, and leads: the full picture

Below is the keyword ranking movement across the campaign’s primary targets. Rankings are tracked via third-party tooling and cross-referenced with Google Search Console impression data. “Not ranking” means outside position 100.

Keyword Month 0 Month 3 Month 5
AC repair Houston TX Not ranking Pos. 19 Pos. 4
HVAC installation Houston Not ranking Pos. 24 Pos. 7
air conditioning repair Katy TX Not ranking Pos. 5 Pos. 1
AC repair Sugar Land Not ranking Pos. 6 Pos. 2
emergency AC repair Houston Pos. 74 Pos. 18 Pos. 5
HVAC company The Woodlands TX Not ranking Pos. 4 Pos. 2
heating repair Houston Not ranking Pos. 31 Pos. 8
how long does AC unit last Texas Not ranking Pos. 14 Pos. 3
duct cleaning Houston TX Not ranking Pos. 22 Pos. 6
290%
Organic traffic growth, month 1 vs month 5
3.8×
Monthly organic-sourced qualified leads
$31
Avg. cost per organic lead by month 5
54
New verified Google reviews in 4 months

The business impact went beyond rankings. At the start of the campaign, the client was generating roughly 8 to 11 qualified inbound leads per month from organic search. By month 5, that figure had risen to 31 to 36 per month. With a close rate of around 38% and an average job value of $1,800 across repair, installation, and maintenance calls, this translates to an estimated $20,000 to $25,000 in monthly attributed revenue from organic search alone, compared to roughly $5,500 at baseline.

Critically, their cost per lead from organic dropped to approximately $31 by month 5, against the $190 to $220 per lead they had been paying on Google Ads. The SEO investment was effectively paying for itself several times over each month by that point.

“We turned our Google Ads completely off in month four. I never thought I’d say that. The organic traffic just took over. We’re actually having to manage our capacity now, which is a problem I’m very happy to have.”

Co-founder, Houston HVAC company (name withheld at client request)
06 — Key Learnings

What this campaign taught us about local SEO in competitive markets

Technical SEO is the unglamorous multiplier

Nobody builds a case study around fixing a sitemap. But the truth is that content and links had much less impact before we fixed the crawlability issues. A page that Google cannot efficiently crawl will not rank well regardless of how many links point to it. Fixing page speed alone measurably improved rankings on pages we had not even touched yet, because Google’s crawl budget allocation improved and more of the site was being freshly indexed on a regular basis.

Suburb pages work, but only if they are genuinely different

We have built location pages for dozens of clients. The ones that rank are the ones written as real standalone pages with localised detail, not thin duplicates with the city name swapped out. Every one of the 11 suburb pages in this campaign had a unique introduction referencing local context, a distinct FAQ section, and service copy relevant to that area’s typical property types. Google is very good at identifying templated location content. The extra effort to write real pages was reflected directly in how quickly they ranked.

Reviews have a higher ROI than almost any other local SEO activity

Pound for pound, the automated review request system may have been the single highest-returning action in this entire campaign. It cost essentially nothing to build, required no ongoing effort from the client, and produced 54 new reviews in 4 months. Those reviews moved the map pack position from outside the top 5 to number 2, and the map pack drives a disproportionate share of local service calls. For any local business: if you are not systematically requesting reviews after every completed job, you are leaving significant money on the table.

AI SEO is not a future problem. It is a now problem.

When we began this campaign, AI Overviews and ChatGPT recommendations were a relatively minor share of the client’s inbound traffic. By month 5, it was measurable and growing. More importantly, the entity establishment work we did — schema, data source submissions, brand mentions on the right sites — takes time to take effect. Businesses that start building AI search presence in 2026 will have a durable advantage by 2027 and 2028 that will be genuinely hard for later movers to close. The local service companies that are not thinking about this now are making the same mistake as businesses that ignored Google Maps in 2010.

Compounding is the whole point

Individually, each workstream in this campaign delivered results. Combined, they reinforced each other in ways that accelerated the overall timeline. Better backlinks raised domain authority, which made the suburb pages rank faster. Faster suburb rankings drove more calls. More calls meant more completed jobs. More completed jobs fed the review system. More reviews improved map pack position. A stronger map pack position drove more calls, from people who then became new reviewers. This is what a flywheel looks like in practice, and once it is moving, it is genuinely difficult for competitors to slow down.