If you run a contracting business, you already know that word of mouth only goes so far. The homeowners who need a roofer, a window installer, or an HVAC tech in 2026 are pulling out their phone and searching Google first. The contractors who show up in those results get the calls. Everyone else gets silence.
Local SEO is the process of making sure your business is the one that shows up when someone in your area searches for the services you provide. Not a national directory. Not your competitor two towns over. You.
This guide walks through the exact steps we use at Plain Talk Developers to get home service businesses ranking on Google. No fluff, no jargon. Just the playbook, start to finish.
46% of all Google searches have local intent. For contractors, that number is even higher. If you are not showing up in local results, you are handing jobs to someone who is.
Google Business Profile Optimization
Your Google Business Profile (GBP) is the single most important factor for showing up in the local map pack, those three businesses that appear at the top of search results with a map. If you do nothing else from this guide, do this.
Claim and verify your listing
Go to business.google.com and claim your business. If it already exists (Google often creates placeholder listings), claim ownership. You will need to verify by postcard, phone, or video, depending on what Google offers you. This can take a few days, but it is non-negotiable.
Choose the right categories
Your primary category is the most influential field on your entire profile. Pick the category that most closely matches your core service. If you install windows, your primary category should be "Window Installation Service," not "General Contractor." You can add secondary categories for additional services, but the primary one drives the most weight.
Complete every field
- Business name (your real, legal name -- do not keyword stuff)
- Address (or service area if you travel to customers)
- Phone number that matches your website
- Business hours, including holiday hours
- Website URL
- Services list with descriptions
- Business description (750 characters, include your main services and cities)
Photos and posts
Upload real photos of your work, your team, your trucks. Businesses with more than 100 photos get significantly more calls than those with fewer than 10. Add new photos weekly if you can. Use Google Posts to share recent projects, promotions, or seasonal tips. Posts expire after 7 days, so keep them coming.
Reviews are fuel
Ask every happy customer for a Google review. Make it easy: text them a direct link to your review page right after you finish the job, while the experience is fresh. Respond to every review, positive or negative, within 24 hours. Google rewards businesses that actively manage their reviews, and potential customers read them before they call.
Businesses in the top 3 of the map pack receive 70% of the clicks. Your Google Business Profile is your most powerful free marketing tool. Treat it like a living asset, not a one-time setup.
Keyword Research for Local Trades
Keywords are the search terms people type into Google when they need your services. Getting these right determines whether you show up for the searches that actually lead to jobs, or waste time targeting phrases nobody uses.
Focus on high-intent keywords
The best keywords for contractors combine a service with a location, and signal that the searcher is ready to hire. These are high-intent keywords, meaning the person searching has a problem and wants it solved now.
- "Window installation [city name]"
- "Emergency plumber near me"
- "Roof repair [neighborhood]"
- "Best HVAC contractor [city]"
- "[Service] cost [city]" (pricing queries)
- "[Service] reviews [city]" (trust queries)
Tools you can actually use
Google Keyword Planner is free if you have a Google Ads account (you do not need to run ads). It shows you search volume and competition for any keyword. Google Search Console is even more valuable because it shows you the exact searches people are already using to find your site. Check it monthly and look for keywords where you rank on page 2. Those are your best opportunities, you are close and just need a push.
Google autocomplete is underrated. Start typing your service into Google and see what it suggests. Those suggestions are based on real searches in your area. "Window installation" might autocomplete to "window installation financing near me" or "window installation same day." Those are content ideas handed to you for free.
On-Page SEO That Actually Moves the Needle
On-page SEO means optimizing the pages on your website so that Google understands what each page is about and ranks it for the right searches. This is where most contractor websites fall short. They have one homepage that tries to cover everything, and nothing ranks well.
Title tags and meta descriptions
Every page on your site needs a unique title tag (the text that shows in browser tabs and search results). Follow this formula:
[Service] in [City] | [Business Name]
Example: "Window Installation in Dallas | ABC Windows"
Keep it under 60 characters. Your meta description (the text below the title in search results) should be 150-160 characters and include a call to action: "Licensed window installation in Dallas. Free estimates, lifetime warranty. Call today."
Create a page for every service
If you offer window installation, window repair, and door installation, those should be three separate pages, not three bullet points on one page. Each service page should have:
- A unique H1 heading with the service and city
- 500-1000 words of real content describing the service
- Photos of your actual work (not stock images)
- Your service area listed
- A clear call to action (phone number, form, or both)
- Customer testimonials specific to that service
Build location pages
If you serve multiple cities, create a dedicated page for each one. A "Window Installation in Plano" page will rank for Plano searches, while your Dallas page ranks for Dallas. Do not just copy-paste and swap the city name. Write unique content for each location: mention neighborhoods, reference local landmarks, and include photos from jobs you have done in that city.
Schema Markup (JSON-LD)
Schema markup is code you add to your website that tells Google exactly what your business is, where it operates, and what services it offers. Think of it as filling out a detailed form for Google's database. It does not show on your website, but it helps you appear in rich results (those enhanced listings with stars, prices, and FAQs).
Here are the three types of schema every contractor website should have:
LocalBusiness + Service + FAQ schema
Add this to your homepage or main service page. Here is a real example:
// Add this inside a <script type="application/ld+json"> tag { "@context": "https://schema.org", "@type": "HomeAndConstructionBusiness", "name": "Your Business Name", "url": "https://yourdomain.com", "telephone": "+1-555-123-4567", "address": { "@type": "PostalAddress", "streetAddress": "123 Main St", "addressLocality": "Dallas", "addressRegion": "TX", "postalCode": "75201" }, "areaServed": [ { "@type": "City", "name": "Dallas" }, { "@type": "City", "name": "Plano" }, { "@type": "City", "name": "Frisco" } ], "hasOfferCatalog": { "@type": "OfferCatalog", "name": "Services", "itemListElement": [ { "@type": "Offer", "itemOffered": { "@type": "Service", "name": "Window Installation", "description": "Full window replacement and new construction window installation" } } ] }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.9", "reviewCount": "127" } }
For FAQ schema, add a separate JSON-LD block with the questions your customers ask most. This can earn you expandable FAQ snippets directly in search results, which dramatically increase your click-through rate.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How much does window installation cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Window installation typically costs $300-$1,200 per window depending on size, style, and frame material."
}
},
{
"@type": "Question",
"name": "How long does it take to install new windows?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most homes can be fully re-windowed in 1-2 days. A single window takes 30-60 minutes."
}
}
]
}
You can validate your schema at search.google.com/test/rich-results. Paste your URL and Google will tell you if there are errors.
Content That Ranks
Content is what keeps your website growing in search over time. Every blog post you publish is another chance to rank for a keyword, answer a question your customers are asking, and prove to Google that your site is an authority in your trade.
Answer the questions your customers ask
Think about the questions you hear on every sales call. "How much does a new roof cost?" "How long do vinyl windows last?" "Do I need a permit for a deck?" Each of those questions is a blog post waiting to happen, and each one targets a keyword that real customers are searching for.
Structure your posts with clear headings, short paragraphs, and direct answers. Google wants to pull quick answers from your content and display them as featured snippets. If you give a clear, concise answer in the first paragraph and then expand on it, you have a shot at the top of the page.
Before-and-after project galleries
Project galleries are powerful for two reasons. First, they give potential customers visual proof of your quality. Second, each gallery page can rank for location-specific keywords: "Kitchen remodel in Arlington TX" or "Window replacement before and after Fort Worth."
For each project, include:
- High-quality before and after photos
- A description of the scope of work
- The city or neighborhood where the job was done
- Any challenges you solved and how
- The materials or products used
This kind of content does not go stale. A well-written project page from 2024 can still bring you leads in 2026.
Technical SEO Fundamentals
Technical SEO is the foundation. If your site is slow, broken on mobile, or missing basic configuration, none of the other steps will work as well as they should. The good news is that most of this is a one-time setup.
Page speed matters
Google's Core Web Vitals measure how fast and smooth your site feels. The three metrics that matter most:
- LCP (Largest Contentful Paint): How fast the main content loads. Aim for under 2.5 seconds.
- INP (Interaction to Next Paint): How quickly the page responds to clicks. Aim for under 200ms.
- CLS (Cumulative Layout Shift): How much the page jumps around while loading. Aim for under 0.1.
Test your site at pagespeed.web.dev. The biggest wins for contractors: compress your images (use WebP format), avoid giant hero videos that load on mobile, and choose a fast hosting provider. A 5-second load time on mobile will cost you leads. People will hit the back button before your page even finishes loading.
Mobile-first is not optional
Over 60% of local searches happen on phones. Google indexes the mobile version of your site first. If your site looks broken on a phone, has text that is too small to read, or has buttons that are too close together to tap accurately, you are losing rankings and losing customers.
The basics checklist
- SSL certificate: Your URL should start with https://. If it does not, Google will show a "Not Secure" warning to visitors. Most hosts include free SSL.
- XML sitemap: Submit one to Google Search Console so Google can find all your pages. Most website platforms generate this automatically.
- Robots.txt: Make sure you are not accidentally blocking Google from crawling important pages. Check yours at yourdomain.com/robots.txt.
- Fix broken links: Run a free crawl with Screaming Frog or a similar tool once a quarter. Broken links erode trust with Google and frustrate visitors.
- Image alt text: Describe your images in the alt attribute. "New vinyl window installation in a Dallas home" tells Google what the image shows and helps you rank in image search.
Real results: Jetts Windows went from zero to #1
When Jetts Windows came to us, they had no website and no Google presence. We built them a fast, SEO-optimized site, set up their Google Business Profile, implemented full schema markup, and created service and location pages targeting the DFW metroplex.
Within months, they were ranking #1 for their core keywords and generating a steady stream of inbound leads, without spending a dollar on ads. The organic search traffic alone pays for the entire website many times over.
Read the full Jetts Windows case study →The bottom line
Local SEO is not a mystery. It is a system. You optimize your Google Business Profile, choose the right keywords, build dedicated pages for your services and locations, add schema markup, publish helpful content, and keep your technical foundation solid.
The contractors who do this consistently are the ones who dominate their local search results, and they never worry about where the next job is coming from.
You do not need to do everything at once. Start with your Google Business Profile. Then build out your service pages. Then add schema. Each step compounds. Within a few months, you will start seeing movement in your rankings and real leads coming through your website.
SEO is not a one-time project. It is the most cost-effective lead generation channel a contractor can invest in. The work you put in today keeps paying off for years.
If you want help implementing any of this, or want us to handle the entire process for you, that is exactly what we do. We build websites and run local SEO for home service businesses. No jargon, no mystery invoices.