Fix the foundation first: crawl, speed, and structure
Before a single keyword matters, Google has to be able to reach your pages, read them, and load them fast. Most contractor sites we audit fail here, and no amount of content fixes a broken foundation. Nobody wants to hear it, because it is not the fun part, but this is where rankings are actually won or lost. Start with three things.
Crawlability. Google needs a clean path to every page. That means a real sitemap.xml submitted in Search Console, a robots.txt that is not accidentally blocking the site, and internal links that actually connect your service pages instead of stranding them. If a page is not linked from anywhere, Google treats it as an afterthought. We regularly find contractor sites where half the service pages have zero internal links pointing at them, so Google barely knows they exist. Fix the links and pages that were invisible start showing up.
Speed. A slow site loses rankings and loses the homeowner before the page even paints. We hold every build under 2 seconds. The usual culprits on contractor sites: a WordPress theme loading forty plugins, unoptimized hero photos of finished jobs shot on a phone at full resolution, and third-party scripts stacked on top of each other. Hand-coded static pages sidestep most of it, which is the whole reason we build them that way. If you are on a page builder, compress every image, kill the plugins you do not use, and measure with a real tool, not a gut feeling.
Structure. One page per service. One page per city you actually serve. A roofer covering three counties needs a roof-replacement page, a roof-repair page, and a page for each town, not one 4,000-word homepage trying to rank for everything at once. Google ranks pages, not sites, and a page about eleven things ranks for none of them.
This stage is unglamorous and it is where the wins hide. A technically clean, fast site with clear structure will outrank a prettier competitor who ignored the plumbing. Get this right and everything you build on top of it works harder.
Target the keywords a homeowner actually types
Contractors guess at keywords and guess wrong. They target "best roofing company" when a homeowner with a leak types "roof leak repair [city]" at 11 p.m. Rank for the words attached to a job, not the words attached to your ego. The word a customer types when they are ready to hire is worth ten of the word you wish they typed.
Group the terms you want into three buckets, and build a page for each intent:
- Service + city: "HVAC repair Naples," "panel upgrade Sarasota." High intent, ready to call. These are your money pages, and they should get the most attention.
- Problem-first: "why is my AC blowing warm air," "how much to replace a water heater." The homeowner is diagnosing, not yet buying. Answer it, and you are the shop they call next.
- Comparison and cost: "tankless vs tank water heater," "metal roof cost." Middle of the decision. These earn trust and links, and they feed the money pages.
Pick terms with real intent over terms with big volume. "Emergency plumber [city]" converts at a rate a broad head term never will, even if fewer people search it. A ranked page for a low-volume, high-intent term books jobs. A page fighting for a vanity keyword usually books nothing, and it costs the same effort to try. Volume flatters you at the strategy meeting. Intent pays the crew.
You do not need an expensive tool to start. Type your service into Google and read the autocomplete suggestions and the "People also ask" box. That is Google handing you the exact phrasing homeowners use, for free. Note the questions, note the local variations, and build your keyword map from what real people search.
One keyword theme gets one page. Do not build three thin pages all chasing "drain cleaning" in the same town, they cannibalize each other and split the authority Google would have handed one strong page. Map your keywords to a page each, in a spreadsheet, before you write a word. The map is the plan, and skipping it is how sites end up with fifty pages fighting each other.
Write the on-page SEO Google reads
On-page SEO is telling Google, plainly, what a page is about. It is not stuffing a keyword forty times, which stopped working over a decade ago and now reads as spam to both Google and the homeowner. It is structure and clarity, and it is entirely under your control, which makes it the best return on the time you can spend.
For every service page, get the fundamentals right:
- Title tag: the keyword near the front, your city, your brand at the end. This is the blue line in search results, so it is also your ad. Write it to get the click, not just to hold the keyword.
- H1: one per page, matching the page's job. A roof-repair page's H1 says roof repair, in the town you serve. Not a slogan.
- Meta description: a real sentence that earns the click. It does not directly rank you, but a higher click-through rate does move the needle over time.
- Body copy: written for the homeowner, with the keyword and its natural variants used where they belong. Include the questions people actually ask, in the words they ask them.
- Schema markup: structured data that hands Google, and increasingly the AI answer engines, the facts in a format they trust. This is where AI-search visibility gets baked in rather than bolted on later.
The mistake we see most: a service page that is 200 words of adjectives. "Quality workmanship, competitive pricing, family owned." That page tells Google nothing and the homeowner less. A page that ranks explains the service, the process, the signs a homeowner needs it, what it costs to expect, and the area you cover. It answers the objections a homeowner has before they call. It reads like a knowledgeable foreman walking someone through a job, because that is who it is written for.
Do this on every money page, not just the homepage. Consistency across a clean site beats a single heroic page every time. Google rewards the site that treats every service like it matters, because that is the site that actually serves the searcher.
Build content that earns the ranking
Service pages get you in the game. Content is how you win the terms your competitors ignore and the terms the AI answers now pull from. This is where a real contractor site pulls ahead of a five-page brochure, and it is the part most contractors never do, which is exactly why it works.
The pattern that works is a content cluster: your core service pages, supported by guides that answer the problem-first and cost questions homeowners search before they hire. A typical build we deliver runs 94 or more cluster pages once the strategy is mature, each answering a real query and linking back to the money page it supports. That web of internal links is not busywork. It tells Google which pages are the important ones and passes authority to them.
Examples that book jobs for the trades we serve:
- An HVAC company writing "how long does a furnace last" and "signs your AC compressor is failing."
- A plumber writing "what to do when your water heater leaks" and "repipe vs spot repair."
- An electrician writing "do I need a panel upgrade" and "why does my breaker keep tripping."
Each guide catches a homeowner mid-problem and links them to the service page that solves it. It also gives Google a reason to see you as the authority on that trade in that area, which lifts your money pages too. Depth on a topic signals expertise, and expertise is what Google is trying to reward.
Write for the person, not the algorithm. A guide that genuinely answers the question earns time on page, earns links, and gets pulled into AI answers because it is the clearest source on the topic. A guide written to hit a word count and a keyword density does none of that, and homeowners smell the filler. Publish on a schedule you can hold, even if that is one solid guide a month, because content that stops in month two ranks like content that never started. Slow and steady beats a burst that dies.
Earn links and authority the honest way
Links are still a top ranking factor, and they are where most contractors either do nothing or do something that gets them penalized. A link from another site is a vote of confidence Google counts, but it counts the source, not just the vote. There is no reason to buy a link package from a stranger overseas. Those links get discounted or punished, and you paid for the privilege of the risk.
Earn links from sources that actually exist in your world:
- Suppliers and manufacturers: the brands you install often list certified contractors on a "find a dealer" page. That is a relevant, authoritative link tied to your trade, and you probably already qualify for it.
- Local partners: the general contractor you sub for, the realtor who refers you, the supply house down the road. Real relationships, real links.
- Associations and licensing bodies: your trade association, your chamber of commerce, your state licensing directory. These carry weight precisely because they vet who gets listed.
- The content itself: a genuinely useful cost guide or how-to earns links because other sites cite it. This is the compounding kind, and the only link type that scales without you chasing it.
Quality beats quantity, badly. One link from a supplier's contractor directory outweighs fifty from directories no human visits. Google reads the neighborhood a link comes from, and a link from a relevant, trusted local source tells it you belong in your market. A hundred junk links tell it you are trying too hard, which is its own kind of signal.
Note the boundary here: this is organic authority, not your Google Business Profile, map-pack ranking, or citation cleanup. Those matter and they are their own discipline (our Local SEO work), separate from the on-site and link earning covered here. Both feed the same phone, but they are built differently, and confusing the two is how contractors waste months polishing the wrong thing.
Measure the right things, and give it time
The mistake that sinks contractor SEO is checking rankings every morning and panicking. Rankings bounce day to day, and they show differently on your phone at the shop than on a homeowner's laptop across town. What matters is the trend over months and, in the end, whether the phone is ringing from search. Set up Google Search Console on day one, for free, and you will have the numbers that actually count.
Track these, in this order of importance:
| What to watch | Where | Why it matters |
|---|---|---|
| Calls and form fills from organic | Call tracking + form data | The only number that pays the bills |
| Impressions and clicks | Search Console | Shows demand reaching you, before it converts |
| Rankings for money terms | Rank tracker | The leading indicator, watched monthly not daily |
| Pages indexed | Search Console | Confirms Google can see everything you built |
On timeline, be honest with yourself. New content and a fresh site take time to earn trust, and there is no way to buy your way past that clock without buying risk. Expect early movement on low-competition, problem-first terms in the first couple of months. Competitive service-plus-city terms in a real market take 4 to 9 months of steady work. A brand-new domain in a crowded metro takes longer than an established one with history behind it. Anyone promising the top spot in thirty days is selling something that will not last past the next update.
The upside is why owners stick with it: ranking is equity, not rent. A page that reaches the top of Google for "roof replacement [city]" keeps booking jobs long after the work to get it there is done. Paid ads stop the day you stop paying. A ranked page compounds, and the lead it books cost you nothing that month. That is the whole case for doing this the slow, honest way instead of the fast way that gets clawed back at the next update. It is a building you own, not a booth you rent.