Ruff Roofing Houston has the kind of reputation most roofing companies would kill for: 4.8 stars across 531 Google reviews. I’ve reviewed hundreds of local service businesses, and a rating like that is earned. These folks clearly take care of their customers.
But reputation and visibility are two different battles. When we pulled apart the marketing behind that review profile, we found real holes — the kind that quietly cost booked jobs every single week. Nothing on this list is exotic. It’s all basics. And that’s exactly why this breakdown is worth your time, because there’s a good chance the same holes are sitting in your marketing right now.
| Finding | What the audit found | Why it matters |
|---|---|---|
| Weak local map-pack visibility (0.0% within a 5.0-mile radius) | Live Google Places search grid scan for "roofing contractor": appears in the top-3 map pack at only 0.0% of 25 checked points around the business, average rank 9.2. | Most customers only ever see the 3-pack at the top of local search results — falling outside it across most of the checked service area means most nearby searches never surface this business at all. |
| No click-fraud protection detected alongside Google Ads | Site carries a Google Ads conversion tag but no ClickCease/CHEQ script was found in the page source. | Competitors and bots clicking ads burns budget with zero leads — typically 10-20% of local-service ad spend. |
| No call tracking detected | Google Ads tag present, but no call-tracking/DNI script found on the site. | Most local-service leads CALL. Without call tracking, Google can't optimize for the calls that actually book jobs. |
| No analytics detected | No GA4/Google Tag Manager script found in the page source. | No way to know which marketing produces leads and which burns money. |
| No Facebook/Meta pixel detected | No fbq('init') / connect.facebook.net script found in the page source. | Without a pixel, there's no way to retarget people who already visited the site — one of the cheapest ad channels available goes unused. |
| No video content on the homepage | No YouTube/Vimeo/Wistia embed found in the page source. | Video builds trust fastest and keeps visitors on the page longer — a homepage with zero video is a missed, low-cost opportunity. |
| No LocalBusiness structured data | No LocalBusiness schema in the page's JSON-LD | Structured data is how Google reads your hours, service area, phone and rating. Without it Google guesses — and competitors who publish it get the rich result instead. |
| Reviews shown but not marked up for Google | Review content on the page with no aggregateRating/review schema | Marked-up reviews can show star ratings directly in search results, which lifts click-through on a listing you already rank for — free clicks you're currently leaving behind. |
The Map Scan: Invisible in Their Own Backyard
We ran a live map scan across a five-mile radius around their location. The result: Ruff Roofing shows up in the top three map results 0% of the time, with an average rank of 9.2.
Picture someone standing in front of a leaking roof, phone in hand, searching for a roofer. Across that entire area, this company never even appears.
That’s the part that should bother every owner reading this. The 531 reviews only work on people who already found them. The homeowner with water coming through the ceiling — the highest-intent lead there is — never sees any of it, because the company doesn’t exist in the results that matter. All that hard-earned trust is sitting behind a locked door.
531 Reviews — and Google Can’t Show the Stars
The reviews do show up on their website. But there’s no review markup behind them. That markup is what lets Google display your star rating right inside the search results, and without it, they’re leaving free clicks on listings they already show up for.
Think about why this stings. Two roofers appear side by side in search. One has a visible star rating pulled straight from real reviews. The other is plain text. The click goes to the stars — every time. Ruff Roofing already did the hard part, which is earning 4.8 stars over hundreds of jobs. The markup is how you collect on that work, and it’s missing.
Review markup is a small snippet behind your reviews that tells Google what they are. It’s one of the few wins in local search that’s pure setup — you already did the hard part by earning the reviews.
No structured data at all
Same story with their basic business info. There’s no structured data on the site, so Google is guessing at their hours, their service area, their phone number. Meanwhile, competitors who publish that data get the richer listing — more screen space, more info, more reasons to click. When Google has to guess and a competitor hands it the answers, the competitor wins the listing.
The Google Ads Account Is Leaking Money
Credit where it’s due: Ruff Roofing is running Google Ads, and the conversion tag is right there in the page source. Somebody set up the basics. But three gaps turn that spend into a gamble.
Fix #1: No click fraud protection
There’s no click fraud protection software anywhere on the site — the tool we point clients to is click here. In local services, bots and competitors clicking your ads typically burn 10 to 20% of the budget. Maybe it’s a competitor. Maybe it’s their office manager on a lunch break. Either way, that’s real money buying nothing — and it compounds month after month. If this were my account, that’s fix number one.
Fix #2: No call tracking
Roofing leads pick up the phone. Without call tracking, Google can’t learn which clicks actually turn into booked jobs — so the campaign keeps spending without ever knowing what worked. This is the gap that separates data from guesswork, whether you run ads yourself or pay for Google Ads management for contractors. No call tracking means every “lead” looks the same to the algorithm, and the account never gets smarter. The call-tracking platform we use with clients is CallRail — click here.
No analytics underneath any of it
And underneath all of it, there’s no analytics on the site at all. Nobody can tell which marketing is producing leads and which is just burning money. Ads without analytics is driving at night with the headlights off — you’re moving, but you have no idea where.
No Facebook Pixel — Visitors Leave and They’re Gone for Good
There’s no Facebook pixel on the site either. So everyone who visits and leaves without calling is gone for good. Retargeting those people is one of the cheapest ad channels there is — these are homeowners who already found the site, already saw the reviews, and just didn’t pick up the phone that day. That audience is sitting there, unused.
Zero Video on the Homepage
And there’s zero video on the homepage. With a review profile like theirs, 60 seconds of the owner on camera would build more trust than any paragraph on that page. A homeowner about to spend serious money on a roof wants to see who they’re dealing with. The proof is already there — 531 people vouching for the work — and a short video would put a face on it.
Why Do Basics Like This Get Missed?
Here’s the bigger picture. Nothing on this list is exotic. These are basics any home service marketing agency should catch in month one. When they get missed, it’s usually because agencies collect the monthly retainer while junior staff juggle 80 accounts — and nobody actually looks at yours. The report goes out, the invoice goes out, and the holes stay open.
And here’s what most owners don’t know yet: with AI, these exact fixes can now run automatically. With a bit of guidance, you can run your marketing in-house and own the whole thing — never depending on an agency again. That’s the entire premise behind Local Service Mastery: you keep the keys, and the work actually gets done.
The Fix List, in Order
- Click fraud protection — stop the 10–20% budget bleed before touching anything else.
- Call tracking — so Google learns which clicks become booked jobs.
- Review markup and structured data — claim the free clicks and richer listings you already qualify for.
- Analytics — know which marketing produces leads and which just burns money.
- Facebook pixel — so visitors who leave without calling aren’t gone for good.
- Homepage video — 60 seconds of the owner builds more trust than any paragraph.
- Map visibility — because 0% top-three coverage in your own five-mile radius is the leak underneath everything.
None of this requires a bigger reputation, a bigger budget, or a better website. It requires someone to actually look — and then fix things in the right order.
Local Service Mastery








