Local SEO for Contractors: How to Actually Get Into the Map Pack
The three results above the fold get most of the clicks. Here's what genuinely moves you into them, and which tactics stopped working years ago.
Search "roofer near me" on a phone. Above everything else, you get a map and three business listings. That block is the map pack, and for home services it takes the large majority of the clicks.
Everything below it is fighting over what's left.
Getting into those three spots is not mysterious, but most of what contractors are sold about it is either outdated or flatly wrong. Here is what actually matters.
Your Google Business Profile is the product
The single biggest lever is not your website. It's your Google Business Profile, and most contractors set it up once in 2019 and never touched it again.
What Google weighs, roughly in order:
- Proximity. How close you are to the person searching. You cannot change this, and it is the reason your rankings look different from your truck than from your office.
- Review volume and recency. Not just your total. A steady flow of recent reviews beats 200 reviews from three years ago.
- Category accuracy. Your primary category matters enormously. "Roofing contractor" and "Roof repair service" are different, and picking the wrong primary is a common quiet mistake.
- Completeness. Hours, service areas, photos, services list, attributes. A half-filled profile ranks worse than a complete one.
- Activity. Photos added, questions answered, posts published. It signals the business is alive.
If you do nothing else from this article, get your review flow automated and your categories right.
Reviews: the part everyone underinvests in
Reviews are the cheapest local SEO available and almost nobody works them systematically.
The mistake is asking manually. Someone remembers to ask, sometimes, when the job went especially well. That produces a trickle.
Automate the ask at the moment the job closes out:
- Tech marks the job complete in the CRM
- A text goes out within the hour, while the customer is still standing in a fixed kitchen
- The link goes directly to the review form, not to your homepage
Timing does most of the work. A review request two weeks later gets ignored. One sent while they can still see the finished work gets answered.
Two things to avoid. Never offer anything in exchange for a review — that violates Google's policies and the FTC's rules on endorsements, and it can get your listing suppressed. And never filter, where you only send review requests to customers you think are happy. Google has been explicit that review gating is against their terms.
Service-area pages, done properly
You want a page for each city you actually serve. This is where most contractors get sold something harmful.
The bad version: sixty near-identical pages where only the city name changes. "Roof repair in Round Rock" with the same 400 words as "Roof repair in Pflugerville." This used to work. It stopped working years ago, and now it can actively drag down the rest of your site, because Google reads a pile of near-duplicate pages as a low-quality signal.
The version that works: fewer pages, each one genuinely about that place.
- Jobs you have actually done there, with photos
- Local specifics — the neighborhoods, the common housing stock, the storm that came through last spring
- Real reviews from customers in that area
- Distinct copy, not a find-and-replace of the city name
Eight strong city pages will outperform sixty thin ones. If you cannot write something genuinely specific about a city, that city does not get a page yet.
Speed and mobile are ranking factors and conversion factors
Most of your traffic is on a phone, frequently on cell data, sometimes standing in a yard looking at damage.
A site that takes six seconds to load loses people before they see anything. That hurts twice: Google sees the bounce, and you never had a chance at the job.
Aim for under two seconds on 4G. The usual culprits are enormous unoptimized photos, a page builder loading fifteen scripts, and a chat widget that blocks rendering.
Structured data helps Google understand you
Schema markup is code that tells search engines what your business is, where it works, and what it does. It won't magically rank you, but it helps you show up correctly and become eligible for richer results.
For contractors, the ones worth having are LocalBusiness (with your real service area), Service for each thing you offer, and FAQPage on pages that answer common questions.
What to ignore
A few things that get sold hard and deliver little:
- Buying citations in bulk. A few authoritative directories matter. Five hundred junk listings do not, and cleaning them up later is painful.
- Keyword stuffing your business name. Adding "Best Austin Roofing Repair" to your Google name violates the guidelines and gets listings suspended.
- Blog posts written purely for keyword volume. If it does not answer a real question a customer asked you, it is not earning anything.
A realistic timeline
Local SEO is slower than ads and cheaper over time. Expect roughly:
- Weeks 1 to 4 — profile cleanup, review automation live, technical fixes
- Months 2 to 4 — service-area pages published and starting to get indexed
- Months 4 to 8 — movement in the map pack, assuming reviews keep coming
Anyone who promises you the top spot by a specific date is guessing. Proximity alone means your ranking is different for every person searching.
We build service-area sites, review automation, and the CRM behind them for US contractors. See the full build.