A general contractor came to me with a website he’d paid $4,500 for. It looked professional. Clean layout, good color scheme, nice stock photos of construction sites. His analytics showed 400 visitors per month. He was getting zero calls from the site.
Zero. Four hundred people found him on Google, clicked through to his website, and left without picking up the phone or filling out a form.
His website wasn’t ugly. It was useless. It looked like a brochure but it didn’t do the one thing a contractor’s website needs to do: make someone call.
After auditing over 50 contractor websites across San Antonio, I’ve found the same five problems on almost every one that isn’t generating leads. None of them are about design. They’re about function.
Problem 1: No phone number above the fold
“Above the fold” means the part of the page you see before scrolling. On a phone, that’s roughly the top 600 pixels. On a desktop, it’s the top 800. If your phone number isn’t visible in that space, you’ve already lost most of your potential callers.
I checked the contractor’s site on mobile. The phone number was in the footer. To find it, a visitor had to scroll past a hero image, an “About Us” paragraph, a services grid, a testimonials section, and a contact form. That’s five sections of content between the customer and the call. At every section, some percentage of visitors give up and leave. By the time they reach the footer, 60-70% are gone.
For a local service business, the phone number needs to be in the header, sticky on mobile, and tap-to-call. One tap from any page on your site. That’s the standard. If your number requires scrolling, hunting, or manual dialing, you’re adding friction that costs you calls every day.
The fix takes 10 minutes. Add your phone number to the header. Make it a clickable tel: link. On mobile, use a sticky call button that stays visible as the visitor scrolls. This single change produces more leads than any other website improvement for contractors.
Problem 2: No clear call to action
“We provide quality craftsmanship and customer satisfaction.” What is the visitor supposed to do with that? It’s a statement, not an instruction.
Most contractor websites are full of descriptions but empty of direction. Every page should answer the question: what do you want the visitor to do next? For a contractor, the answer is almost always one of two things: call you or request a quote.
That means every page needs a clear, specific CTA. Not “Contact Us,” which is vague. “Call for a Free Estimate” or “Get Your Free Quote” or “Schedule Your Free Inspection.” The word “free” matters. Homeowners are wary of committing to something that might cost them money just to explore.
Place the CTA in at least three spots per page: near the top, in the middle after you’ve built some credibility, and at the bottom. On long pages, add more. The visitor should never have to scroll more than one screen-length without seeing a way to take action.
And the CTA should look like a button, not a text link. Buttons with a contrasting color (not the same color as your header or background) get 30-40% more clicks. If your whole site is blue and your CTA button is also blue, it disappears. Make it orange, green, or white with a border. Make it impossible to miss.
Problem 3: Stock photos instead of real work
Stock photos are the single biggest credibility killer on contractor websites. And they’re everywhere. The same stock photo of a hardhat-wearing model pointing at a blueprint shows up on dozens of contractor sites. Customers notice.
When a homeowner is deciding whether to let someone tear into their roof or remodel their kitchen, they want proof. Before-and-after photos of your actual work. Your actual crew on an actual job site. Your actual trucks. The real messiness and real results of the work you do.
One contractor I worked with replaced every stock photo on his site with phone photos from job sites. Not professional photography. Just clear, well-lit photos from his iPhone. His contact form submissions doubled in the first month. The photos weren’t beautiful. They were believable. That’s what converts.
Take photos of every job. Before you start, during the work, and after completion. Keep them organized by project type: roofing, siding, kitchen, bathroom, addition. Upload the best ones to your website and your Google Business Profile. A library of 50+ real job photos does more for your conversion rate than any copy or design change.
Problem 4: The website doesn’t mention where you work
This one seems obvious but I see it constantly. A contractor serves a 40-mile radius across 20 cities and their website mentions exactly one of them, usually just in the footer. Google can’t rank you for “contractor in [city]” if the word doesn’t appear on your site.
The contractor I audited at the top of this article served San Antonio, Boerne, New Braunfels, Schertz, Cibolo, and a dozen other cities. His website said “Serving the Greater San Antonio Area.” That phrase means nothing to Google. Meanwhile, his top competitor had a dedicated page for each city in his service area, with specific content about the types of projects he’d done there.
Build a service area page for every city and major neighborhood you serve. Each page should mention the city name naturally in the title, headings, and body text. Include specific details: the types of homes in that area, common issues you see there, your drive time or availability, and ideally photos from jobs you’ve done in that location.
This works alongside your Google Business Profile, which should list your service areas clearly. When your website and GBP both confirm you serve a particular area, Google has stronger signals and you’re more likely to show up in the Map Pack for searches from that location.
Problem 5: Slow load time on mobile
This is the silent killer. Your site looks fine on your office computer but takes 6 seconds to load on a customer’s phone. You never see the problem because you never test it on mobile over a cellular connection.
Google’s data shows that 53% of mobile visitors abandon a site that takes longer than 3 seconds to load. At 5 seconds, 90% leave. For contractors, most website visitors come from mobile because homeowners search for services on their phones. If your site is slow on mobile, the majority of your traffic never sees your content.
The usual culprits: oversized images that haven’t been compressed, too many plugins on a WordPress site, cheap shared hosting, or a bloated page builder theme. A contractor’s site doesn’t need to be fancy. It needs to load in under 3 seconds on a phone. Run your site through Google’s PageSpeed Insights and look at the mobile score. Anything below 50 is actively losing you customers. The full guide on site speed covers the specific technical fixes.
The most common fix is image compression. A single uncompressed photo from a DSLR or modern phone can be 5-8 MB. On a web page, it should be under 200 KB. There are free tools that do this automatically. That one change often cuts load time in half.
What a contractor’s website actually needs
Here’s the minimum viable contractor website that generates leads. Five pages, and they don’t need to be long.
Homepage. Phone number in the header (tap-to-call). One sentence about what you do. Three to five photos of real work. CTA button: “Get Your Free Estimate.” Brief list of services with links to the services page.
Services page. Each service you offer with a paragraph describing it and at least one photo. Don’t lump everything into one paragraph. A customer searching for “deck building” wants to see a section about deck building, not a wall of text about everything you do.
Service area pages. One page per city or major neighborhood. Real content about the area and your work there. These pages are your keyword strategy for local search.
Gallery or portfolio. Photos organized by project type. Before-and-after pairs are the strongest format. Each project should have a short description: what the customer needed, what you did, how long it took. This page does more selling than your About page ever will.
Contact page. Phone number, contact form, email, and a map showing your service area. The form should have as few fields as possible. Name, phone number, what they need, and a submit button. Every additional field reduces completion rates. Don’t ask for their address, their preferred date, their budget range, or anything else at this stage. You’ll get those details on the call.
That’s it. Five pages. You can build this in a weekend with a template for under $2,000, or less if you do it yourself. Anything beyond this is a nice-to-have, not a need-to-have.
The test that tells you everything
Open your website on your phone right now. Pretend you’re a homeowner who just searched “contractor near me” and tapped your listing. Can you call within 5 seconds without scrolling? Is there a clear button telling you what to do? Do the photos show real work or stock images? Can you tell what cities they serve?
If you answered no to any of those, your website isn’t generating leads because it isn’t built to generate leads. It’s built to exist. Those are different things.
The free audit checks your website’s mobile performance, load speed, and CTA visibility alongside your Google Business Profile and review health. Takes 30 seconds and shows you what’s actually costing you calls.