2026 · Q2 Audit

Fast Mold Testing

Overview
13
findings
5 sized · 1 parked
5
ship-now
quick wins
4
segments audited
channels
13
domains scored
across 3 layers

Where you are

A homeowner who smells must or just failed an inspection is ready to book today, and most arrive on a phone. Right now the funnel makes them work: the paid landing page buries the phone number, no one calls back for an hour, and the booking proof sits at the bottom of the page. Demand is strong. The path from worried to booked is where it leaks.

We found thirteen fixable gaps across the funnel. The fastest are a click-to-call bar, a five-minute callback routine, and review proof beside the booking button — none touch your brand or your pricing, and together they go straight at the biggest leak: ready buyers who never finish booking.

How we ran this audit

This is a high-level read built to surface the issues, gaps, and opportunities that move revenue — not an exhaustive list of every possible change. We ran it before fully vetting and patching your event tracking, on purpose: finding opportunity does not wait on perfect data. Most of what follows comes from established best practice, category and competitor benchmarks, conversion heuristics, and a hands-on walkthrough of your funnel. Where a number is measured we show it; where it is an estimate or an inference we label it and give our confidence. Accurate, end-to-end tracking across every channel would sharpen the sizing and surface more — and standing that up is the first thing we do together.

How to use this report

Overview — the headline read: what we audited, the biggest wins, what we need from you. Full Audit — the deep diagnosis: your context, your surfaces, and each funnel, scored against what great looks like. Roadmap — every fix and bet as one sortable list. Start at the top; filter by the outcome you care about. Unknowns — the full picture of what we'd want to know, and which parts are still dark. Competitive — who else competes for the same buyer, by the observable facts. Inventories & Data — the facts we collected and the data sources behind them.

What we audited

Three layers, each scored against a defined checklist of what great looks like. The score is how many criteria you pass. Each chip below is one criterion — green is in place, amber is partial, red is a gap — so you can see what drives the score at a glance. The full checklists live in the Full Audit.

In placePartialGap
ContextThe knowledge that feeds strategy, decisions, and tactics — audited for completeness and accuracy15/34
Customer4/7 →
ICPTriggersAwarenessSegmentsVoice of customerObjectionsJTBD
Offer & positioning2/8 →
Offer statedPromiseOwnable claimNamed mechanismRisk reversalProofSecond-dollarDifferentiation
Economics3/4 →
Unit economicsPaybackMarginValue-metric pricing
Goals & capacity2/5 →
North starCapacityModel-market mathShipping pathConstraints
Measurement1/6 →
Canonical eventDominant pathAttributionExperiment toolingDashboardsData hygiene
Competitive context3/4 →
Rivals namedTeardownOpen laneCitable benchmarks
FunnelsThe systems that move people to a sale — assessed per active funnel, piece by piece5/22
Organic search Google Business Paid search Lifecycle / email Paid social
Acquisition where strangers come from1/4 →
Channel-mix fitMessage-matchPer-channel trackingCAC known
Conversion the platform and the route to a yes3/10 →
Primary actionPost-conversionArchetype fitPaid LPSecondary ladderRetargetingRecoveryProof placementForm UXMobile path
Lead handling turning a lead into a booked job1/4 →
Show-rate remindersSpeed-to-leadRoutingNo-show recovery
Retention / expansion revenue after the first yes0/4 →
Lifecycle mapSecond-dollarAdvocacyWinback
SurfacesHow well each touchpoint is built — scored against surface criteria, with LIFT as the lens120/192
Paid mold-inspection landing page value proposition and urgency are the failing levers32/64 →
AttentionValue propRelevanceClarityUrgencyAnxietyDistraction
Google Business profile complete and well-reviewed; posts and offers underused50/64 →
AttentionValue propRelevanceClarityUrgencyAnxietyDistraction
Organic service page ranks, but converts below the paid page38/64 →
AttentionValue propRelevanceClarityUrgencyAnxietyDistraction

The biggest wins

The five highest-impact moves. Open a row for the reasoning, the evidence behind it, and the problem it solves.

#TaskTypeICEMetric it movesSize
1Add a sticky click-to-call bar above the fold on mobile paid landing pagesShip8109Paid mobile visit-to-leadXX%
The problem it solves
Ready mobile buyers leave the paid landing page without reaching the phone — the number sits below the fold.
Why it works
DataMost paid mobile sessions leave with no call and no form; paid mobile visit-to-lead reads ~5%. estimate — directional until call-tracking is connected.
Best practicePut the primary action above the fold on mobile; one tap from intent to call.
BenchmarkOne-tap call paths consistently lift mobile lead capture in local services (WordStream local-services call-conversion benchmarks).
MechanismRemoves the step between intent and the call, so high-intent visitors convert before they bounce.
Confidence High
2Stand up a five-minute speed-to-lead callback routineBuild985First-response timeXXX%
The problem it solves
Inbound leads are answered best-effort, often more than an hour later, so warm intent goes cold.
Why it works
DataFirst-response time exceeds an hour today. estimate
BenchmarkContacting a web lead within five minutes vs an hour sharply raises the odds of qualifying it (Harvard Business Review, The Short Life of Online Sales Leads, Oldroyd et al.).
MechanismSpeed compounds booking odds — the first responder usually wins the job.
Confidence High
3Match each paid landing page to the ad that precedes itShip797Paid visit-to-leadXX%
The problem it solves
Ads promise a mold inspection; the landing page shows a generic services wall, breaking the scent.
Why it works
Best practiceMessage match: the landing page repeats the ad's exact promise and visual.
MechanismMaintained scent lowers bounce and carries intent into the form.
Confidence High
4Add a Google-reviews proof block beside the booking buttonShip698Booking-page conversionXX%
The problem it solves
Strong reviews exist but sit in the footer, far from the moment of commitment.
Why it works
Best practicePlace proof at the point of decision, next to the CTA.
MechanismSocial proof answers the trust objection at the moment of commit.
Confidence Medium
5Test an annual re-inspection / membership offerTest764Repeat revenue per customerXX%
The problem it solves
There is no repeat motion today — every job starts cold.
Why it works
BenchmarkRecurring offers (annual re-inspection, membership) lift lifetime value in home services.
MechanismTurns a one-time job into a relationship with a reason to return.
Confidence Medium — a test, not a sure thing.
+ 8 more in the full roadmap →

Needed from you

A few inputs unblock the measurement and let us size the opportunity. Each is quick on your side.

The askWhat it unlocksUrgency
Grant analytics + Google Ads read accessMeasure the paid funnel end to endHigh
Confirm the booking system can fire a "booking confirmed" webhookLead-to-booked conversion trackingHigh
Share 90 days of call-tracking logsSee the dominant path — the booking call — for the first timeMedium
Approve the proposed tracking eventsForm submission · phone tap · booking confirmedMedium

Funnel by channel

Where each channel leaks today. Steps we can't measure yet are shown honestly.

Paid
Visit
2,600/mo
Lead
5.0%
Biggest drop: 95% of visits leave without a lead
Booked
Not yet measured
Organic
Visit
1,400/mo
Lead
3.2%
Biggest drop: 97% of visits leave without a lead
Booked
Not yet measured
Google Business
Views
3,100/mo
Calls / directions
8%
Booked
Not yet measured
Repeat & referral
Past customers
small base
Repeat booking
Not yet measured
See each funnel in the Full Audit →

What we can't see yet

The honest edges of this audit. These shape what we can size and what we'll measure first.

The booking call is the dominant conversion path — and it isn't tracked yet
So the sized numbers cover only the funnel we can already measure.
Lead-to-booked conversion is unmeasured until the booking webhook lands
We can see leads arrive, not whether they turn into booked inspections.
Repeat / reactivation rate is unknown — no tracking on second jobs
We can't yet size the retention opportunity, only name it.
See all unknowns →

Your conversion funnel

One shared picture of how a stranger becomes a booked job — the stages, the events that mark each one, where the data comes from, and what we can see today. The point of this page is alignment: everyone reading the same funnel, honest about which steps are measured and which are still dark.

Are we seen?
Visibility
Impressions and reach — showing up where the worried homeowner is already looking.
Are we activating?
Activation
The click or tap that brings that attention onto a surface we control.
Are they converting?
Conversion
Lead → booked inspection → paid job. The yes, and the steps to it.
Do they return?
Retention
A second job, a referral, a review — revenue after the first yes.

What moves each step

At every stage we read the funnel through four levers. A step leaks when one of them is working against the visitor — so a fix is always one of: make the value clearer, make the action easier, make the risk smaller, or give an honest reason to act now.

Perceived value Effort to act Perceived risk Momentum & urgency

Steps, events & sources

