A homeowner does not want an HVAC company. They want the house to be 70 degrees again, and they want it today. That one fact shapes every piece of HVAC marketing that works: the job is to be the shop they find and the shop that answers in the three minutes between their system dying and their next call. Everything else, the wraps, the postcards, the agency retainers, is in service of that moment or it's a waste.
This guide walks the channels in the order a two- or three-truck shop should build them, with example numbers where numbers help. It's long because the subject is. Skip to the section you need.
Where HVAC calls actually come from
Ask a hundred owners where their jobs come from and you'll hear the same four answers in roughly the same order. Repeat customers and the people they refer. Google, meaning the map pack, the organic results and the ads above them. Whatever paid lead source the shop is running this year. And a long tail of everything else: the truck, the yard signs, a realtor who likes you, the church bulletin.
The order tells you where the money is. A shop with ten years of customers and a maintenance plan has a base that doesn't need to be bought; a new shop has to buy almost every job until the base exists. Most of the advice below is about the middle, the Google layer, where a stranger with a broken system turns into a booked call. That's also where the agencies live, because it's the part you can buy.
One thing to settle before you spend anything. Demand for HVAC is created by weather and by equipment aging out, not by marketing. Nobody's ad convinces a homeowner to replace a working furnace in April. Marketing decides which shop gets the call when the need shows up, so the question is never "how do I make people want HVAC." It's "when a system quits on my side of town, am I the one they find and the one who picks up."
Start with the leads you already lose
Before the first ad dollar, fix the phone. This is the least glamorous section and the one that pays fastest.
Here's the math nobody runs. Say your Google Business Profile, your ads and your referrals together produce 120 calls a month. Say a third of those come in while every person in the company is on a job, driving, or asleep. That's 40 calls hitting voicemail. In the trades, a caller with a dead system who hits voicemail does not leave a message and wait. They call the next listing. If even half of those 40 would have booked, you're losing 20 jobs a month that you already paid to generate.
That's the leak. It makes every other channel look worse than it is, because you measure cost per lead when the lead arrived and nobody answered.
Three ways to plug it, from cheap to complete:
- Call forwarding to a second person. The owner's spouse, a part-time office person, a tech on a rotation. It works until that person is also busy, which in July is always.
- A missed-call text-back. When a call goes unanswered, the caller gets a text within seconds: "Sorry we missed you, this is Dave's Heating and Air. Is this a no-cool? Reply here and we'll get you a window." A surprising share of callers reply, because texting is less effort than calling the next company. Ours is here; it's one text per missed call and it never texts a number that hasn't contacted you first.
- Something that answers. An answering service with a script, or an AI receptionist that reads your calendar and books the window on the call. The difference between the two is whether the caller hangs up with a time or with a promise that someone will call back.
Whichever you pick, do it before the ad budget. A shop that answers 95 percent of its calls can outspend a shop answering 65 percent on half the money.
Google Business Profile, the free listing that does most of the work
When someone searches "ac repair near me," the three listings under the map get most of the calls on that page. Those listings come from Google Business Profiles, and the profile is free. It's the highest-return hour of marketing work an HVAC owner will ever do, and most profiles in most markets are half finished.
Start by claiming or creating yours at Google's own Business Profile page. Then go through it like a customer would:
- Primary category: HVAC contractor. Add the secondary categories you actually do (furnace repair service, air conditioning repair service, heating contractor). Don't add plumbing because you once fixed a water heater.
- Service area, not just an address. If you run from a shop or your house, hide the address and list the towns you serve. Google shows service-area businesses in those towns' map results.
- Hours that match reality, including after hours. If you take emergency calls at night, say so in the hours and in the description. A profile that says "closed" at 9pm loses the no-heat call to the one that says "open 24 hours." Only say it if you'll answer.
- Photos of your actual trucks, techs and work. Phone pictures of a clean install beat stock photos every time. Add a few a month. Profiles with recent photos get more taps; Google says so in its own help pages, and you'll see it in your insights.
- The description, written for a homeowner. What you fix, where, how fast. "Same-day no-cool calls in Mesa, Gilbert and Chandler, family owned since 2009" does more than a paragraph about your commitment to excellence.
- Products and services, with prices where you can. "Diagnostic visit, $89" is the kind of line a nervous homeowner is looking for.
- Questions and answers. Seed it with the questions you get on the phone every week and answer them yourself.
Then keep it alive. Reply to reviews (next section), post a short update when you have one, update hours for holidays. A profile that moved last month is treated differently from one that's been sitting since 2021.
Reviews, and how to get them without begging
Reviews are the second half of the map pack. Two shops in the same town with the same categories: the one with 340 reviews at 4.8 gets the call over the one with 41 at 4.6, almost regardless of what either says about itself.
The shops with hundreds of reviews don't have happier customers. They have a habit. The habit is this: every completed job gets one ask, the same day, by text, with the link that opens the review box directly. The tech says "you'll get a text from us with a link, it would help us a lot," and then the text arrives before the truck is out of the driveway. Google's tips for getting more reviews say the same thing in their words: make it easy, ask consistently, reply to what comes in.
A few rules that keep you out of trouble and keep the reviews useful:
- Ask everyone, not just the happy ones. Picking who gets the link is called review gating, and it's banned under the FTC's consumer reviews rule (16 CFR part 465, in force since October 2024). It also looks fake. A 4.8 with a few honest 3s reads as real.
- Never pay for a review, and never let an agency "generate" them. The same rule, bigger fines, and Google removes them in batches when it catches on.
- One ask per job, never after an estimate. Someone who just got a $9,000 replacement estimate is not in a reviewing mood. Ask after the work is done and the house is cool.
- Reply to every review in your own voice, within a day or two. The reply is read by the next hundred people who look you up, not by the reviewer. A reply to a bad review that says what happened and what you did about it earns more trust than ten five-stars.
If you use General Dispatch, the ask is the review-request text that goes out once per completed job, with your Google review link, inside quiet hours and consent rules, and never after an estimate. Replies in your voice come from the same place once your profile is connected. If you don't, set a daily reminder and do it by hand. The habit is what matters, not the tool.
Local Services Ads, paying per lead instead of per click
Local Services Ads are the "Google Guaranteed" boxes with the green checkmark at the very top of the results for searches like "furnace repair." They work differently from regular ads: you pay when a customer calls or messages you through the ad, not when they click, and Google sets the price per lead by market and job type.
To run them you pass Google's screening: a background check on the business and owner, your state HVAC license on file, and proof of general liability insurance. Then you set a weekly budget and the service areas and job types you want. Google's getting started page walks the application.
What owners get wrong about LSA, in order:
- Not answering. Google ranks LSA listings partly on how fast and how often you answer the calls it sends. A shop that misses leads gets shown less, and still gets charged for the ones it missed. Every point in the phone section above applies double here.
- Not disputing bad leads. A spam call, a job seeker, a request for a service you don't offer, someone outside your area: Google will credit those back, but only if you mark them within the window. A shop that never disputes pays for every wrong number.
- Turning it off in the slow season. Rankings build on history. The shop that runs a small budget through March and October is ahead in July of the one that starts fresh in June.
- Reading the Google number instead of the real one. Google tells you cost per lead. You need cost per booked job. If a $60 lead books one time in three, that's a $180 job acquisition cost, which is fine for a $9,000 replacement and terrible for a $129 tune-up. Run that math per job type before you decide LSA is cheap or expensive.
Example numbers, to make the point (your market will differ): a shop budgets $400 a week, gets 9 leads at an average of $45, books 5 of them, and 2 of the 5 become repairs over $600. That's $400 for two real repairs plus three small calls, before the maintenance plans you sell on the truck. Most shops that run that math keep LSA on year round.
Google search ads when Local Services Ads aren't enough
Regular Google Ads, the text ads under the LSA boxes, cost per click and need more management. They're worth it in two situations: when LSA caps out in your market and you still have trucks to fill, and for the emergency terms where the searcher wants a phone number right now.
Keep the account small and specific:
- Emergency terms only, to start. "ac not cooling," "no heat," "furnace not turning on," "emergency ac repair [your town]." These searchers convert. "hvac" alone pulls students, job seekers and people pricing equipment online.
- Negative keywords from day one. jobs, salary, school, training, certification, parts, DIY, how to. Half of a new HVAC account's spend goes to those words until someone adds the list.
- Call-focused ads on mobile. Most emergency searches are on a phone in a hot kitchen. Make the phone number the main action.
- A landing page that's not your homepage. One page, your town in the headline, a phone number at the top, a two-field form, three reviews, the Google Guaranteed badge if you have it. Nothing to scroll.
- Track booked jobs, not clicks. Tell Google when a lead became a booked job and it will bid toward the people who book. Google's tools can only see the click; you have to feed back what happened after.
Budget-wise, a shop that spends $1,500 a month on search ads should expect it to be harder to read than LSA and should give it ninety days before judging. If you can't name the person checking the account weekly, don't run it. An unwatched Google Ads account is the most expensive thing in HVAC marketing.
Your website has three jobs
A phone number the caller can tap. A form that reaches a person in minutes. And proof: reviews, license number, photos of real work, the towns you serve. Everything else is decoration.
Most HVAC websites fail on speed and on the phone number: a six-megabyte video of a smiling model in a clean uniform, the number buried in a menu, the form routed to an inbox nobody reads on weekends. The homeowner on a phone with a dead AC leaves in four seconds. What a good one does:
- Loads fast on a phone, with the number and a "Text us" button in the top bar on every page.
- Has a page per service and a page per town you serve, written in plain words, each with a phone number, because those are the pages Google ranks for "furnace repair Chandler."
- Shows your real license number, insurance, and the Google review count, pulled live if you can.
- Answers the form in minutes, not days. A form that triggers a text back from a person, or from Jack, keeps the lead that would have gone cold overnight.
- Has chat that actually books, not a bot that collects an email and says someone will be in touch.
We build and host websites for the businesses on General Dispatch, written from the business's own services and area, wired to the lead form and chat so a 9pm visitor gets the same dispatcher a 9pm caller does. If you already have a site you like, keep it and fix the phone number and the form. Those two changes are most of the value.
HVAC SEO in one section
HVAC SEO is ranking for "ac repair [town]" and the hundred searches like it without paying per click. It's the slowest channel here and, for an established shop, the cheapest per job over time. It's also where the most money gets wasted on retainers that produce reports instead of calls.
The honest short version: SEO for a local HVAC shop is the Business Profile and reviews sections above, plus a site with a real page for each service and each town, plus consistent listings on the directories that matter (Yelp, the BBB, Angi, Nextdoor, the local chamber), plus a few local links from real organizations (the Little League you sponsor, the supplier that lists its dealers, the local news story about the heat wave). Do those well for a year and you'll be in the map pack for your core towns. There is no trick beyond that, and anyone selling one is selling something else.
A longer guide to HVAC SEO is coming; it deserves its own page. Until then, if you're paying someone for SEO, ask them which pages they've published this month and which town searches you rank in now versus six months ago. Those are the only two questions that matter.
Maintenance agreements are marketing that pays you
The best HVAC marketing isn't aimed at strangers. It's the maintenance plan: a customer pays a monthly or yearly fee for two tune-ups, priority scheduling and a discount on repairs, and in return you have a customer who calls you first, forever, and whose system you see twice a year right before it fails.
The marketing value is in three places. Plan customers don't shop around when the system dies; the call goes to you. The spring and fall tune-up visits fill the trucks in the months when nobody's system is breaking. And a tech standing in front of a twelve-year-old condenser in April, on a planned visit, is the best replacement salesperson you'll ever have.
Sell it on every service call, in the truck, with a one-page agreement the customer can read. Our free HVAC maintenance agreement template is the plain-English version with the pricing math worked out; print it or send it as a signable link. Then make the renewal and the tune-up reminders automatic, because a plan nobody reminds the customer about is a refund waiting to happen.
The slow season playbook
Every HVAC shop has the same two problems: too many calls in July and January, not enough in April and October. Marketing in the slow months isn't about finding strangers. It's about your own customer list.
What works, in the order to try it:
- Tune-up texts to past customers, with consent, in March and September. "Hi Maria, it's Dave's Heating and Air. We're booking spring AC tune-ups in Gilbert the week of the 14th, $89, want a window?" One text, one reply, a booked visit. This alone fills a truck for two weeks for shops with a few years of customers.
- Plan renewals and plan sales to anyone who had a repair over $400 last year. They've already felt the pain of a breakdown.
- Indoor air quality, duct cleaning and thermostat upgrades as a planned-visit upsell, not as a mailer. Nobody searches for duct cleaning; plenty of people say yes to a tech who shows them the filter.
- Financing offers on replacements for the systems your techs flagged as "watch this one" last summer. Spring is when the homeowner can actually schedule a two-day install.
- Realtors and property managers. A home inspection that flags an aging furnace creates a buyer who needs a quote this week. Being the shop two realtors text costs you a lunch and a fast quote turnaround.
What doesn't work: slashing the diagnostic fee and advertising it to strangers. You'll get price shoppers who leave the moment the repair is quoted, and you'll train your market to wait for the coupon.
The point of all this is the base. A shop with 800 past customers and a working texting setup has a slow-season marketing plan that costs nothing per lead. A shop that never collected numbers or consent has to buy every April job. Collect the number on every call and ask for texting permission when you book; that permission is the asset.
Referrals, trucks, and the street you just worked on
The channels that don't scale still matter, and for a small shop they're often half the business.
The truck wrap is a billboard that parks in your customers' driveways. Phone number large, trade clear, area named, no clever slogan. A wrap on a dirty truck is an ad for your competitor.
The street after a job. You just replaced a system on a cul-de-sac of twelve houses built the same year by the same builder, so every one has the same furnace at the same age. A door hanger on the other eleven that says "we just replaced the Smiths' system at number 14, here's what it cost, here's a tune-up offer for the street" beats any postcard, because it's specific and it's true.
Referral thank-yous. A $50 credit or a gift card with a handwritten note to the customer who sent you a job, mentioned in the review-request text so people know it exists.
Relationships that send work. Home inspectors, realtors, property managers, a plumber who doesn't do HVAC. Send them work first. It comes back.
None of these show up in a dashboard, so agencies don't sell them. For a shop under five trucks they're usually the cheapest jobs in the book.
Should you hire an HVAC marketing agency?
Sometimes. The right agency for a small HVAC shop runs your Business Profile, your LSA and search ads, and your website, reports in booked jobs, and costs less than the jobs it produces. The wrong one charges a retainer for "brand awareness," sends a monthly PDF about impressions, and owns your assets so you can't leave.
Questions to ask before signing:
- Who owns the Google Business Profile, the domain, the website, and the ad accounts? The answer must be you, with the agency as a manager. If they want the accounts in their name, walk.
- What do you report, and how do you know a lead became a job? If the answer is clicks and impressions, they can't tell you what you're paying per job. The good ones ask for access to your booking records or set up call tracking you can hear.
- How many HVAC shops in my market do you work with? They can't rank two shops in the same town for the same searches. One should be the answer.
- What will you do in the first 30 days? You want to hear: fix the profile, set up review asks, launch or clean up LSA, fix the website's phone and form. Not: discovery, strategy, brand workshop.
- What's the out? Month to month after a short setup period is fair. Twelve-month contracts with an auto-renew are a sign the work doesn't keep customers on its own.
A fair price for that scope for a small shop lands somewhere in the hundreds a month for management plus the ad spend itself, which you pay to Google directly from your own card. Agencies that mark up the spend or hide it inside the retainer are hiding the one number you need.
One more thing. A lot of good agencies run their clients on General Dispatch, under their own brand, so the leads they generate get answered and booked and the agency can show cost per booked job instead of cost per click. If your agency can't tell you what happened to a lead after the phone rang, that's the gap, and it's fixable without changing agencies. The agency page explains how that works.
A budget that fits a two-truck shop
A rule of thumb a lot of owners use is to spend somewhere between 5 and 10 percent of revenue on marketing while growing, and less once the customer base carries the slow months. Treat that as a starting line, not data. The better way to set it is bottom-up: what's a job worth, what does a lead cost, how many trucks do you need to fill.
Example, with made-up round numbers. A shop does $900,000 a year; the average repair is $650, the average replacement $9,500, and one call in six becomes a replacement within a year, so a booked call is worth about $2,000 in first-year revenue when you blend them. If LSA delivers booked calls at $120 each after the duds and search ads at $200, twenty extra booked calls a month costs about $3,000, 4 percent of monthly revenue, and adds roughly $40,000 of first-year revenue. Most owners take that trade every month; the limit is the truck, not the budget.
The budget also includes the unglamorous line: whatever it costs to answer the phone every time. That's the thing that makes the rest count.
Measure cost per booked job, or don't bother measuring
Every channel in this guide reports its own number. Google tells you clicks and leads. The agency tells you impressions and rankings. Your tech tells you "the Smiths found us on Google," which could mean five different things.
The one number that compares all of them is cost per booked job, by channel, by month. To get it you need three things to connect: where each new contact came from (the ad, the search, the referral), whether that contact became a booked visit, and whether the visit became a completed job with a dollar figure. Spreadsheet owners do this by asking "how did you hear about us" on every call and writing it down. It's imperfect and it's far better than nothing.
If you're on General Dispatch, the ads readout does this for the Google channels: it pulls the LSA leads and campaign spend, matches them to the contact that called or messaged, and shows spend, leads, booked jobs, completed jobs and cost per booked job per campaign, from your records rather than Google's estimate. It also tells Google when a lead became a job, which is what lets the ads learn. The rest of this guide, the wrap and the door hangers and the realtors, you still measure by asking.
Then do the obvious thing with the number. Put more into the channel with the lowest cost per booked job until it stops dropping. Fix or cut the one with the highest. Review it once a month, on the same day, for a year, and you'll know more about your marketing than most agencies know about theirs.
Where to start this week
Find out how many calls you're missing, and fix that first. Then finish the Business Profile and send the first review-request text on Monday's completed job. Apply for Local Services Ads while you do the rest, since the screening takes a couple of weeks, and put the maintenance agreement on every truck. The ads, the website and the agency decision come after, and they'll all work better because the phone is answered and the reviews are real.