Rod & Staff Media · Client Intelligence

Restore Paver Co. — Marketing Visibility Report

All numbers pulled live 2026-07-30 · window May 14 – Jul 30, 2026 (the account's full digital history) · sources: Meta Ads (Windsor), GoHighLevel CRM, GA4, Search Console, Google Business Profile, platform organic APIs

One paid channel is generating 80% of all leads at a fair price — and then 7 out of 8 of those leads die in follow-up. Meanwhile 124 organic posts bought 26 followers, the Google Business Profile is invisible, and the referral channel that closes 9 of 10 has no system behind it. The plan isn't thin because it lacks channels — it's thin because everything after the lead is unmanaged.

Ad spend · 90d
$3,864
Meta only · ~$75/day now
Meta leads
38
$73 CPL on the main campaign
Pipeline
54
opportunities all-time · 13 open
Won revenue
$24,620
15 jobs · $1,641 avg
Paid close rate
11.6%
vs 91% on referral leads
Organic followers
26
from 124 posts, all platforms
01

Two funnels, opposite physics

Meta delivers volume at a fair cost per lead — then loses almost all of it. The referral/word-of-mouth path is tiny but nearly perfect. The gap between these two funnels is the single most expensive fact in this report. (Referral leads enter the CRM at estimate stage, so their close rate is flattered by selection — but a 79-point gap is not a selection artifact.)

Instant-form funnel

Spend$3,864
Leads in CRM43
Jobs won5
Revenue$7,248

$773 ad cost per won job against a $1,641 average ticket. The CPL is fine — the close rate is the leak. Closing just 4 more of the same 43 leads would have halved acquisition cost to ~$429.

Referral · Manual Word-of-mouth funnel

Spend$0
Leads in CRM11
Jobs won10
Revenue$17,372

71% of all revenue came from the channel with no system behind it. No referral ask, no program, no reseal database. This is the engine that already works — unbuilt.

Lead flow & wins by month
Opportunities created per month · won overlaid — volume is growing, wins aren't keeping pace
02

Paid: costs doubled while the ad stayed the same

One video ad — before/after + "$200 off" — carried 66% of all spend. Cost per click climbed from $0.38 in week one to $3.26 last week, the worst of the entire run. Frequency is only ~2.3 total, so this is not audience burnout; it's the Florida summer off-window plus a one-note message, priced weekly by Meta's auction. Two live integrity problems: the "$200 off" offer may have expired ~June 30 and is still running, and Ad 09 (the joint-sand differentiator test) has delivered zero impressions since launching July 28.

Weekly ad spend and cost per click
Meta Ads · week starting Monday · hover any week
Where the ad dollars went (top ads, 90 days)
Highlighted row = the cheap-click outlier nobody scaled
AdAngleSpendCTRCPC
IF Ad 01 · VideoBefore/after + $200 off$2,5572.06%$2.2666% of spend
Ad 08 · VideoB&A drive & deck$3721.47%$2.37
Ad 02 · StaticB&A driveway$1931.89%$1.78
Ad 02 · VillagesB&A driveway$1572.64%$1.47
IF Ad 02 · VideoB&A + $200 off (copy)$1501.51%$3.12
Ad 01 · Cinematic"It's not ruined, it's buried"$1043.25%$0.37Best CTR + CPC
Ad 09 · VideoJoint-sand differentiator$0Not delivering

Every funded ad makes the same argument: dirty → clean → discount. The one ad with a different voice (story-led "buried") posted the best click economics in the account on a $104 test — under a traffic objective, so treat as a strong hint, not proof.

03

The leak: what happens after the lead

Right now 11 open leads are sitting in "New Lead" or "Follow-Up Needed" during the exact window when fall booking decisions get made. Twelve more completed jobs are parked in "Review Requested" — reviews that were never harvested into Google, where the profile is starving (section 5). Home-service instant-form leads decay in hours, not days: whoever calls first, wins.

Close rate by lead source
Won ÷ (won + lost), all-time · referral is selection-flattered but the gap is structural
Where open opportunities sit today
13 open · red = waiting on human action
04

Organic: production without distribution

The content engine is real — 124 posts in 90 days, on calendar, on brand. The distribution is not: a Facebook post averages ~127 impressions, Instagram logged 40 interactions in 90 days, TikTok and YouTube round to zero. Followers: FB 16 · IG 8 · YT 2. This isn't a content-quality problem — it's broadcasting to empty rooms while the rooms that are full (local Facebook groups, Nextdoor, Scott's personal network, Google Business Profile) get nothing. The library being built has real value for ads, the website, and the fall push — but as a reach strategy, organic posting is currently buying nothing.

90 days of posting vs. what it earned
Posts published (bars) with resulting followers and total engagements
05

Local & search: the free channels nobody's home at

For a local service company, Google Business Profile is usually the highest-intent free channel that exists. Restore Paver's logged 183 impressions in 90 days — 0 calls, 0 direction requests. That's not underperforming; that's unplugged. Organic search shows the same shape with real cracks of daylight: the site ranks page 1 for "paver sealing" (position ~2.6) with zero clicks (weak title/snippet), owns the Odessa suburb terms at position 2–3, and sits one push from page 1 on "paver cleaning lutz" with 645 impressions waiting. And a structural alarm: search impressions collapsed ~93% at the end of June — that's an indexing/site event to investigate, not seasonality.

Site sessions and search impressions, weekly
GA4 sessions (left panel) · Search Console impressions (right panel) — note the late-June cliff
Search opportunities within reach
QueryImpressionsPositionClicksThe move
paver cleaning lutz64510.70Dedicated Lutz cleaning page → page 1
paver sealing1102.60Rewrite title/meta — ranking, not clicked
paver sealing / cleaning odessa~1602.5–3.00Snippet + GBP tie-in, own the suburb
"cost to seal pavers" cluster32457–720One honest pricing-guide page
paver company421.01Already #1 — protect it
06

The 90-day plan (Aug – Oct booking window)

Ordered by dollar impact, sized for one operator plus one owner-operator, refined by a five-model council review (all five independently ranked the conversion leak #1). Effort rebalance for the next 45 days: 40% lead conversion · 25% referrals + reviews · 20% GBP + local search · 15% paid. The standing gate: do not raise ad spend until median first-touch is under 5 minutes and paid close rate holds ≥ 20%.

1. Fix speed-to-lead and follow-up before touching ad spend

43 paid leads → 5 wins is the leak that costs more than any ad, and 11 open leads sit unworked right now. Scott can't answer a 1 PM lead from a job site — so the operator takes first touch: instant auto-SMS on form submit ("Scott's on a job, he'll call you by 5 — meanwhile here's why our joint sand outlasts polymeric"), operator qualifies and books the estimate window, Scott closes warm. Behind it, an 8-touch / 14-day GHL cadence (call, SMS, email, then day 2×2, 4, 7, 10, 14), lost-reason tagging, and a twice-weekly 15-minute pipeline sweep. Referral leads forgive slow follow-up because they arrive pre-sold; paid leads don't.

paid close rate 12% → 20–28% in 60 days = 3–7 extra jobs ($5–11K) on unchanged spend; CAC $773 → $300–450. (Niche ceiling may be ~20% — sealing is discretionary; even that doubles output.)

weekly: median minutes-to-first-touch, contact rate, close rate on paid leads, lost reasons, open-lead age.

2. Repair the paid front door: offer, Ad 09, landing page

Three defects compound: (a) the main ad may promise an expired "$200 off" — a stale discount attracts price-shoppers and burns trust on the first call, and with the discount honored a $1,641 job nets almost nothing after the $773 CAC; (b) Ad 09's zero delivery is likely CBO starvation — the campaign budget keeps feeding the proven ad, so the test never breathes. Move it to its own test campaign with a $15–25/day floor; (c) the lead page engages only 14% of visitors — rebuild it around the differentiator with proof, reviews, and 2–3 qualifying questions (suburb, sq ft, fall timeline). Fewer, better leads beats more, worse leads.

CPL may rise toward $90–110 on smaller volume, but qualified-lead cost and close rate improve; the differentiator angle finally gets a real test.

judge on cost per booked estimate and per won job — never CTR/CPC alone; Ad 09 delivery within 72h of the restructure.

3. Resurrect Google Business Profile with a review blitz

183 impressions/90d with 0 calls is an unplugged channel with the highest buyer intent in local services — a healthy suburban profile does 500–2,000+ impressions a month. Verify categories (Paver/Concrete Contractor primary), fill every service with suburb language, 20+ geotagged before/after photos, weekly job-completion posts — and ask all 15 won customers for a Google review this month (12 already sit in "Review Requested"; personal text from Scott + GHL automated ask). Reviews are the ranking lever AND the trust signal the paid funnel is missing.

8–12 reviews in 30 days; GBP impressions ×10–20 by Oct; first 2–8 calls/month from Maps — leads that historically close at 30–50%.

GBP impressions, calls, directions, website clicks weekly; review count; GBP-source opportunities in GHL.

4. Build the referral & reseal machine the data is begging for

The 91%-close channel has no system. Add a referral step to the post-job workflow: Scott hands every customer a card — "$200 off for your neighbor, $100 credit toward your reseal" — plus door hangers on the 5 nearest homes after each job ("We just restored your neighbor's pavers"), a yard sign week, and a reseal-due date tagged on every won customer (3–5 yr cycle = the 2029 pipeline). Paver jobs cluster by subdivision; one finished driveway is a neighborhood ad.

2–6 referral leads/quarter at ~80–90% close ≈ $3–8K/quarter at under $150/job acquisition cost, compounding.

referral-source opportunities in GHL per month; card/hanger redemptions.

5. Gut the broadcast calendar; redirect hours to distribution

15 posts/week across five near-zero-reach platforms is production without distribution. Council consensus: stop TikTok and YouTube as destinations (repurpose-only), cut FB/IG to 2–3 strong posts/week anchored on real job completions, add the missing weekly GBP post, and spend the freed hours where Tampa homeowners actually are: local Facebook groups, Nextdoor, and Scott's personal profile — the network that already produced 71% of revenue. The content library keeps its value in ads, the site, and follow-up sequences.

same production cost buys real local reach; measurable within 30 days via GHL source tracking.

leads by source; reach on shared/group posts vs page posts.

6. Three surgical SEO strikes + the indexing alarm

Not an SEO campaign — three fixes: (a) investigate the ~93% GSC impression collapse first (Coverage report, sitemap, noindex/canonicals on the GHL page builder — GHL sites are a known SEO weak point; if the site got deindexed, nothing else matters); (b) a dedicated Lutz paver-cleaning page with real content to convert 645 waiting impressions at position 11; (c) rewrite the "paver sealing" title/meta ranking ~#3 with zero clicks — and if that snippet is broken, all 33 page-1 snippets probably underperform. Then one honest cost-guide page for the 324-impression pricing cluster.

first meaningful organic lead flow: 20–60 clicks/month by Oct (from ~6 today); indexing fix could restore visibility in 2–4 weeks if technical.

GSC Coverage status now; clicks and page-1 query count monthly.

7. Point everything at the fall calendar — including the 38 dead leads

Sealing can't cure in summer humidity — Aug–Oct is when fall gets booked and fall books the spring. Replace the dead discount with "reserve your fall sealing date" across ads, GBP, and the calendar's planned Aug 19+ escalation; take deposits under clear written terms; and run a 3-email reactivation on every lead since May (38 unclosed) — "October slots are opening." Set the ceiling with Scott first: how many jobs can he actually complete Sept–Oct? Marketing past capacity is waste.

a booked fall pipeline — 8–12 jobs scheduled by Oct 1 (≈$13–20K) including 3–6 reactivated from the dead-lead pool — instead of a quiet-quarter scramble.

jobs in "Scheduled Job" with fall dates; deposit invoices sent; reactivation reply rate.

8. AEO: become the answer AI assistants give (added 7/30, Brandyn's direction)

Baseline checked live: the site has zero schema markup, zero FAQ content, and no city names in crawlable text — and "best paver sealing company Lutz Land O' Lakes FL" surfaces 8 competitors with Restore Paver nowhere in the result set AI assistants retrieve and cite. The fix rides the plan you're already running: items 3 + 6 (GBP, reviews, SEO pages) are ~80% of local AEO. The marginal layer: LocalBusiness + Service + FAQPage schema on the GHL site, FAQ pages built from the verified Educational Library (already question-formatted), a Bing Places listing (ChatGPT retrieves via Bing), citation build-out (Yelp, BBB, Angi, Thumbtack, Houzz — one name, ONE phone number everywhere; the 2551/3444 conflict actively breaks machine entity-matching), and a Nextdoor presence.

within 90 days: appear in the retrieval set for the money queries; first AI-assistant mention for "paver sealing near Lutz"-class prompts; compounding as reviews build.

monthly prompt panel — ask ChatGPT/Perplexity/Gemini the 5 money questions, log mentioned-or-not, position, accuracy; citation count; schema validation.

Prepared by Rod & Staff Media · data pulled live 2026-07-30 from Meta Ads, GoHighLevel, GA4, Google Search Console, Google Business Profile and platform organic APIs. Known gaps: Meta lead counts are Meta-reported (37 instant-form) cross-checked against 43 Meta-attributed CRM opportunities; referral close rate is selection-flattered (entered at estimate stage); GSC query-level rows are sampled by Google. Multi-model council review incorporated. Internal working document — not for client distribution without review.