Each step of the funnel, the event we track to measure it, where that data lives, and what we can read today. This is the map we use to stitch a single, channel-attributed view of the funnel — and to see exactly where the picture goes dark.

MeasuredPartialDark — not yet measured
StageStepStatusEvent trackedSource of the eventReported inCurrent value
TOFU top of funnelImpression — organic searchMeasuredSearch impression, average positionGoogle SearchSearch Console~312 ranked kw · avg pos 38.5
TOFUImpression — local packMeasuredProfile viewGoogle BusinessBusiness Profile insights~3,100/mo
TOFUImpression — paid searchDarkAd impression, impression shareGoogle AdsGoogle AdsNot yet measured
MOFU middle of funnelSite visit / clickPartialSession by channelWebsiteGA4 (tag fires, no access yet)~1,400 organic · ~2,600 paid est
MOFUPhone tap (mobile)DarkTap-to-call clickWebsite buttonGA4Not yet measured
BOFU bottom of funnelLead — form submitPartialForm submissionWebsite formGA4Not yet measured
BOFULead — phone callPartialTracked inbound callCallRailGA4 / CRMCalls captured, not attributed
BOFUBooked inspectionDarkBooking confirmedBooking systemGA4 / CRM (webhook)Not yet measured
BOFUPaid job (revenue)DarkInvoice / job closedInvoicing systemCRMNot yet measured
Retention after the first yesRepeat / referral / reviewPartialSecond job, review leftInvoicing · Google reviewsCRM · Business Profile142 reviews @4.8★; repeat untracked
An event is created by one source (where it happens) but is often read in another (where it's reported) — an inbound call fires in CallRail but should be reported in GA4 and the CRM. Volumes marked est are directional until analytics and call-tracking are connected. The numbers live in Inventories; the source connections live in Data.

By channel today

The same funnel, split by where the demand starts. Most channels go dark at the lead step — which is exactly what connecting tracking fixes first.

ChannelTop of funnelConversion eventVisit→leadLead→bookedTracked end to end
Organic search~1,400 visits/moCall / form~3.2% estNot yet measuredDark
Paid search~2,600 visits/mo estCall / form~5.0% estNot yet measuredDark
Google Business~3,100 views/moCall / directions~8% action estNot yet measuredDark
Repeat & referralSmall baseRepeat bookingNot yet measuredDark
See each channel's drop-off in the Overview →

Attribution reality

Why a single, trustworthy funnel view is hard here today — and what closes the gap.

The dominant path to a booked job is a phone call, and calls are the hardest thing to attribute. CallRail captures them, but they aren't yet stitched to the web session that drove them or to the booking that followed — so we can see a call happened without knowing which channel earned it or whether it became revenue. On top of that, GA4's tag fires but we don't have account access to verify events, and there's no "booking confirmed" signal coming back from the scheduling system. The result: the top of the funnel is readable, the bottom is dark.

What closes it is the first work in the roadmap — analytics and Ads read access, a tracked call-number per channel, and a booking-confirmed webhook. Together they turn the dark rows above into measured ones, and let us size the opportunity on the real funnel instead of an estimated one.

See what's dark and why
The full decision-information picture, the dark-funnel paths, and the events we propose.
Go to Unknowns →
Check the source connections
Every source we'd read, whether it's flowing, and how far we trust it.
Go to Data →
View Funnel Surface

How this page is organized

Context — the knowledge behind the work: is the strategy sound? Audited once, applies to everything. Site-wide surfaces — the pages every visitor meets, whatever brought them. Funnels — each path to a sale, end to end: the pieces it needs and the surfaces inside it. Scoring — each criterion is Gap Partial Done well. The score counts the ones done well. Find a fix — click any Gap or Partial row in a funnel's pieces to see the roadmap items that solve it.

Context

The knowledge that feeds every strategy, decision, and tactic. We audit it for completeness and accuracy first, because good work downstream depends on it. Each domain is scored against a defined checklist; the score is how many criteria are done well.

Context · 15 / 34 criteria done well
CustomerIs the buyer known — who they are, the job they hire you for, and why they act?4/7
What great looks like: the best buyer is named with their economics, the job they hire you for is in their words, the trigger and objections are known, and the site speaks to that buyer.
What great looks likeWhat we observedVerdict
The best-fit buyer and segments are named, with whyPrimary buyer named — homeowners post-failure or with visible mold; urgent intent.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
The job they hire you for, stated in their wordsGoal inferred from reviews ("peace of mind"), never captured in an interview.Partial
Solved by
The events that start the buyer's search are namedClear triggers: failed inspection, a home sale, visible mold, a health worry.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Real customer quotes captured and reused in the copyNo systematic review or transcript mining; verbatim phrases aren't collected to reuse.Gap
Solved by
The top reasons buyers hesitate are listed and answeredTop objections aren't counted from non-converters; the big five are unswept.Gap
Solved by
Where buyers sit on the awareness ladder is mappedPaid skews problem-aware, Google Business solution-aware; messaging mostly matches.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Site speaks to the best buyerThe primary surface addresses the high-intent inspection buyer with the best economics.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Offer & positioningIs there a clear reason to choose this one over the alternatives?2/8
What great looks like: a one-sentence offer, an ownable claim a rival couldn't paste, a named mechanism, a risk reversal scoped to the buyer's real fear, and a designed second purchase.
What great looks likeWhat we observedVerdict
Offer statable in one sentence"A fast, certified mold inspection" — a stranger could repeat the core offer.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
A claim a rival couldn't paste onto their own page"Fast and reliable" is pasteable onto any competitor — not positioning.Gap
Next step
Next step: a positioning session — define an ownable claim and a named mechanism a rival cannot paste.
Positioned against the real alternativeNo frame against "do nothing" or a DIY test kit — the actual alternatives.Gap
Next step
Next step: a positioning session — define an ownable claim and a named mechanism a rival cannot paste.
Outcome, odds, speed, and effort each deliberately tunedDream outcome and perceived likelihood left generic; the weakest variable isn't worked.Gap
Next step
Next step: a positioning session — define an ownable claim and a named mechanism a rival cannot paste.
A named "how" that makes the result believableNo named "how" a competitor couldn't claim.Gap
Next step
Next step: a positioning session — define an ownable claim and a named mechanism a rival cannot paste.
A guarantee that removes the buyer's actual fearA satisfaction line exists but is buried; the real fear isn't reversed up front.Partial
Solved by
A designed repeat purchase (re-inspection, membership)No engineered next transaction (re-inspection, membership) — caps affordable CAC.Gap
Solved by
Message pitched to how much the market has already heardA plain claim fits this low-sophistication local market — not over-engineered.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
EconomicsCan the business afford to win — do the unit economics support growth?3/4
What great looks like: unit economics known, LTV:CAC and payback inside tolerance for this model, and pricing that scales on a value metric.
What great looks likeWhat we observedVerdict
Unit economics knownJob value and rough CAC known; estimated honestly where soft.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
LTV:CAC clears this model's barHealthy for a high-margin one-time job; the ratio supports paid acquisition.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Payback inside toleranceCAC pays back inside a single job — well within the cash window.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Price scales on something the buyer sees as valueFlat pricing; no axis the customer recognizes as value (sq ft, rooms, urgency).Gap
Solved by
Goals & capacityIs the target real and absorbable — and is there a path to it?2/5
What great looks like: a named north star with a target, market math that supports it, a known capacity ceiling, a documented shipping path, and a recorded constraints map.
What great looks likeWhat we observedVerdict
A single north-star metric with a target numberBooked inspections per month, target +25% in two quarters.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Reachable demand × price clears the revenue targetReachable demand × price not yet modeled against the revenue target.Gap
Solved by
How much more demand can be absorbed is knownInspectors can absorb ~25% more bookings before scheduling breaks.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Who ships changes, how fast, and who signs off is knownWho ships site changes, how fast, and who approves isn't documented.Gap
Next step
Next step: a strategy session — model the target against the market and document the shipping path + constraints.
Untouchables — brand, pricing, sacred copy — are recordedUntouchables — brand, pricing, sacred copy — not recorded before recommending.Gap
Solved by
MeasurementCan the business see its own funnel? The weakest domain — and it gates the sizing of everything else1/6
What great looks like: one canonical conversion event, the dominant path measured end to end, source-level conversion readable, honest attribution, a written dark-funnel list, and experiment tooling.
What great looks likeWhat we observedVerdict
One agreed conversion event, deduped and source-taggedNo single, deduplicated, source-attributed conversion event per funnel.Gap
Solved by
The path most revenue takes is measured end to endThe phone-booking path, where most revenue flows, is unmeasured.Gap
Solved by
Conversion is readable per channel, not just in totalUTMs don't survive into the analytics/CRM join, so per-channel conversion is partial.Gap
Solved by
A self-reported "how did you hear about us?" backs the softwareNo self-reported "how did you hear about us?" alongside the software read.Gap
Solved by
What can't be measured is written down, not hiddenWhat's structurally unmeasurable is stated, not hidden (see Unknowns).Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
A way to run and read a controlled test existsNo way to run and read a controlled change yet.Gap
Solved by
Competitive contextThe relative frame — who buyers compare you to and where the open lane is3/4
What great looks like: the real comparison set named, each rival torn down on observable facts, the open lane identified, and category benchmarks sourced. The full head-to-head lives in the Competitive tab.
What great looks likeWhat we observedVerdict
The rivals buyers actually compare you to are namedThe local rivals buyers actually compare you to are named.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Each rival torn down on offer, proof, and pricingEach rival torn down on offer, proof, and pricing — not just homepages.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
A position no local rival fully owns is identifiedA stated guarantee plus transparent pricing is a lane no local rival owns.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Category benchmarks come from a citable sourceWe use only observable facts (traffic, ad counts); category conversion rates aren't citable.Gap
Next step
See the Competitive tab for the head-to-head; a deeper teardown is a later cycle.

Site-wide surfaces

The pages every visitor meets, whatever brought them. We score each against the elements a conversion-ready surface needs, then read it through the LIFT lens. These apply across all funnels.

HomepageThe front door — does a first-time visitor know what you do, who it's for, and what to do next?40/64
AttentionValue propRelevanceClarityUrgencyAnxietyDistraction
What we expect on a homepageWhat we observedVerdict
Headline names the outcome, not the categoryLeads with "Mold Inspection Services" — a category label, not the worried homeowner's outcome.Gap
Next step
Next step: rewrite CTAs to name the outcome ("Book my inspection"). Part of the page conversion work.
A single, obvious primary actionCall and "request inspection" both present; the call path is clear.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Phone tappable above the fold on mobileNumber is in the header but not a one-tap sticky action on mobile.Partial
Solved by
Proof near the top142 reviews at 4.8★ exist but sit far down the page.Gap
Solved by
Services and coverage area are clearWhat's offered and where is easy to find.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Reads clearly in five secondsA stranger can state what's sold and who it's for.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Loads fast on mobileAcceptable on desktop; mobile LCP ~3.8s is borderline.Partial
Next step
Next step: a technical/trust fix — folded into the site-wide build (see Inventories for the measured values).
Through the LIFT lens · each factor's score is the share of its checks that pass — expand a factor to see them all
7/10Attention · upstream — earns the read
Glance reads professional & on-categoryClean, credible first impression.
Squint test: headline + CTA surviveBoth stand out when blurred.
Single standout = the conversion actionSeveral elements compete with the call.
Fold payload earns the scrollThe fold sets up what's below.
Decision-critical content in 3 screenfulsWithin the attention budget.
No false floor at the foldEdge signals more below.
No auto-rotating carouselStatic hero.
Selective emphasis only on key elementsToo much carries equal weight.
Complexity ceiling: simple silhouetteSquint silhouette stays ordered.
Gaze direction toward CTANo visual cue leading to the action.
4/7Value proposition · the central lever
Headline names the problem or outcomeLeads with the category, not the worried homeowner's outcome.
The after-state is shownNo picture of the "your home is safe" outcome.
Subhead adds a concrete specific"Results in 48 hours" appears.
A named unique mechanismNo ownable "how".
The offer is concreteThe service is clear.
Services and area are explicitWhat's offered and where is clear.
One element memorable enough to retellThe 48-hour turnaround.
6/8Relevance · lift — meets the visitor's intent
Speaks to the local homeownerClearly a local mold-inspection business.
Names who it's forHomeowners and buyers.
Coverage area clearWhere they serve is easy to find.
Leads with the buyer's situationOpens with the category instead.
Services match what's searchedService set aligns with demand.
Copy echoes the customer's wordsNo review/transcript language reused.
Proof relates to the visitorLocal reviews, once reached.
Each visitor has a visible pathCall and request both available.
8/11Clarity · lift — parses fast
Five-second test passesA stranger gets what's sold and who for.
Convention complianceLogo links home; links look like links.
Front-loaded words in headingsInformation word first.
Layer-cake testMessage survives headings + bullets.
ScannabilityShort, chunked sections.
Reading level 5th–7th gradePlain language.
Accessibility floor14px mobile body; contrast violations (axe).
Line measure & alignmentReadable measure.
No content styled like an adNo banner-blindness risk.
CTA copy says what happens nextGeneric verbs.
Complexity absorbed (defaults, pre-fill)Request form doesn't pre-fill.
0/2Urgency · lift — a reason to act now
Honest urgency where it existsNo response-time promise or appointment scarcity.
CTA names the outcome, not the mechanism"Contact us" instead of "Book my inspection".
6/13Anxiety · drag — the trust blockers
Named proof above the fold142 reviews / 4.8★ sit far down the page.
Real names and specifics in reviewsGenuine local reviewers.
Risk reversal named where fear existsGuarantee buried.
Price honestyNo price or anchor.
Top objections answered before the CTACost, time, certification unaddressed.
Numbers over adjectivesSome quantified claims.
Nothing broken or staleClean, current.
Consistent contact infoNAP matches Google.
No negative primingNo risk words near the ask.
Certifications / licensing shownNot surfaced as proof.
Photos build confidenceReal work shown.
Cost transparency before the askNo cost shown.
Honest urgency renderingNo real deadline tied to a claim.
9/13Distraction · drag — friction on the path
One dominant path per viewportTrends to call/request.
Nav is reasonable, not sprawlingStandard local-services nav.
CTA repeats at each decision pointNo repeated/sticky CTA on scroll.
Option count ≤ 4 at onceFew choices.
Section order advances an argumentNo restated points.
Request form asks only what's neededShort form.
Form mechanics soundSingle column.
Guest path primaryNo forced account.
Mobile: one-tap, above-fold callNumber not a one-tap sticky action.
Speed: LCP under 2.5s mobileMobile LCP ~3.8s.
Post-click step as easy as promisedNo surprise fields.
CTA mechanics: contrast, FittsButton is high-contrast.
Feedback & momentumResponsive states.
Main navigationThe wayfinding every page carries — what a conversion-optimized nav includes4/7
What a conversion-optimized nav includesWhat we observedVerdict
Phone number, tappablePresent in the header.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
A primary CTA button in the navNo standing "Book / Get an inspection" button in the nav bar.Gap
Next step
Next step: rewrite CTAs to name the outcome ("Book my inspection"). Part of the page conversion work.
A pricing or "what it costs" entryNo pricing or cost-explainer link; a common buyer question goes unanswered.Gap
Solved by
Services clearly labeledService categories are legible and conventional.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Logo links home; links look like linksConvention-compliant.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Usable on mobileMenu works; tap targets are adequate.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Trimmed on paid landing pagesFull site nav stays on the paid page, offering exits from the funnel.Gap
Next step
Tracked as a next step — folded into the related roadmap work once measurement lands.
Global trust & proofThe credibility signals that should travel across the whole site3/6
What we expectWhat we observedVerdict
Real reviews with namesGenuine local reviews with real names.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Review count + rating shown site-wideThe 4.8★ / 142-review proof isn't surfaced near decisions.Gap
Solved by
Licensing & certification displayedState licensing and certification aren't shown as trust proof.Gap
Solved by
A guarantee or risk reversal surfacedA satisfaction line exists but is buried.Partial
Solved by
Nothing broken or staleNo dead links or placeholder content.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Consistent name, address, phoneNAP is consistent across the site and Google Business.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.

Funnels

Each path to a sale, end to end. For every funnel you run we score its pieces — acquisition, conversion, lead handling, retention — and audit the surfaces inside it. Funnels you don't run are marked, so nothing reads as missed.

Organic search Google Business Paid search Lifecycle / email Paid social

Organic search running

The primary channel: buyers searching "mold testing near me" land on a service page and call or book. It's the largest source of free demand, and the page it lands on converts below the paid one.

Acquisition detail · read from the SEO inventory
Footprint
Ranked keywords312
Page-1 keywords34
Page-1 share11%
Avg position38.5
Demand & authority
Est. organic visits~1,900/mo
Paid-traffic equivalent~$5,400/mo
Referring domains47
Branded share68%
Top non-branded term
Keywordmold testing raleigh nc
Search volume1,300/mo
Position14
IntentCommercial
The read
A real organic base, but 68% of it is branded — people already looking for FMT. The money term sits at position 14 (off page one), and long-tail intent coverage is thin, so non-branded discovery is capped.
Facts from the SEO inventory (dataforseo). Estimates are tool-derived, not first-party analytics.
The pieces · 0 done well · 2 partial · 2 gaps
PieceWhat it needsWhat we observedVerdict
AcquisitionRank for the terms buyers searchRanks for core local terms; 68% branded, money term at pos 14, long-tail and intent coverage thin.Partial
Solved by
Non-branded organic growth (programmatic location pages, intent coverage) is parked this cycle — it depends on tracking and content capacity that aren't stood up yet. See Parked in the roadmap →
ConversionA page that turns the visit into a call or bookingService page ranks but converts below paid — thin proof, weak CTA, no urgency.Partial
Solved by
Lead handlingA fast, owned response to the inboundBest-effort callback, often over an hour; no speed-to-lead routine.Gap
Solved by
RetentionA reason and a path to returnNo lifecycle or repeat motion after the job.Gap
Solved by
Surfaces in this funnel
Organic service pageRanks and reads clearly, but converts below the paid page38/64
AttentionValue propRelevanceClarityUrgencyAnxietyDistraction
What a service page needsWhat we observedVerdict
Clear, well-structured contentReads cleanly; ranks for its terms. 480 words on /mold-testing.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Proof near the CTAOnly one proof element on the page; reviews are thin and far from the booking ask.Gap
Solved by
A specific, outcome-named CTAGeneric "Call now" / "Contact us" rather than "Book an inspection".Gap
Next step
Next step: rewrite CTAs to name the outcome ("Book my inspection"). Part of the page conversion work.
A reason to act nowNo honest urgency surfaced.Gap
Next step
Next step: add honest urgency — appointment scarcity or a stated response-time promise. Bundled into the page conversion work.
Risk reversal where the fear isGuarantee not surfaced near the decision.Partial
Solved by
Through the LIFT lens · each factor's score is the share of its checks that pass — expand a factor to see them all
7/10Attention · upstream — earns the read
Glance reads professional & on-categoryClean, credible first impression.
Squint test: headline + CTA surviveBoth stand out when blurred.
Single standout = the conversion actionThe weak CTA isn't the one isolated element.
Fold payload earns the scrollThe fold sets up the content below.
Decision-critical content in 3 screenfulsWithin the attention budget.
No false floor; content continues at the foldEdge signals more below.
No auto-rotating carouselStatic hero.
Selective emphasis only on key elementsBody and CTA carry similar weight.
Complexity ceiling: simple silhouetteThe squint silhouette stays ordered.
Gaze direction toward CTANo visual cue leading to the action.
4/7Value proposition · the central lever
Headline names the problem or outcomeNames the service and the local outcome.
The after-state is shownNo picture of the calm "your home is safe" outcome.
Subhead adds a concrete specific"Results in 48 hours" appears.
A named unique mechanism is on the surfaceNo named "how" a competitor couldn't paste.
The offer is concreteThe visitor can tell what the inspection includes.
The cost side is collapsedEffort/time-delay not named down.
One element memorable enough to retellThe 48-hour turnaround is sticky.
6/8Relevance · lift — continues the search intent
Continuity from the entry queryThe page matches the searched term.
H1 matches the query intent + keywordHeadline carries the local service term.
Depth matches awareness stageSolution-aware searchers get the right depth.
Entry intent is the first subjectLeads with the category, not the buyer's situation.
Names who it's forHomeowners and buyers named.
Copy echoes the segment's wordsNo review/transcript language reused.
Proof matches the visitor's situationLocal homeowner reviews present.
Every persona has a visible pathBuyers and owners both have a route.
8/11Clarity · lift — parses fast
Five-second test passesA stranger can state what's sold and who for.
Convention complianceLinks look like links.
Front-loaded words in headingsInformation word comes first.
Layer-cake testMessage survives headings + bullets.
ScannabilityChunked, short paragraphs.
Reading level 5th–7th gradePlain language.
Accessibility floorBody text 14px on mobile; one low-contrast pair (axe: 7 contrast violations).
Line measure & alignmentReadable measure, left-aligned.
No content styled like an adNo banner-blindness risk.
CTA copy says what happens nextGeneric "Contact us".
Complexity absorbed (defaults, pre-fill)Form doesn't pre-fill.
0/2Urgency · lift — a reason to act now
Honest urgency where it existsNo appointment scarcity or response promise surfaced.
CTA names the outcome, not the mechanism"Contact us" instead of "Book my inspection".
4/13Anxiety · drag — the trust blockers
Named proof above the foldReview count + rating not shown high on the page.
Real names, faces, specifics in testimonialsOnly one proof element on the page.
Risk reversal named where fear existsGuarantee not surfaced near the decision.
Price honestyNo price or anchor.
Top objections answered before the CTACost, time, certification not addressed pre-CTA.
Numbers over adjectivesSome quantified claims present.
Nothing broken or staleNo dead links or placeholder text.
Sensitive asks explainedPhone field carries a short why.
No negative priming near the formNo risk words near the ask.
Certifications / licensing shownState licensing not displayed as proof.
Cost transparency before the last stepNo cost visible.
Honest defaults, no dark patternsNothing pre-checked against the buyer.
Honest urgency renderingNo real deadline tied to a claim.
9/13Distraction · drag — friction on the path
One dominant path per viewportTrends to one action.
Competing CTAs removed / nav minimalFull site nav present (expected on an organic page).
CTA repeats at each decision pointNo repeated/sticky CTA on scroll.
Option count ≤ 4Few choices at once.
Section order advances an argumentNo restated points.
Form asks only what's neededShort form.
Form mechanics soundSingle column, top labels.
Guest path primaryNo forced account.
Mobile: one-tap, above-fold, thumb-reachableCall not one tap above the fold; tap targets under 44px (Lighthouse).
Speed: LCP under 2.5s mobileService page is lighter than the home page.
Post-click step as easy as promisedNo surprise fields.
CTA mechanics: contrast, Fitts-compliantButton is high-contrast.
Feedback & momentumResponsive states.

Paid search running

Google Ads drive mold-inspection searches to the site. The campaigns run, but conversion tracking is dark and the landing experience is generic.

Acquisition detail · campaign performance not yet connected
Google Ads read access isn't granted yet, so campaign types and their performance are dark. This is the shape we populate the moment the account connects — every row fills with real numbers per campaign type.
Campaign typeMonthly spendImpressionsCTRAvg CPCConversionsTracking
Search — brandedDark
Search — non-branded (mold inspection)Dark
Local services / LSADark
Performance Max / displayDark
Campaign types shown are the standard local-services set; the live account determines which are running. Spend, impression share, CPC, and conversion integrity land in the Paid Search inventory once connected.
The pieces · 0 done well · 4 gaps
PieceWhat it needsWhat we observedVerdict
AcquisitionEach ad matched to a landing surface, trackedCampaigns live, but no message-match and per-channel tracking is dark.Gap
Solved by
ConversionA dedicated, message-matched landing pagePaid shares the generic services page; the phone is buried on mobile.Gap
Solved by
Lead handlingA fast response to paid leadsSame gap — no speed-to-lead routine.Gap
Solved by
RetentionRecapture of non-convertersNo retargeting or abandonment recovery.Gap
Solved by
Retargeting and non-converter recovery are not yet on the roadmap — they wait on the tracking and audience build, flagged for a later cycle.
Surfaces in this funnel
Paid mold-inspection landing pageThe flagship paid surface — value proposition and urgency are the failing levers32/64
What a paid landing page needsWhat we observedVerdict
Continues the ad's exact promiseAd promises an inspection; the page shows a generic services wall.Gap
Solved by
Headline names the buyer's outcomeNames the category, not the worried homeowner's outcome.Gap
Next step
See the Competitive tab for the head-to-head; a deeper teardown is a later cycle.
Primary action one tap above the fold (mobile)The call action isn't sticky or above the fold on mobile.Gap
Solved by
Proof at the point of decisionReview proof isn't placed near the CTA.Gap
Solved by
A clean, short formForm mechanics are sound — single column, few fields.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Focused path, minimal competing linksAttention ratio trends to one action, though full nav remains.Partial
Next step
Tracked as a next step — folded into the related roadmap work once measurement lands.
Through the LIFT lens · each factor's score is the share of its checks that pass — expand a factor to see them
AttentionValue propRelevanceClarityUrgencyAnxietyDistractionDistinctiveness
6/10Attention · upstream — earns the read
Glance reads professional & on-categoryThe 50ms impression is clean and credible.
Squint test: headline + CTA surviveBlurred, the two key elements still stand out.
Single standout = the conversion actionSeveral elements compete; the call/book action isn't the one isolated thing.
Fold payload earns the scrollThe fold lacks a proof element and a clear reinforcing visual.
Decision-critical content in 3 screenfulsThe core argument is within the attention budget.
No false floor; content continues at the foldThe edge signals more below.
No auto-rotating carouselStatic hero — good.
Selective emphasis only on key elementsToo many elements carry equal visual weight.
Complexity ceiling: simple silhouetteThe squint silhouette stays ordered.
Gaze direction toward CTAThe hero face looks away from the headline/CTA.
2/7Value proposition · the central lever
Headline names the problem or outcomeHeadline names the category ("Mold Inspection Services"), not the worried homeowner's outcome.
The after-state is shownNo picture of the calm, certain "your home is safe" outcome.
Subhead adds a concrete specific"Results in 48 hours" gives one real specific.
A named unique mechanism is on the surfaceNo named "how" that a competitor couldn't paste.
The offer is concreteThe visitor can tell what the inspection includes.
The cost side is collapsedEffort/time-delay not named down ("no prep", "we handle it").
One element memorable enough to retellNothing sticky — no signature guarantee, number, or named process.
3/8Relevance · lift — continues what brought them
No continuity break from the adThe ad's specific promise isn't echoed on the page (floor failure).
H1 matches the ad's promise + keywordGeneric headline; not matched to the paid keyword.
Depth matches awareness stageProblem-aware visitors get category framing, not problem-first.
Entry intent is the first subjectThe inspection-for-a-home-sale intent isn't led with.
Names who it's for"For homeowners and home buyers" appears.
Copy echoes the segment's wordsNo review/transcript language on the page.
Proof matches the visitor's situationSome local homeowner reviews present.
Every persona has a visible pathBuyers and owners both have a route.
7/11Clarity · lift — parses fast
Five-second test passesA stranger can state what's sold and who it's for.
Convention complianceLogo links home, links look like links.
Front-loaded words in headingsSeveral headings bury the information word.
Layer-cake testMessage survives reading only headings + bullets.
ScannabilityChunked, short paragraphs.
Reading level 5th–7th gradePlain language.
Accessibility floorBody text under 16px on mobile in places; one low-contrast pair.
Line measure & alignmentReadable measure, left-aligned.
No content styled like an adNo banner-blindness risk.
CTA copy says what happens next"Submit" / "Contact us" — generic verbs.
Complexity absorbed (defaults, pre-fill)Form doesn't pre-fill or progressively disclose.
0/2Urgency · lift — a reason to act now
Honest urgency where it existsNo real urgency surfaced — appointment scarcity, health risk of waiting, or a response promise.
CTA names the outcome, not the mechanism"Submit" instead of "Get my inspection booked".
5/13Anxiety · drag — the trust blockers
Named proof above the foldReview count + rating not shown above the fold.
Real names, faces, specifics in testimonialsReviews carry real names.
Risk reversal named where fear existsCertification/guarantee not surfaced near the decision.
Price honestyNo price, anchor, or stated reason it varies.
Top objections answered before the CTA"How long, what does it cost, is it certified" not addressed pre-CTA.
Numbers over adjectivesSome quantified claims present.
Nothing broken or staleNo dead links or placeholder text.
Sensitive asks explainedPhone field carries a short why.
No negative priming near the formNo "spam"/risk words.
Certifications / licensing shownState licensing + certification not displayed as trust proof.
Cost transparency before the last stepNo cost visible at any step.
Honest defaults, no dark patternsA pre-checked upsell isn't the majority-best choice.
Honest urgency renderingA generic "limited slots" line isn't tied to a real deadline.
9/13Distraction · drag — friction on the path
One dominant path per viewportAttention ratio trends to one primary action.
Competing CTAs removed / nav minimalFull site nav stays on the paid page.
CTA repeats at each decision pointNo sticky/repeated CTA; requires scroll-back on mobile.
Option count ≤ 4Few choices at once.
Section order advances an argumentNo restated points.
Form asks only what's neededShort form, fields defended.
Form mechanics soundTop labels, single column, inline validation.
Guest path primaryNo forced account.
Mobile: one-tap, above-fold, thumb-reachableCall action not one tap above the fold.
Speed: LCP under 2.5s mobileMobile LCP ~3.8s (Lighthouse).
Post-click step as easy as promisedNo surprise fields after the click.
CTA mechanics: contrast, Fitts-compliantButton is the highest-contrast element.
Feedback & momentumResponsive states, working back/undo.
1/3Distinctiveness · scored independently — the brand axis
Masked-brand testCover the logo and it could be any inspector — zero surviving cues. The "bland" failure.
Competitive squint testAt thumbnail distance it's at least separable from the two rivals.
Asset consistency (≥2 registered assets)No registered brand assets beyond logo + color.

Google Business running

The local-pack path: a strong, well-reviewed profile drives calls and directions. The build is good; the gap is what happens after the call.

The pieces · 2 done well · 2 gaps
PieceWhat it needsWhat we observedVerdict
AcquisitionShow up in the local pack, well-reviewedStrong presence — 142 reviews at 4.8★, complete profile, real photos.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
ConversionA one-tap call or directions actionCall and directions are present and prominent.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Lead handlingA fast response to the callSame gap — no speed-to-lead routine once the phone rings.Gap
Solved by
RetentionA firing review-ask loopNo systematic review request after the job to compound the proof.Gap
Solved by
Surfaces in this funnel
Google Business profileComplete and well-reviewed; posts and offers underused50/64
AttentionValue propRelevanceClarityUrgencyAnxietyDistraction
What a Google Business profile needsWhat we observedVerdict
Complete profile with real photosCategories, hours, services, and genuine photos all present.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Strong, recent reviews142 reviews at 4.8★, recent and specific.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Clear primary actionCall and directions are one tap.Done well
Working well — no action needed. We checked it so you can see the score is earned, not assumed.
Posts & offers usedThe posts/offers slots sit empty — a free urgency lever unused.Gap
Solved by
Through the LIFT lens · each factor's score is the share of its checks that pass — expand a factor to see them all
9/10Attention · upstream — earns the read
Glance reads professional & on-categoryClean listing with photos and category.
Squint test: name + rating survive4.8★ and the name dominate the card.
Single standout = the call actionCall is the most prominent action.
Listing earns the tap from the packRating + review count pull the click.
Decision-critical info visible without scrollHours, calls, directions up top.
Photos current and on-brandReal, recent photos.
Category and service set completePrimary + secondary categories set.
No stale or placeholder fieldsNothing missing or outdated.
Simple, ordered presentationThe card reads at a glance.
Posts keep the listing activeNo recent posts — the listing looks static.
6/7Value proposition · the central lever
Names the service and placeMold testing, Raleigh — clear.
Rating signals the outcome4.8★ over 142 reviews carries the promise.
Services list concreteThe offered services are spelled out.
Description states what's offeredThe business description is accurate.
Photos show the workJob and team photos present.
Review volume is memorable142 reviews is a retell-worthy number.
A named unique mechanismNo ownable "how" stated on the profile.
7/8Relevance · lift — matches local intent
Matches the local-pack queryAppears for the local mold-testing search.
Service area accurateCoverage area set correctly.
Categories match intentPrimary category fits the buyer.
Hours reflect availabilityAccurate, helps urgent callers.
Reviews mention the serviceReviews reference mold inspections specifically.
Q&A reflects real questionsCommon questions are addressed.
NAP consistent with the siteName, address, phone match.
Offers match seasonal intentNo offer posted to match urgent demand.
9/11Clarity · lift — parses fast
Listing reads in five secondsName, rating, action all clear.
Convention complianceStandard Google card behaviors.
Front-loaded service nameService is the first thing read.
Skimmable layoutStructured Google fields.
Plain language in the descriptionNo jargon.
Reading level accessibleClear to any reader.
Action labels are clear"Call", "Directions" say what happens.
Photos legible at thumbnailClear at small size.
Consistent with the websiteSame brand and details.
Description leads with the outcomeOpens with the category, not the buyer's outcome.
Posts reinforce the messageNo posts to carry a clear message.
1/2Urgency · lift — a reason to act now
Open-now / hours create immediacyLive hours give callers a reason to act.
Offer/post adds an honest reason nowNo time-bound offer posted.
10/13Anxiety · drag — the trust blockers
Named proof front and center4.8★ / 142 reviews shown.
Real names and specifics in reviewsGenuine local reviewers.
Recent reviewsRecency signals an active business.
Owner responds to reviewsResponses present.
Photos build confidenceReal work shown.
Numbers over adjectivesRating and count are quantified.
Nothing broken or staleProfile is clean.
Consistent contact infoNAP matches everywhere.
No negative recent patternNo cluster of bad reviews.
Verified businessListing is verified.
Certifications / licensing shownNot surfaced on the profile.
Price guidance presentNo price hint anywhere.
Guarantee surfacedNo risk reversal on the listing.
8/13Distraction · drag — friction on the path
One dominant action (call)Call is the clear primary action.
One-tap, thumb-reachable on mobileCall/directions are one tap.
Few competing actionsLimited choices on the card.
Directions easy to reachOne tap to maps.
No dead-end fieldsEvery field leads somewhere.
Loads instantly (Google-hosted)No speed penalty.
Call connects directlyTap dials with no detour.
Photos don't bury the actionAction stays visible.
Messaging not left unansweredGBP messaging isn't monitored for fast reply.
Booking link presentNo direct booking action wired.
Post-call routine definedNo speed-to-lead once the phone rings.
Q&A kept clean of misleading answersSome Q&A entries are user-supplied and unmanaged.
Products/services kept currentService list not refreshed for seasonality.

Not running yet opportunity

Catalogued so nothing reads as missed. These are funnels FMT could run but doesn't today.

FunnelWhat we observedStatus
Lifecycle / emailNo flows live — welcome, post-job, review-ask, and reactivation are all open opportunities.Not running
Paid socialNot applicable — FMT runs no paid social today; high-intent search fits the urgent buyer better.N/A
Filter
No items match these filters. Clear filters

The plan

Every fix and bet we found, as one list. It is ordered the way we'd run it — stop what's leaking, bank the quick wins, then build the bigger bets — but you can sort it by the outcome, funnel, surface, or type you care about using the filters above. Open any row for what we'd do, why it works, the problem it solves, and how we'd size it.

1 · Fix what's leaking now

Stop the active loss first. The urgent items on the main bottleneck — ready buyers who never reach you.
#TaskTypeOutcomeSurfaceICESize
1Add a sticky click-to-call bar above the fold on mobile paid landing pagesShipConversionPaid LP8109XX%
What we'd do
Pin a one-tap call bar to the top of every mobile paid landing page.
Why it works
Best practicePrimary action above the fold on mobile; one tap from intent to call.
BenchmarkOne-tap call paths lift mobile lead capture in local services (WordStream local-services benchmarks).
The problem it solves
Ready mobile buyers leave the paid page without reaching the phone.
Sizing
Recovers a share of the paid mobile visits that leave without contact. estimate Sized once call-tracking is connected.
2Stand up a five-minute speed-to-lead callback routineBuildLead speedOps985XXX%
What we'd do
Route every new lead to an instant alert and a defined five-minute callback.
Why it works
BenchmarkContacting a web lead within five minutes vs an hour sharply raises qualifying odds (HBR, The Short Life of Online Sales Leads).
MechanismThe first responder usually wins the job; speed compounds booking odds.
The problem it solves
Inbound is answered best-effort, often over an hour later.
Sizing
A large lever on booked rate. estimate Sized once first-response time and booked rate are tracked.
3Implement conversion tracking — forms, calls, and the booking webhookBuildMeasurementSite-wide896XXX%
What we'd do
Wire analytics goals, call tracking by channel, and a booking-confirmed webhook.
Why it works
MechanismYou can't improve what you can't see; this unblocks sizing for every other item.
The problem it solves
Most of the funnel is invisible — the dominant booking-call path is unmeasured.
Unlocks
Sizing of the booking and repeat opportunity, and honest before/after on every shipped change.

2 · Quick wins

Low-hanging fruit. Small, safe changes with fast lift — ship them in a batch.
#TaskTypeOutcomeSurfaceICESize
4Match each paid landing page to the ad that precedes itShipConversionPaid LP797XX%
What we'd do
Align each landing page's headline, hero, and CTA to the ad it follows.
Why it works
Best practiceMessage match — the page repeats the ad's exact promise and visual.
MechanismMaintained scent lowers bounce and carries intent into the form.
The problem it solves
Ads promise an inspection; the page shows a generic services wall.
5Add a Google-reviews proof block beside the booking buttonShipTrustBooking698XX%
What we'd do
Place a three-review proof block directly above the booking button.
Why it works
Best practiceProof at the point of decision.
MechanismSocial proof answers the trust objection at the moment of commit.
The problem it solves
Strong reviews exist but sit in the footer.
6Surface the satisfaction guarantee on the landing-page heroShipTrustSite-wide689XX%
What we'd do
Add the guarantee as a hero trust line and a badge beside the CTA.
Why it works
Best practiceReverse the buyer's real fear up front, where the decision is made.
The problem it solves
The guarantee exists but is buried; buyers never see the reason to feel safe.
7Add a visible "from $" price range to the landing pageShipPricingSite-wide578XX%
What we'd do
Publish a starting price or range, with what's included.
Why it works
BenchmarkPrice transparency is a lane a local rival already owns ("from $199"); silence sends price-sensitive buyers away.
The problem it solves
No price is shown anywhere; price-sensitive buyers bounce rather than call to ask.
8Pin the phone number into a sticky header on every pageShipConversionSite-wide599X%
What we'd do
Add a persistent header with a tap-to-call number site-wide.
Why it works
MechanismThe call is the dominant intent; keep it one tap away at every scroll position.
The problem it solves
The number scrolls away on most pages.

3 · Bigger bets

Longer-term, compounding. Fewer, larger builds that change what the funnel can do — start once the early lifts are banked.
#TaskTypeOutcomeSurfaceICESize
9Build a dedicated paid inspection landing pageBuildConversionPaid LP875XX%
What we'd do
Build a focused inspection page — one promise, proof, price, and a single CTA.
Why it works
Best practiceA purpose-built landing page out-converts a shared services page for paid traffic.
The problem it solves
Paid has no purpose-built page; it shares the generic services page.
Sequences after
Builds on the message-match work (#4).
10Upgrade the booking confirmation and reminder for show rateBuildConversionBooking676XX%
What we'd do
Add a same-day reminder, an easy reschedule link, and prep instructions.
Why it works
Best practiceReminders and easy reschedule reduce no-shows in appointment businesses.
The problem it solves
Confirmation fires but does little to reduce no-shows.
11Launch an annual re-inspection / membership offerTestRetentionOps764XX%
What we'd do
Test a low-cost annual re-inspection membership at the end of each job.
Why it works
BenchmarkRecurring offers lift lifetime value in home services.
MechanismTurns a one-time job into a relationship with a reason to return.
The problem it solves
Every job ends the relationship; there's no reason to come back.
Sizing
estimate A test, not a sure thing — sized after the booking and repeat opportunity is measured.
12Build a post-job reviews-generation loopBuildTrustOps676X%
What we'd do
Trigger a review request after every completed job, routed to Google.
Why it works
MechanismCompounds the strongest existing asset — review volume and recency feed the local pack.
The problem it solves
Reviews are strong but accumulate slowly and aren't asked for systematically.
13Expand non-branded organic coverage — location pages and intent contentBuildAcquisitionSite-wide664XX%
What we'd do
Build location pages for nearby towns and content for the high-intent terms FMT doesn't rank for, to grow non-branded discovery.
Why it works
Data68% of organic traffic is branded and the money term sits at position 14 — non-branded reach is the cap.
MechanismMore ranked intent terms = more top-of-funnel demand into the same conversion path.
The problem it solves
Organic is real but branded-heavy; non-branded discovery is thin.
Sequences after
Best started once tracking (#3) lands so the new traffic's conversion can be read.
14Stand up retargeting and non-converter recoveryBuildConversionOps565XX%
What we'd do
Build retargeting audiences and a recovery path for visitors who leave without contacting, once tracking and audiences exist.
Why it works
MechanismMost paid and organic visitors leave on the first visit; a second touch recovers a share of otherwise-lost intent.
The problem it solves
There's no recapture of non-converters on any channel today.
Sequences after
Needs tracking (#3) to build the audiences.

How to run it

Most of the list is independent — work down it and check things off. A few items are best batched, and a few must wait on something else. Here is how the work groups into cycles.

How to run itWhich itemsWhy
Do as much as you canThe quick wins (#4–#8) and the click-to-call (#1)Independent, safe, fast. Ship them as a single release the first week.
Best done togetherSpeed-to-lead (#2) + booking reminder (#10)Both touch the lead-to-booked hand-off; building them as one motion avoids rework.
Must be sequencedPaid LP (#9) after message-match (#4); membership (#11), reviews loop (#12), organic expansion (#13), and retargeting (#14) after tracking (#3)The page needs the matched message first; the bets need measurement so their effect can be read.

Nothing is parked — every observation in the audit has a solution or a next step on this list. What to do first, and in what order, is a call we make together once you've seen the whole picture.

What we know, and what's still dark

To make great decisions we'd want a full picture across these areas. Here is the whole framework, and where each part stands today — so you can see what's solid, what's partial, and what we still can't see. Nothing is hidden; the gaps are the first thing we close together.

KnownPartialDark — not yet measured
What we'd want to knowWhy it matters for decisionsStatus
Traffic & volume by channelWhere demand comes from and how much there isKnown
On-site engagementWhat visitors do before they convert or leavePartial
Channel attributionWhich channel actually drives booked jobsDark
Conversion tracking (form, call, booking)Where the funnel leaks, by step and surfaceDark
Lead-to-booked rateWhether leads become scheduled inspectionsDark
Job value & unit economicsWhat a job is worth and what acquisition can costPartial
Retention & repeatSecond jobs and lifetime value per householdDark
Competitive footprintHow rivals show up on the observable factsKnown
Customer voice & objectionsThe buyer's own language and reasons to hesitatePartial

Dark funnel

Paths that are structurally hard to see — stated plainly so the sized numbers stay honest.

PathWhy it's dark
Phone bookingsThe dominant path is a call, and calls aren't yet attributed to a channel or tracked to a booking.
Offline closeWhether a booked inspection becomes a paid job lives in the field, not in any system we can read.
Repeat jobsSecond and third jobs from the same household aren't linked, so retention is invisible.

What we'll start measuring

The instrumentation that turns the dark areas above into measured ones, and what each unblocks.

SignalStatusWhat it lets us see
Form submissionProposedVisit-to-lead on every page. Unblocks form-driven landing-page findings.
Phone tapProposedMobile call intent by channel. Unblocks click-to-call sizing.
Booking confirmedProposedLead-to-booked conversion. Unblocks full-funnel sizing and the repeat motion.
Call-tracking number per channelNot startedWhich channel drives booked calls.

Open questions

What we'd ask you to help answer, why it's open, and what closes it.

QuestionWhy it's openWhat closes it
What's the true close rate from booked inspection to paid job?The close happens offline.90 days of booking + invoice data.
What's the average job value by channel?Revenue isn't tagged to source.An invoice export with lead source.
How many mobile visitors choose calls vs forms?Call taps aren't tracked.The phone-tap event above.

Out of scope this cycle

Deliberately set aside for now — listed so nothing reads as missed.

AreaWhy it's out of scope
Email & SMS nurtureNo list or consent flow yet — revisit once lead capture and tracking are live.
Paid socialNot currently running; no spend to optimize this cycle.

Competitive

How FMT lines up against the local players a buyer actually compares you to — on the observable facts only. Traffic, ad, and keyword counts are tool estimates from public sources; we never assert a competitor's conversion rate. A deeper teardown is a later cycle.

PlayerEst. monthly visitsLive adsPage-1 keywordsOffer shownPrimary CTAWhere they win
Fast Mold Testing~6,900434Inspection, no guarantee shownCall / contactStrong reviews (hidden)
MoldGuard Inspectors~12,4009120Satisfaction guarantee, up frontBook onlineGuarantee & mobile call path
SafeAir Home~4,200228"From $199" inspectionBook onlineTransparent pricing
Estimates from SEO tools and public ad libraries. Counts are observable facts, not performance claims.

The open lane

Where the comparison points to a position no local rival fully owns — the wedge the roadmap leans into.

DimensionWhat rivals doThe opening for FMT
GuaranteeMoldGuard states a satisfaction guarantee up front; SafeAir doesn't.Surface a clear guarantee — FMT has one, but it's buried.
Price transparencySafeAir shows "from $199"; MoldGuard hides price.Publish a starting price — neither leader pairs price with a guarantee.
Proof at the decisionBoth show some proof on the landing page.FMT's review proof is stronger but hidden — move it to the decision.

Your data sources

Every source we'd read to run the funnel — whether it's connected and flowing, and how far we trust it. This is where you can tell us a source is wrong, unreliable, or missing. The numbers themselves live in Inventories; this map is about the connections behind them.

Several sources aren't connected yet, which is why much of the funnel is dark. Connecting them is the first work in the roadmap.
SourceWhat it should feedStatusReliabilityNotes
Google Analytics 4Site traffic and on-site behaviorPartialPartialTag fires, but no account access to verify events. Read access needed.
CallRailPhone-call trackingFlowingTrustedCalls captured; not yet tied to a channel or a booking.
Google AdsPaid spend, clicks, conversionsNot connectedRead access needed to measure the paid funnel.
Google Business ProfileLocal views, calls, directionsFlowingTrustedInsights available and consistent.
Google Search ConsoleOrganic impressions, queries, positionFlowingTrustedConnected; backs the organic reads.
Booking systemBooked inspectionsPartialPartialConfirmations fire, but no "booking confirmed" webhook yet — lead-to-booked is dark.
Job / invoicing systemPaid jobs, revenue, repeat customersNot connectedThe offline close lives here; an export is needed to size close rate and LTV.
Experiment toolingControlled before/after testsNot connectedNo way to run and read an A/B test yet.

What we examined

The whole territory — including where we found nothing wrong. Healthy is stated, not hidden.

LayerOrganicPaidGoogle BusinessRepeat
ContextFindingFindingHealthyFinding
FunnelsFindingFindingHealthyUnmeasured
SurfacesPartialFindingHealthyOut of scope

The facts we collected

A catalog of what is true about your site, your traffic, and your market — facts only, no judgment. Every verdict in the Full Audit reads from these facts; the Data tab maps the sources behind them. Every field is listed even when we have not measured it yet, so the gaps are visible, not hidden.

Measured read directly from the site or a tool Partial some of the field set captured Not measured needs access we do not have yet Not applicable the channel is not in play
The catalog 13 buckets

Site & platform

What the site is built on, how it performs, and how accessible it is.

Tech Stackvia fingerprintPartial
Every tool the site runs, what it does, how trustworthy it is, and what the platform constrains.
Platform / CMS
WordPress
Hosting / CDN
WP Engine
Platform contract expiry
Not yet measured
Platform constraints
Theme-locked; no tag manager installed; no A/B tooling detected
Tools (2)
ToolCategoryWhat it doesReliabilityFeeds canonical data
Google Analytics 4AnalyticsSite analytics (tag present, access not yet granted)partial — tag fires, no account access to verify eventsNo
CallRailCallsCall tracking for phone leadstrustedNo
Sitevia crawlPartial
Traffic composition (device, channel mix, acquisition vs existing) and the page inventory.
Total monthly visits
Not yet measured
Acquisition vs existing split
Not yet measured
Pages crawled
18
Mobile share
Not yet measured
Desktop share
Not yet measured
Pages per visit
Not yet measured
Mobile bounce rate
Not yet measured
Desktop bounce rate
Not yet measured
Avg session
Not yet measured
Pages (1 of 18 detailed)
PagePurposeCategoryVisitsBounceLighthouseIndexable
/ (homepage)Brand intro + routingAcquisition58Yes
Technicalvia LighthouseMeasured
Core Web Vitals, page weight, Lighthouse scores, and crawl/index health.
LCP
3.1s
CLS
0.04
INP
Not yet measured
FCP
1,800 ms
TTFB
640 ms
Page weight
4.2 MB
Lighthouse performance
58
Lighthouse best practices
79
Lighthouse SEO
83
Structured data present
No
Sitemap.xml present
Yes
Broken links
2
Full page · Homepage, desktop, above the fold
Mobile Performancevia LighthouseMeasured
The mobile-lens deep dive: mobile CWV, tap targets, viewport, mobile engagement.
Mobile LCP
5.4s
Mobile CLS
0.07
Mobile INP
Not yet measured
Tap targets ≥44px
No
Viewport configured
Yes
Min body font (px)
14 px
Mobile traffic share
Not yet measured
Mobile bounce rate
Not yet measured
Element · Primary CTA on mobile, below the fold
WCAG Accessibilityvia axePartial
The accessibility checklist: pass/fail counts per conformance level, plus the per-criterion roll.
Standard
WCAG 2.1 AA
Level A pass
22
Level A fail
5
Level AA pass
14
Level AA fail
9
Contrast violations
7
Missing alt text
12
Keyboard navigable
Not yet measured
Criteria (1 of 51 detailed)
CriterionLevelStatusWhat we saw
1.4.3 Contrast (Minimum)AAFailBody text on teal fails 4.5:1 in the footer and CTA band

Content & brand

What the site says and how it looks.

Contentvia crawlPartial
The content inventory: pages, proof, differentiation visibility, metadata hygiene.
Service pages
4
Blog posts
6
Meta descriptions unique
No
Testimonials present
Yes
Before/after present
No
Differentiation visible
No
Pages (1 detailed)
PageTypeWord countProof elementsPrimary CTA
/mold-testingService4801Call now
Design & Brandvia css-extractMeasured
The extracted design system: typography, color, imagery, brand assets.
Heading font
Montserrat
Body font
Open Sans
Type scale
1.250 (major third)
Primary color
#1a5e63
Secondary color
#0d3b3e
Accent color
#f4a259
Logo present
Yes
Imagery style
Stock photography, inconsistent treatment
Assets (1 detailed)
AssetClassWhere used
Brand color — tealColorHeader, primary buttons

Acquisition & competitive

Where prospects come from and who else is competing for them. Volume and cost land once analytics and ad accounts are connected.

Traffic AcquisitionNot measured
Where new prospects come from — volume, cost, and CAC per channel.
Total monthly visits
Not yet measured
Acquisition-relevant visits
Not yet measured
Primary channel
Organic
Channels (2)
ChannelActiveMonthly volumeCostCACCVRConversion event
OrganicYes$0Call
Paid searchYesCall
Competitivevia cro-researcherPartial
The competitor set and each rival's observable footprint — facts only; the head-to-head comparison is the Audit.
Competitors catalogued
3
Market
Raleigh NC
Competitors (1 of 3 detailed)
CompetitorEst. organicKeywordsPage-1Live adsLocal packOffer
Regional Mold Prosregionalmoldpros.com · CTA: Book online2,400610416YesFree inspection

Channels

The four acquisition and retention channels. SEO is read from public rank data; paid and lifecycle land once accounts are connected.

SEOvia dataforseoPartial
Organic footprint: rankings, ranked-keyword depth, branded split, trend, backlinks, plus per-keyword rows.
Ranked keywords
312
Page-1 keywords
34
Page-1 share
11%
Branded share
68%
Est. organic traffic
1,900
Est. paid-traffic equivalent
$5,400
Keywords gained
Not yet measured
Keywords lost
Not yet measured
Avg position
38.5
Referring domains
47
Keywords (1 of 312 detailed)
KeywordVolumePositionMarketVerified SERPIntent
mold testing raleigh nc1,30014Raleigh NCYesCommercial
LifecycleNot measured
Email/retention: the flow inventory, list health, deliverability, owned-revenue share, segmentation.
Flows present
Not yet measured
Flow count
Not yet measured
List size
Not yet measured
Deliverability rate
Not yet measured
Owned-revenue share
Not yet measured
Send cadence
Not yet measured
Segmentation present
Not yet measured
Paid SocialNot applicable
FMT runs no paid social. The field set is held ready for when the channel comes into play.
Campaigns
Not applicable
Monthly spend
Not applicable
Avg CTR
Not applicable
Avg CPM
Not applicable
Frequency
Not applicable
Audiences
Not applicable
Creatives
Not applicable

Our approach

How we work, in two moves: first we assess where the business stands at every stage, then we diagnose why the funnel leaks where it does. Everything else in this report is the output of these two moves.

How we assess

We work top-down, from why people buy to whether the machine actually converts them:

  1. Ground in the qualitative. Who the target customer is, the job they hire you for, their triggers, fears, and the words they use. Everything downstream serves this.
  2. Read the design of the business. The product, the offer, differentiation, positioning, and brand — how well the business is built to meet that customer's need, and where the match can be deepened.
  3. Check the mechanics & the data reality. The tool stack, the acquisition channels, the conversion platforms — what's actually wired, and what each one can tell us.
  4. Score performance at each stage. Are we visible — getting in front of eyeballs (impressions)? Are we activating that attention — earning the click onto a surface we control? Once they're there, are they converting — booking, buying? And do they return? We use the data to find the strengths and the weaknesses.

This maps directly onto the three layers below (Context → Funnels → Surfaces) and the funnel stages on the Funnel tab.

How we diagnose

Finding where the funnel leaks is only half the job; the value is explaining why. At each leak we ask what's adding fear, uncertainty, doubt, or friction on the way through — why CTR isn't higher on an organic result, why qualified traffic lands and bounces instead of converting, why a ready buyer stalls at the form. The answer is always one of four levers we can pull:

Increase perceived value Decrease effort to act Decrease perceived risk Increase momentum & excitement

Every recommendation in the roadmap is one of these four moves, aimed at a specific leak. The LIFT lens below is how we make that diagnosis concrete on each surface.

How this audit thinks

The model the engine assesses against — so the report reads as one coherent system, not a list of opinions.

The three layers

Every funnel is assessed top-down through three layers. A weak layer caps the ones below it: a brilliant landing page can't save a business with no offer, and a great offer can't save a funnel with no way to capture the lead. We use plain names in this report — the engine's internal terms are noted in parentheses.

Context (Foundation)
Is the strategy sound? — customer, offer, economics, goals, measurement, competition
Funnels (Funnel)
Does the machine exist and work? — the canonical pieces that move demand to revenue, per funnel you run
Surfaces (Execution)
Is each touchpoint built well? — the pages and profiles a visitor actually meets

The scorecard

Every area — a Context domain, a funnel piece, a surface — is scored the same way: against a defined checklist of what great looks like, each criterion drawn from a named framework. Every criterion gets one of three verdicts:

Gap the element is absent — score 0
Partial it exists but is compromised — score 1, still counts as not passing
Done well it's in place and working — score 2, the only one the number counts

The score is how many criteria are done well over how many apply (e.g. Customer 4/7); criteria that don't apply are excluded, never counted against you. As a rough read, 70%+ is healthy, 40–69% is mixed, under 40% needs work. We show the passes as well as the misses, so you see what's working and exactly what to fix to raise the score — a count you can act on, not a vague grade.

The LIFT lens

LIFT is a lens we read each surface through — not the leading frame. We first score a surface against the concrete elements it should have (a hero that names the outcome, proof at the decision, a one-tap mobile call), then use LIFT to explain why a surface converts or doesn't. A page can pass every LIFT factor and still be a poor surface if the elements are disconnected, so the surface criteria lead and the lens follows. Value proposition is the central lever; relevance, clarity, and urgency lift it; anxiety and distraction drag it down; attention sits upstream of all of them.

CentralValue proposition — the strength of what's offered relative to the cost of acting.
LiftRelevance — does the page match the intent that brought the visitor?
LiftClarity — is the offer and the next step immediately understood?
LiftUrgency — is there a real reason to act now?
DragAnxiety — what fear or doubt blocks the action?
DragDistraction — what competes with the single intended action?
UpstreamAttention — does the surface earn the first three seconds?

On every surface we read those factors across three dimensions — because a leak can come from any of them:

LayoutLayout & positioning — what's where: the order of elements, what's above the fold, where the eye goes, where the action sits.
CopyCopy — what it says: the headline, the claims, the proof, the CTA wording, the objections answered.
VisualsVisuals — what it shows: imagery, hierarchy, contrast, and whether the design itself builds or erodes trust.

Scoring & sequencing

Beyond the pass-rate scores, every recommended finding is rated on three 1–10 axes, then sequenced. We never publish an invented number — the metric named on each card is the real one we expect to move, and magnitude is left to the measured result rather than a fabricated forecast.

AxisAsks
ImpactHow much revenue the fix is worth if it works.
ConfidenceHow well-evidenced it is — data, pattern, and mechanism.
EffortHow fast it ships (higher = faster, lower lift to build).

Each finding is then routed by certainty and reversibility: high-certainty, easily-reversible changes are a Ship; uncertain-but-reversible ideas are a Test; uncertain-and-costly questions are Research first.

Causal chains

Where a symptom, its cause, and the fix line up, we say so explicitly — so the recommendation reads as a chain, not a guess.

Symptom: leads lost on mobileCause: call buried below the foldFix: sticky click-to-callOutcome: more booked calls

Evidence & confidence

Every claim in this report is backed, and we show the backing. A finding earns confidence from up to five kinds of evidence — the more that stack, the higher the confidence we report on it.

DataA measured number from your own analytics or tools.
BenchmarkA category or competitor figure, with the source named so you can check it.
Best practiceAn established convention with a track record.
HeuristicA conversion principle that reliably holds.
MechanismThe plain reason the change should work.

When a number is measured, we show it. When it's an estimate or an inference — because the tracking isn't live yet — we flag it estimate and give it as a range, never a guarantee. We never assert a competitor's conversion rate or invent a "lift to X%" — magnitude is left to the measured result.

Observations & solutions

The audit produces two linked things. An observation is a problem or opportunity we found, with its evidence — it stands on its own, even where we don't yet prescribe a fix (we say why). A solution is an action that addresses one or more observations. The Full Audit leads with the observation; the Roadmap leads with the solution and links back to the problem it solves. One master list feeds both, so nothing is double-counted and every recommendation traces to something we observed.

Observation: ready buyers leave without the phoneSolution: sticky click-to-call (Ship)Measured on: paid mobile visit-to-lead