Five stars across 288 reviews. A perfect score, that many clients deep, is genuinely rare – and it tells me the work at The Law Offices of Ryan Cappy is excellent.
This review isn’t about the work. It’s about the marketing. After reviewing hundreds of local service accounts, this one still gets me – because the gap between how good this firm is and how broken its marketing setup is shows exactly where local service businesses bleed money without ever knowing it.
Here’s the full breakdown – what I found, why each piece matters, and what it means for your business. Because these same five gaps show up in local service accounts every single week.
| Finding | What the audit found | Why it matters |
|---|---|---|
| No GA4 or Tag Manager — only a legacy Universal Analytics tag | No GA4/Google Tag Manager script found in the page source — the only analytics tag present is a legacy Universal Analytics tag (UA-97492668-1), retired by Google in 2023. | No way to know which marketing produces leads and which burns money. |
| No call tracking (click here) 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 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. |
| Slow mobile site (39/100 Google PageSpeed) | Google PageSpeed mobile performance score 39/100, LCP 33.0 s. | Homeowners on phones bounce before the page loads — paid clicks included. |
| 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. |
| 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. |
| H1 heading is not the first heading on the page | A lower-level heading (H2/H3) appears in the HTML before the page’s own H1 tag. | Search engines weight heading order — burying the H1 under other headings weakens it as a ranking signal. |
| 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. |
| Insecure content on a secure page (1 resources) | 1 asset(s) loaded over http:// on an https:// page | Mixed content triggers browser security warnings and can silently block images or scripts from loading at all. |
The only analytics tag on the site is one Google killed in 2023
The firm is paying for Google Ads. Real money, every month, going into clicks. But the only analytics tag on the entire site is the old Universal Analytics tag – the one Google itself retired back in 2023.
No GA4. No Tag Manager. Which means nobody can see which clicks turn into signed cases and which ones just burn money.
Think about what that actually means. Every decision in that account – which keywords to keep, which ads to push, where the budget goes – is a guess. There’s no feedback loop. Money goes in, cases come out somewhere down the line, and nothing connects the two. You could be funding the exact keyword that signs your best cases, or you could be funding pure waste. You’d never know the difference.
No call tracking on a phone-first business
Most people hiring a lawyer pick up the phone. Same goes for most local services – when someone needs help, they call. Without call tracking, Google can’t tell which ads produce those calls. And if Google can’t tell which ads produce the calls, it can’t go find more of them.
This is the part most owners miss. Google’s ad system runs on conversion signals. Feed it data – this click called, this click signed, this click was junk – and it hunts down more of the good ones. Feed it nothing, and it just keeps spending. You’re paying for the most sophisticated targeting machine ever built and handing it a blindfold.
Zero click fraud protection
Bots click ads. Competitors click ads. That typically eats 10 to 20% of local service ad spend – gone before a single real customer ever had a chance to see your site.
If this were my account, it’s the first fix I’d make. Not because the other issues don’t matter, but because this is the one where money walks out the door silently, every single day, and the fix is straightforward.
A 33-second wait for someone in the middle of a crisis
Google’s own speed test scores the mobile experience 39 out of 100. The headline number: 33 seconds for the main content to appear.
Picture the person searching. Someone looking for a lawyer is usually standing right in the middle of the problem, phone in hand. They’re stressed. They’re in a hurry. They are not waiting 33 seconds for your homepage to load – they hit back and call the next firm on the list.
And here’s the insult on top of the injury: if that was a paid click, it still gets billed. You paid for that visitor. You paid for them to stare at a loading screen, give up, and hire your competitor. A slow site doesn’t just lose cases – it loses cases you already paid for.
288 five-star reviews Google can’t read
This one stings, given those 288 reviews. They’re shown on the site – visitors can see them. But they’re not marked up so Google can read them.
Firms that add the proper markup can get star ratings showing right in the search results. Think about what that’s worth: before a searcher even clicks, they see a wall of five-star proof next to your name. Those are free clicks, already earned by years of great work – left behind because nobody added the markup.
Same story with the firm’s phone number and service area. No structured data, so Google guesses. And when Google guesses, it shows less of your information than it could.
Why basic checks like this get missed
None of this is exotic. These are basic checks. Anyone running local service accounts professionally should catch them on day one.
So why does it happen? Because of how the typical lead generation for local service businesses actually operates. The agency collects the retainer while junior staff juggle 80 accounts, and nobody actually looks. Not at your analytics version. Not at your call tracking. Not at your page speed. The reports go out, the invoice gets paid, and the account quietly decays.
If someone’s being paid to run this account, they should have caught every single one of these. All five.
The fix: AI runs these checks now – and you can own the whole thing
Here’s what most owners don’t know yet. With AI, these exact fixes can now run automatically. The tracking setup, the call tracking, the fraud monitoring, the structured data – the stuff a home service marketing agency charges a retainer for and still doesn’t check – can be handled without handing your account to a stranger juggling 79 other clients.
And with a bit of guidance, you can bring your marketing in-house and own it outright. No agency required. That’s exactly what we build at Local Service Mastery – service business owners running their own lead generation, with AI doing the checking and real coaching making sure nothing like this ever slips through again.
Running ads right now? Ask whoever manages them three questions: Are we on GA4? Where’s my call tracking? What are we doing about click fraud? The answers – or the silence – will tell you everything.
Five-star work deserves marketing that can prove it’s working. If nobody can see which clicks turn into clients, nobody’s really running your ads.
If you run a local service business and want to know what’s leaking in your marketing, grab the free audit. We’ll find it.
Local Service Mastery








