SEO for Contractors
I used to lump all my trades on one page. For contractors, dominating local search means separate service pages, a complete Google Business Profile, and tracking calls not rankings.
Start here
- Claim and fully complete your Google Business Profile with accurate services, hours, photos, and phone number.
- Create one dedicated service page per trade or service type, not a single catch-all services page.
- Use service + location in title tags and matching H1s to signal relevance to search engines.
- Collect and respond to reviews consistently to build local trust signals and improve GBP visibility.
- Track calls and form fills from each service page using a call tracking number to measure real lead volume.
Plain-English take
Think of SEO for contractors as making it dead simple for Google to understand who you are, what you do, and where you do it. When someone searches "fence repair Manchester" Google wants to serve a business that has a clear service page about fence repair, a Google Business Profile listing Manchester as a service area, and a consistent name, address, and phone number across the web. This is not complex SEO. It is blocking and tackling: one page per trade, one GBP entry per location, and a modest backlink profile from local directories and trade associations. If you skip these basics no amount of content marketing will compensate.
I have seen contractors rank in the local pack within two to three months simply by cleaning up their site structure and GBP. An acquaintance who runs a roofing business in Bristol added a page for "flat roof repair" separate from his general roofing page. Within eight weeks his flat roof queries started appearing in the local pack, while his general page stayed put. Dedicated service pages are non-negotiable because a page that covers both plumbing and electrical work forces Google to choose which query to rank it for. It loses both. Instead create "emergency plumber Manchester" and "electrical rewiring Manchester" as separate targets. Your domain authority passes to both pages, similar to principles I see in [small business SEO](/small-business-seo/) guidance.
Where people go wrong is treating the website as a brochure. They copy the same paragraph about "our years of experience" onto every page. That wastes the opportunity to tell Google why a specific service is relevant to a specific location. I recommend writing each service page as if it were the only service you offer. Describe the process, typical cost range, warranty, and local considerations such as planning permission or building codes in your area. This depth signals expertise and gives Google the context it needs to surface your page for relevant queries.
When it actually matters
Contractor SEO becomes a priority the moment you rely on inbound calls or quote requests from online searches. If your phone rings because someone found you on Google Maps, then local visibility is your revenue engine. It also matters when you serve a specific geographic area and want to dominate local results. For example, a roofer covering three towns should rank for each town individually. If competitors already occupy the local pack and you are on page two, you are leaving money on the table.
Here is a concrete example. I worked with a kitchen fitter in Bristol who was spending £2,000 per month on Google Ads for "kitchen fitting Bristol." His organic presence was minimal. We created a dedicated page for kitchen fitting, a separate page for bespoke joinery, and optimised his GBP. Within 12 weeks his organic calls increased from three per week to 11. His ad spend stayed flat but the cost per lead dropped because organic leads cost nothing per click. The numbers told me that service pages plus GBP outperformed a single-page site every time for that business. A counter-argument: if your contract work is entirely referral-based and you do not need new online leads, this effort is wasted. But most contractors in urban areas cannot afford to ignore search.
An edge case is the single-trade contractor. A painter who only paints interiors might think a single page is sufficient. It can be, but only if the page is deeply optimised for "painter + city" and nothing else. Even then, adding a page for exterior painting if you do that expands your reach. My rule: if you offer more than one distinct service, dedicate a page to each. If you serve more than one city, create city-specific content or landing pages. Many contractors outsource the site setup to a [web design company](/web-design-company/) but leave the SEO structure to a [SEO agency](/seo-agency/) that understands local signals.
What I got wrong
I used to believe a single "services" page covering everything was fine. I thought domain authority would concentrate and make one page rank for everything. It does not. Google needs a clear signal per intent. Splitting into dedicated pages actually concentrates relevance per query, which improves ranking per term. I also ignored the Google Business Profile for months, assuming my website would carry me. The profile is often the first thing people see in Maps, and it feeds the local pack. After years of neglect I saw a 30% lift in calls just by adding categories, responding to reviews, and uploading high-quality photos.
Another mistake: city name stuffing. I wrote "plumber London plumber emergency plumber London" in titles and thought that helped. It does not. Google now penalises keyword stuffing. Instead use natural phrasing: "Emergency Plumber in North London – 24/7 Service." Also, I underestimated the value of schema. I was sceptical about LocalBusiness markup. Once I added it I noticed Google started pulling my opening hours and phone number directly into the search snippet. That extra click-through rate matters. I now follow [SEO services](/seo-services/) guides that emphasise structured data.
A counter-argument worth noting: some SEOs argue that for small local businesses, too many service pages can create a thin content issue. That is true if you write 200 words per page. But if each page has 800 words of original content, a photo gallery, and a unique description of the trade, it is not thin. I changed my mind on this when I saw a handyman site with 15 thin pages drop in rankings. The solution was to merge services that are closely related (e.g., "deck building" and "deck repair") into one page rather than splitting into five-word pages. The decision rule: group services that a customer would search for together, but separate services with distinct intents. I now apply this rule whenever I consult for a contractor who wants a [SEO company](/seo-company/) to take over their local strategy.
Next step
Quick answers
Do I need a separate page for each city I serve?
Yes, if the cities are distinct service areas. Create a landing page optimised for 'trade + city' for each. But if you serve a single metro area, one page per trade is enough. Too many near-identical pages look thin and risk duplicate content issues.
How long does contractor SEO take to show results?
Typically two to six months for local rankings to show measurable impact. GBP changes can affect visibility within weeks. The speed depends on competition level and how quickly Google recrawls your pages. Consistent content additions and active review management shorten the timeline.
Should I use schema markup on my service pages?
Yes. Add LocalBusiness schema with your address, phone, and service area. Also use Service schema for each trade. FAQ schema can help if you answer common pre-purchase questions. Implementation is straightforward on most CMSs and gives search engines explicit signals about your business.
Sources
Primary documentation is linked directly. Anything commercial is marked nofollow.
- Google Search Central — backs up the importance of dedicated service pages and helpful content criteria
- Google Business Profile Help — supports GBP optimisation guidance including categories, photos, and review responses
- Google Search Essentials — explains content quality and spam risks relevant to thin service pages
- Google Structured Data documentation — covers LocalBusiness and Service schema markup for contractor sites
Notes from Callum Bennett.