Your website is live. You paid someone to build it. But when you search for what you do in your city, you're not there — or you're buried on page four. This is one of the most common problems local contractors run into, and it almost always comes down to the same small set of issues. Here is how to figure out which one is hurting you.
Google can't find your pages
The first thing to check is whether Google has even indexed your site. Go to Google and type site:yourdomain.com. If nothing comes back, Google has not crawled your pages. This usually means your sitemap was never submitted to Google Search Console, your site was accidentally set to 'noindex' during development and never switched back, or the site is built in a way that loads content via JavaScript — which Google can struggle to read. If Google can't find your pages, no amount of other SEO work will matter. Fix the indexing problem first.
Your Google Business Profile is doing more harm than good
For local contractors, the Map Pack — the three businesses that appear above the regular search results — is where most of the calls come from. To show up there, your Google Business Profile needs to be configured correctly: primary category set to your actual trade (not 'General Contractor' when you're a roofer), service area set to specific cities (not 'Ohio'), and your business name, address, and phone number matching exactly what's on your website. A profile with vague settings or inconsistent NAP data actively hurts your local visibility.
Your pages don't match what people are actually searching
If your homepage just says 'Quality roofing services' or 'We serve Northeast Ohio,' Google has no specific signal to connect you to specific searches. Pages need to reflect actual search queries: 'roof replacement Ashtabula Ohio,' 'emergency roof repair Lake County,' 'commercial roofing contractor Geauga County.' That means dedicated service pages, city-specific content, and headings that answer the questions people are typing. A site that reads like a brochure ranks like a brochure — which is to say, not much.
Your site is too slow on mobile
Google uses mobile-first indexing, which means it evaluates the mobile version of your site when deciding where to rank it. A site that loads in 4–5 seconds on a phone — which is most contractor sites built on WordPress with cheap hosting — is penalized in rankings and loses visitors before they ever read a word. Check your site at PageSpeed Insights (free from Google). A score below 50 on mobile is a ranking liability. The fixes are usually image optimization, reducing plugin load, and using a faster host.
You have no reviews — or your reviews stopped
Reviews are one of the top three Map Pack ranking factors. Volume matters. Recency matters more. A contractor with 12 reviews, all from 2022, is losing Map Pack positions to competitors who have 30 reviews with three from last month. Google interprets recent reviews as proof that the business is active and customers are satisfied. If your review count has stalled, the fix is a systematic ask — a text or email sent within 24 hours of every job close, with a direct link to your Google review page.
Your structured data is missing or broken
Schema markup is the machine-readable layer that tells Google — and AI search systems — exactly who you are, what you do, where you operate, and how to contact you. Most contractor websites have none. Without it, Google has to guess what your business is, which means your site is less likely to appear in rich results, Map Pack features, and AI-generated answers. You can check for schema on your site by going to Google's Rich Results Test and entering your URL. A completely blank result means you have no schema at all.