User experience and conversion rate optimization audit. Activates when discussing conversion rate, user experience, bounce rate, form optimization, click-to-call, booking flows, analytics setup, conversion tracking, page layout, or converting visitors into leads. Phase 17. Output: {AUDIT_DIR}/cro-findings.md
From local-seo-auditnpx claudepluginhub anthropics/claude-plugins-community --plugin local-seo-audit-systemThis skill uses the workspace's default tool permissions.
Implements protocol-based DI in Swift for mocking file system, network, iCloud, and APIs to enable deterministic tests with Swift Testing and concurrency.
Provides SwiftUI patterns for @Observable state management, view composition, NavigationStack navigation, environment injection, and performance optimization in iOS/macOS apps.
Provides Swift 6.2 concurrency patterns: single-threaded async defaults, @concurrent background offloading, isolated MainActor conformances to eliminate data-race errors.
CRO is the multiplier on all SEO investment: doubling conversion rate at constant traffic = doubling revenue without additional marketing spend. For local businesses, the average top-quartile performer converts at 10–15% (home services) vs. an average of 3–7% — a 3–5× gap achievable without any additional traffic. In 2025, behavioral signals are confirmed local ranking factors: Google's Navboost system weights dwell time, pogo-stick rate, and return visits — meaning poor UX literally suppresses rankings. AI Overviews drive 2–4× higher conversion intent on click-through than standard organic results (users who arrive via AI are further in the decision process). GBP conversion signals (direction clicks, call clicks, website clicks) now feed Google's local ranking algorithm directly, making on-site and GBP CRO inseparable.
2025 CRO benchmarks for local businesses:
Traffic without conversions is wasted authority. In 2025–2026:
Typical local business conversion benchmarks (2025): | Industry | Avg Conversion Rate | Top Quartile | |---------|--------------------|-----------|| | Home services (plumbing, HVAC) | 3–7% | 10–15% | | Legal / law firms | 1–3% | 5–8% | | Healthcare / dental | 2–5% | 8–12% | | Automotive | 2–4% | 6–10% | | Restaurant (reservation) | 4–8% | 12–20% |
Read {AUDIT_DIR}/intake-data.md — business goals, primary conversion types, URL.
Read {AUDIT_DIR}/technical-findings.md — speed and mobile issues affecting CRO.
Read {AUDIT_DIR}/onpage-findings.md — CTA placement and content gaps.
Read {AUDIT_DIR}/speed-findings.md — LCP, INP, CLS scores (direct CRO factors).
Tools for this phase:
| Tool | Purpose | Cost |
|---|---|---|
| Microsoft Clarity | Heatmaps, session recordings, rage clicks, dead clicks — free unlimited | Free |
| Hotjar | Heatmaps, session recordings, on-page surveys | Paid/Free (limited) |
| GA4 | Conversion events, funnel analysis, user flow, channel attribution | Free |
| CallRail | Call tracking, conversation intelligence, attribution to source | Paid |
| VWO / Optimizely | A/B testing platform for CTA text, layout, form fields | Paid |
| WhatConverts | Multi-channel lead tracking (calls, forms, chat) with attribution | Paid |
| PageSpeed Insights | CWV scores per page — LCP/INP/CLS affecting conversion | Free |
| FullStory | Session replay + product analytics — identify exact friction points | Paid |
| Conversion Type | Present on Site? | Tracking Active? | Current Rate |
|---|---|---|---|
| Phone call (click-to-call) | ✅/❌ | ✅/❌ (CallRail?) | |
| Contact form submission | ✅/❌ | ✅/❌ (GA4 event?) | |
| Online booking / appointment | ✅/❌ | ✅/❌ | |
| Quote request form | ✅/❌ | ✅/❌ | |
| Live chat / chatbot | ✅/❌ | ✅/❌ | |
| Direction click (Google Maps) | ✅/❌ | ✅/❌ | |
| Email click | ✅/❌ | ✅/❌ |
For EACH conversion type, assess 4 dimensions:
inputmode attributes prevent wrong keyboard types?| Trust Element | Present? | Location | Quality |
|---|---|---|---|
| Review rating + count ("★★★★★ 4.8 — 127 reviews") | ✅/❌ | ||
| Certifications / licenses badge | ✅/❌ | ||
| "Same-day service" or key differentiator | ✅/❌ | ||
| Guarantee statement | ✅/❌ | ||
| Customer count ("500+ satisfied customers") | ✅/❌ |
For local businesses, phone is typically the #1 conversion. Every instance must be click-to-call:
| Check | Pass/Fail |
|---|---|
| Phone in header — visible without scrolling on desktop AND mobile | ✅/❌ |
Phone as <a href="tel:[number]"> (not plain text) | ✅/❌ |
| Phone in footer | ✅/❌ |
| Phone on Contact page | ✅/❌ |
| Phone in GBP (matches website exactly) | ✅/❌ |
| Phone in LocalBusiness schema | ✅/❌ |
| Call tracking number (CallRail/WhatConverts) for attribution | ✅/❌ |
| Font size ≥20px on mobile (minimum 18px) | ✅/❌ |
| Sticky mobile bar with phone + primary CTA | ✅/❌ |
Impact of click-to-call on mobile: 70% of mobile searchers use click-to-call for local businesses (Google Consumer Insights 2024). Businesses without tel: links lose 70% of mobile call conversions.
For each lead form:
| Form | Location | Field Count | Submit Text | Thank You? | CRM? | Mobile OK? |
|---|---|---|---|---|---|---|
| Contact | Yes/No | Yes/No | Yes/No | |||
| Quote request | Yes/No | Yes/No | Yes/No | |||
| Booking | Yes/No | Yes/No | Yes/No |
Form UX Checklist (each form):
type="tel" on phone, type="email" on email (triggers correct keyboard)Can a user reach the contact form within 2 clicks from the homepage?
Result: [X clicks] — Pass/Fail (target ≤2)
| Element | Present? | Works on Mobile? | Issue |
|---|---|---|---|
| Top services in main nav | ✅/❌ | ✅/❌ | |
| Contact/Book button prominent in nav | ✅/❌ | ✅/❌ | |
| Mobile hamburger menu opens + works | ✅/❌ | N/A | |
| Sticky header on scroll? | ✅/❌ | ✅/❌ | |
| Breadcrumbs on inner pages | ✅/❌ | ✅/❌ |
Trust signals at key conversion points increase CVR 15–30% (Baymard Institute, 2024).
Mobile drives 60–70% of local service searches. Audit at 375px viewport width (iPhone SE):
| Check | Pass/Fail | Severity |
|---|---|---|
| Font size ≥16px for all body text | High | |
| Tap targets ≥44×44px for all buttons/links | Critical | |
| ≥8px spacing between adjacent tap targets | High | |
| No horizontal scrolling at 375px viewport | Critical | |
Phone number tappable (tel: link) | Critical | |
| Sticky CTA bar (phone + book) always visible while scrolling | High | |
| Forms don't cause page zoom on iOS (font-size ≥16px on inputs) | Medium | |
| Images properly sized (no overflow) | Medium | |
| CTA button visible without scrolling on mobile | Critical |
Pull from {AUDIT_DIR}/speed-findings.md:
| Metric | Current Score | CRO Impact if Failing |
|---|---|---|
| LCP (target <2.5s) | [Xs] | 20% conversion loss per second |
| INP (target <200ms) | [ms] | High friction — form inputs feel slow |
| CLS (target <0.1) | [score] | CTAs shift after page load — misclicks |
| Mobile PageSpeed (target ≥70) | [X/100] | 53% abandonment at 3s+ load |
| TTFB (target <800ms) | [ms] | Perceived as "slow server" |
Flag all speed failures as CRO issues with dual Impact scores.
Without tracking, CRO improvement is guesswork.
| Tracking Item | Implemented? | Notes |
|---|---|---|
| GA4 installed + data flowing | Yes/No | |
| GA4 event: form submissions | Yes/No | Event name: |
| GA4 event: phone clicks (tel: links) | Yes/No | |
| GA4 event: booking completions | Yes/No | |
| GA4 event: chat interactions | Yes/No | |
| GSC linked to GA4 | Yes/No | |
| CallRail / WhatConverts (call tracking) | Yes/No | |
| Microsoft Clarity / Hotjar (heatmaps) | Yes/No | |
| Session recordings active | Yes/No | |
| A/B testing tool active | Yes/No | |
| Conversion dashboard set up (GA4 custom report) | Yes/No |
If GA4 not installed: ❌ CRITICAL — business has zero conversion data. Priority: immediate, Effort: 1–2 hrs.
Visit top 3 competitor sites (desktop + mobile) and audit their CRO elements:
| Metric | Client | Comp 1 | Comp 2 | Comp 3 |
|---|---|---|---|---|
| Click-to-call in header | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
| Sticky mobile CTA bar | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
| Review badge near CTA | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
| Form field count | ||||
| Live chat / chatbot | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
| GA4 installed (BuiltWith check) | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
| Mobile PageSpeed (PSI) | /100 | /100 | /100 | /100 |
| Price transparency on site | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
AI CRO Signals:
| Check | Why It Matters | Pass/Fail |
|---|---|---|
| FAQPage schema on service pages | AIO citations drive 2–4× higher intent visitors | |
| HowTo schema on process pages | Attracts comparison-stage searchers closer to conversion | |
| Structured pricing/estimate content | AI cites specific pricing → pre-qualifies leads | |
| GBP booking button / appointment URL | Direct conversion from GBP without website visit | |
| Review count in GBP (50+) | AIO prominently features review counts as trust proxy |
<a href="tel:+1XXXXXXXXXX">. Test on mobile. Effort: 30 min. Expected: 20–30% more call clicks from mobile.| Win | Expected Conversion Lift | Impact (1–5) | Feasibility (1–5) | Priority | Effort |
|---|---|---|---|---|---|
| Sticky click-to-call bar on mobile | 15–40% more calls | 5 | 5 | 25 | 2 hrs |
All phone numbers as tel: links | 20–30% more call clicks | 5 | 5 | 25 | 30 min |
| Reduce form fields to ≤5 | 20–35% more submissions | 4 | 5 | 20 | 1 hr |
| Install GA4 + track form submits | Enables all future CRO | 5 | 4 | 20 | 2 hrs |
| Add review count near CTA ("★★★★★ 127 reviews") | 10–25% lift | 4 | 5 | 20 | 30 min |
| Guarantee statement near CTA | 10–20% lift | 4 | 5 | 20 | 30 min |
| Install Microsoft Clarity (free heatmaps) | Reveals friction points | 4 | 5 | 20 | 30 min |
| CTA button: action language ("Get Free Quote") | 5–15% lift | 3 | 5 | 15 | 15 min |
| Before/after photo gallery | Trust signal, higher CVR | 4 | 3 | 12 | 4–8 hrs |
| Video testimonial (60 sec) | 15–30% conversion lift | 4 | 2 | 8 | 1–2 days |
| Category | Weight | Score |
|---|---|---|
| Conversion path accessibility (≤2 clicks, above fold) | 20% | /20 |
| Phone visibility + click-to-call (all instances) | 20% | /20 |
| Form UX (≤5 fields, mobile-friendly, clear submit text) | 20% | /20 |
| Trust signals near CTA (reviews, guarantees, credentials) | 15% | /15 |
| Mobile UX (tap targets, no horizontal scroll, sticky CTA) | 15% | /15 |
| Conversion tracking (GA4 + events + call tracking) | 10% | /10 |
Veto: No GA4 installed AND no call tracking → maximum score 60/100.
Write to {AUDIT_DIR}/cro-findings.md with YAML frontmatter. Also write HTML report to {REPORTS_DIR}/phase-17-cro.html and convert to PDF via python3 scripts/generate_pdf.py.
---
skill: strategy/ux-cro-audit
phase: 17
date: [YYYY-MM-DD]
business: [Business Name]
url: [URL]
score: [X/100]
status: [optimized|needs-work|critical]
ga4_installed: [yes|no]
click_to_call: [yes|no]
mobile_cta_visible: [yes|no]
---
Include:
Key consumers:
audit/speed-optimization — LCP/INP/CLS data feeds CRO impact assessmentlocal/local-seo — GBP click-to-call and conversion tracking overlap| Issue | Severity | Effort | Priority | Tool to Diagnose |
|---|---|---|---|---|
| No click-to-call on mobile | Critical | 15 min | 25 | GA4 + GSC mobile usability |
| GA4 not installed / no conversion tracking | Critical | 1–2 hrs | 25 | Screaming Frog JS check |
| Form > 5 fields (10–20% submission drop per field) | High | 1–2 hrs | 20 | Hotjar / Clarity heatmap |
| No trust signals above fold | High | 30–60 min | 20 | Ahrefs / SimilarWeb (check competitor CTAs) |
| CTA buried below 2 screen scrolls | High | 30 min | 20 | Clarity session recordings |
| LCP >2.5s (20% conversion drop per second) | High | 2–8 hrs | 20 | PageSpeed Insights / Ahrefs audit |
| INP >200ms (interaction lag hurts engagement) | High | 2–8 hrs | 16 | PageSpeed Insights (INP replaced FID March 2024) |
| No sticky header with phone/CTA on mobile | Medium | 1–2 hrs | 15 | Manual mobile review |
| Missing star rating badge near CTA | Medium | 30 min | 15 | SEMrush / Rank Math review schema |
| No social proof on service pages | Medium | 1–2 hrs | 12 | Manual content audit |
AI Overviews (AIO) now appear for 20–35% of local service queries. Users clicking through from AIO convert at 2–4× the rate of standard organic results — they arrive further in the buying decision. CRO implications:
GBP conversion clicks now feed Google's local ranking algorithm directly:
| GBP Conversion Type | CRO Optimization | Expected Impact |
|---|---|---|
| Direction clicks | Add parking info, landmark reference | +15–25% direction clicks |
| Call clicks (mobile) | Verify phone number is call-tracking enabled (CallRail) | Measurable attribution |
| Website click → booking | Add Google Reserve / booking link to GBP | 20–35% more direct bookings |
| Q&A (2025 feature) | Pre-seed 5+ questions; high-intent Q&A reduces friction | Reduced pre-call friction |
| Review velocity (last 60–90 days) | Request reviews from recent customers | 3–5× weight in local ranking |
Write {REPORTS_DIR}/phase-17-cro.html → python3 scripts/generate_pdf.py --html {REPORTS_DIR}/phase-17-cro.html
output/report-generation — CRO score + quick wins in master report section 17