You’ve got thirty city pages that read the same, a trickle of traffic, and no idea which towns are producing jobs. Someone sold you “a page for every town,” and you suspect it’s filler. You’re right to be suspicious.
A workable city page strategy for HVAC is smaller and more demanding than that. By the end of these steps you’ll have a short list of cities that deserve a page, a repeatable structure for each one, and a way to tell whether they’re producing booked jobs.
Before you start, gather your service area list, access to your Google Business Profile (GBP) and Search Console, and job records from your CRM or invoices that show where revenue actually comes from.
Step 1: Pick the cities that deserve a page (and skip the rest)
Start with your own history, not a population chart. Export completed jobs from your CRM or invoicing system and rank towns and zip codes by booked revenue and margin. A town with 8,000 residents that sends you steady replacement jobs outranks a city of 200,000 where you’ve done three tune-ups.
Then apply one decision rule: a city earns a page only if you can show real local proof there. That means completed jobs, a crew based nearby, or reviews from customers in that town. A city you merely drive through doesn’t qualify.
Split what’s left into two groups:
- Core cities: inside your dispatch sweet spot, the drive time where you can answer an emergency call profitably. These get their own pages.
- Fringe towns: places you’ll serve but don’t dominate. Group them on a single service areas page that names each town and links to your core pages.
The common mistake is feeding a radius tool your ZIP code and publishing forty pages. Pages that differ only by town name, created in bulk to capture searches, are what Google’s spam policies target as scaled content abuse, and the doorway abuse policy covers pages built to funnel visitors from many similar queries to the same place. As of 2026, those policies are published on Google Search Central, and you should read the current wording yourself before you build anything at volume. The practical risk goes beyond a penalty. Thin pages simply don’t rank or convert, and they dilute the pages that could.
For most HVAC companies, the list that survives this step is somewhere around three to eight cities. That’s the point.
Step 2: Match each page to how HVAC customers actually search
HVAC searches fall into two different mindsets. Emergency intent sounds like “AC repair,” “no heat,” or “furnace not working.” The person is uncomfortable, probably calling the first credible result. Planned intent sounds like “AC replacement,” “furnace installation,” “tune-up,” or “duct work,” and that person compares, reads reviews, and wants financing details.
Each city page should lead with one primary intent. Usually that’s repair, because it produces the fastest calls, with a secondary block on replacement for homeowners whose system is failing for good.
Check the real phrasing
Don’t guess modifiers. Open Search Console, filter queries by the town name, and see what people typed. Then check the search terms report in your GBP performance data. You’ll often find that one market says “heating repair” while the next says “furnace repair,” or that nobody uses “near me” with the town name at all. Use the wording your market actually uses in headings and body copy.
Decide what leads by season and climate
Cooling demand peaks in summer and heating demand in winter, but the balance varies by climate. A town in a hot, humid region may be an AC-first page year-round, while a northern town leads with heating and carries AC as the secondary block. Make that call city by city, using your own job mix from Step 1.
One page or two
Default to one strong page per city until it ranks. Only split out a separate replacement page when that city shows enough replacement search volume in Search Console and you have enough local proof to make a second page genuinely different. Two thin pages in one town compete with each other and help neither.
Step 3: Build the page around proof that only your business has
This is where most city pages fail and where yours can win. A competitor can copy your headline in five minutes. They can’t copy your jobs.
Work through these local elements for each page:
- Neighborhoods and streets you’ve served. Name the real ones, with the kind of work you did there.
- Housing stock and what it means for HVAC. Older construction may have undersized or leaky ductwork, no space for modern equipment, or no ducts at all. Say what’s typical in that town, whether heat pumps or furnaces are the norm locally, and how humidity affects equipment and indoor air.
- Permits and rebates. Permit rules and utility rebates differ by municipality and utility, and they change. Check the city’s building department and the local utility’s current program before you write a word, and recheck periodically. If you can’t confirm it, leave it out.
Then add the real assets. Use photos from actual jobs in that city, not stock images. Name your technicians. Pull review excerpts only from genuine customers in that town, with their permission to display the name if you use one. Show your license number and proof of insurance.
Licensing requirements vary by state and sometimes by city, so confirm what applies to you as of 2026 and display it where visitors can see it. Add your approach to upfront pricing, and your financing options if you offer them. Replacement buyers look for this before they call.
The find-and-replace test: copy the page, swap in a different town name, and read it again. If it still makes sense, the page fails. Every city page should contain at least a few sentences that would be false if you moved them to another town.
Step 4: Make the page convert phone calls first
Between 40% and 70% of local service leads arrive by phone. For HVAC, where a dead AC in July isn’t something people fill out forms about, that skews toward the high end. So the number and click-to-call button come before any form.
Put these above the fold, visible without scrolling on a phone:
- The service and city in the headline, such as “AC Repair in [Town].”
- A tappable phone number.
- Hours, or a clear statement of emergency availability if you offer it.
- Your license and review badges.
The mistake to avoid is a long introductory paragraph with the number buried below it, or a form-only page for repair searches. Someone with no cooling will not wait for a callback email.
Set up tracking before you publish
You can’t judge a city on traffic, so set up tracking per page. Use a call tracking number, or dynamic number insertion if your platform supports it, so each page’s calls are attributed. Turn on call recording, and have whoever answers phones tag each call as booked, missed, or not a fit. Without that tag you’ll only know calls came in, not whether they became jobs.
Check that it worked by calling each tracked number yourself, then confirming the call shows up in your reporting with the right page attached. Do this on a phone, not just a desktop preview.
Step 5: Connect each page to your Google Business Profile and local signals
The Map Pack takes roughly 42% of local clicks, so city pages support your profile; they don’t replace it. For many “AC repair” searches, the Map Pack is what the customer sees first, and your page often earns the click after they’ve seen your reviews there.
Get the GBP basics right
Only a location with a real, staffed address qualifies for its own profile. If you run out of one shop and dispatch to many towns, you’re a service-area business: set your service areas in the profile and hide your address if customers don’t visit. Don’t create profiles for towns where you have no staffed location, and avoid virtual offices or mail drops. Google’s guidelines on representing your business prohibit that, and suspended profiles are painful to recover. Read the current guidelines before adding or editing any location, since the wording gets updated.
Point the website field in your profile at the most relevant page. For a single-location company that’s usually the homepage or the page for the city where the profile is based. Use GBP posts and photos from real jobs, naming the city where it’s natural.
Link the pages together
No city page should sit orphaned. Build one service areas page that lists your core cities, links to each city page, and links onward to your main service pages. Each city page should link back to that hub and to the relevant service pages. This gives both visitors and search engines a clear path.
For broader context on how we approach this trade, see our HVAC industry resources at [LINK CHECK: HVAC industry hub under /industries/, confirm slug before linking].
Step 6: Publish in small batches and measure booked jobs per city
Launch your top three to five cities first. This lets you compare which pages work before you copy the pattern, and it keeps a flawed template from being replicated across twenty pages.
For each page, track:
- Total calls
- Qualified calls
- Booked jobs
- Revenue from those jobs
- Search Console impressions for the city query
Set expectations honestly. Early signals, such as impressions and indexing, usually show within a 30 to 90 day ramp. Local SEO generally takes 12 months or more to reach a cost per lead in the $7 to $15 range, so judge the long game on that timeline rather than week-three traffic.
Decision rules at 90 days
- Impressions but no calls: the page is being found but not trusted. Improve the above-the-fold section, add more local proof, and check the phone tracking.
- Neither impressions nor calls: consolidate it into the service areas page or a stronger neighboring city page.
- Booked jobs: expand it with more local detail, then use it as the model for the next batch.
Optional paid pairing
City pages also work as Google Ads landing pages. Home services Google Ads cost per lead runs about $18 to $35, so a page that converts calls well matters even more when each click costs money. Compare organic and paid call quality by city, using your booked-job tags, not just call counts.
Review the numbers every quarter and cut what does nothing
Once the first batch is live, put a recurring review on the calendar. Every quarter, pull calls, booked jobs, and revenue by city, and compare them against the effort each page needs. Prune pages that stay empty, update the ones where permits, rebates, or pricing have changed, and add a new city only when your job history justifies it.
Spending on marketing overall typically lands around 8 to 12% of revenue for local service businesses, so every page and every dollar should be able to answer for itself in booked work.
Tired of spending money on marketing that doesn’t produce real revenue? We build lead systems that turn traffic into qualified leads and measurable sales growth. If you want to see what this would look like for your business, we’ll walk you through how it works and break down what’s realistic in your market.