name: cro description: "Use when optimizing landing pages, signup flows, checkout processes, or any user-facing page for higher conversion rates - before A/B testing." user-invocable: true argument-hint: "[page path or component]" allowed-tools: Read, Bash, Glob, Grep
/cro - Conversion Rate Optimization
Audit pages and flows for conversion friction - identifying drop-off points, persuasion gaps, and technical blockers - then produce prioritized recommendations with testable A/B hypotheses.
Target: $ARGUMENTS
When to Use
- Before launching a landing page or signup flow
- When conversion rates are below industry benchmarks
- After redesigning a checkout or onboarding flow
- When bounce rate is high on key pages
- Before running paid traffic to a page
- When
@marketingGrowth mode needs structured CRO analysis - NOT for: SEO issues (use
/seo-audit) - NOT for: general design quality (use
/design-review) - NOT for: copy creation (use
/copywriting)
Workflow
Step 1: Page & Flow Analysis
- Read the target page/component:
# Find the page/component code
find $TARGET -type f \( -name "*.tsx" -o -name "*.vue" -o -name "*.svelte" -o -name "*.astro" \) | head -20
-
Identify the conversion goal:
- Signup (form submission)
- Purchase (checkout completion)
- Download (file/app download)
- Contact (form/chat initiation)
- Engagement (feature activation)
-
Map the user flow:
## User Flow
[Entry point] → [Step 1] → [Step 2] → ... → [Conversion]
Example:
Landing page → Pricing section → Signup form → Email verification → Dashboard
- Identify drop-off points - Where in the flow might users leave?
Step 2: Friction Audit
Check for conversion killers:
| Friction Type | What to Look For | Impact |
|---|---|---|
| Form friction | Too many fields, required fields, no autofill | HIGH |
| Cognitive load | Too many choices, unclear hierarchy, wall of text | HIGH |
| Trust deficit | No social proof, no security badges, unclear pricing | HIGH |
| Speed friction | Slow loading, heavy JS, unoptimized images | HIGH |
| Navigation friction | Can't find CTA, buried below fold, confusing layout | MEDIUM |
| Mobile friction | Small touch targets, horizontal scroll, unreadable text | MEDIUM |
| Copy friction | Unclear value prop, jargon, no urgency | MEDIUM |
| Technical friction | Broken forms, validation errors, payment failures | CRITICAL |
# Count form fields (friction indicator)
grep -rn "<input\|<select\|<textarea" $TARGET --include="*.tsx" --include="*.vue" 2>/dev/null | wc -l
# Check for form validation UX
grep -rn "onBlur\|onChange.*validation\|zod\|yup\|formik\|react-hook-form\|vee-validate" $TARGET --include="*.tsx" --include="*.vue" 2>/dev/null | head -10
# Check for loading/performance issues
grep -rn "useEffect\|onMounted\|onMount" $TARGET --include="*.tsx" --include="*.vue" --include="*.svelte" 2>/dev/null | head -10
# Check image optimization
grep -rn "<img\|<Image" $TARGET --include="*.tsx" --include="*.vue" 2>/dev/null | grep -v "next/image\|nuxt-img\|loading=" | head -10
Step 3: Persuasion Checklist (Cialdini's Principles)
Evaluate each persuasion principle:
| Principle | Implementation | Status |
|---|---|---|
| Reciprocity | Free value before asking (free trial, guide, tool) | [Present/Missing] |
| Scarcity | Limited time/quantity indicators (genuine, not fake) | [Present/Missing] |
| Authority | Expert endorsements, certifications, press logos | [Present/Missing] |
| Social Proof | Testimonials, user count, ratings, case studies | [Present/Missing] |
| Liking | Relatable brand voice, user stories, team photos | [Present/Missing] |
| Commitment | Micro-conversions (email first, then full signup) | [Present/Missing] |
| Unity | Shared identity ("Join 10,000 developers like you") | [Present/Missing] |
# Check for social proof elements
grep -rn "testimonial\|review\|rating\|customer\|users\|trusted" $TARGET --include="*.tsx" --include="*.vue" --include="*.astro" 2>/dev/null | head -10
# Check for trust signals
grep -rn "secure\|ssl\|encrypted\|guarantee\|money-back\|badge" $TARGET --include="*.tsx" --include="*.vue" 2>/dev/null | head -10
Step 4: Copy & CTA Audit
| Check | Best Practice |
|---|---|
| Headline clarity | Value proposition clear in <3 seconds |
| Above-the-fold | CTA visible without scrolling |
| CTA text | Action verb + benefit (not "Submit" or "Click here") |
| CTA contrast | Visually distinct from surrounding content |
| Value before form | User understands benefit before filling fields |
| Objection handling | FAQ, guarantees, or trust signals near CTA |
| Urgency | Genuine deadline or limited availability (if applicable) |
# Check CTA button text
grep -rn "type=\"submit\"\|<button\|<Button" $TARGET --include="*.tsx" --include="*.vue" 2>/dev/null | head -10
# Check for "Submit" or generic CTA text (anti-pattern)
grep -rn ">Submit<\|>Click here<\|>Send<\|>Go<" $TARGET --include="*.tsx" --include="*.vue" 2>/dev/null | head -5
Step 5: Technical CRO
Performance directly impacts conversion (every 100ms delay = -1% conversion):
| Check | Impact on Conversion |
|---|---|
| Page load time | +1s load time = -7% conversion (Google) |
| Mobile responsiveness | 53% abandon if >3s load on mobile |
| Form error recovery | Inline validation saves 22% form abandonment |
| Payment options | Each additional payment method = +5-10% checkout conversion |
| Loading states | Skeleton screens reduce perceived wait time by 30% |
# Check for skeleton/loading states
grep -rn "skeleton\|Skeleton\|loading\|isLoading\|isPending" $TARGET --include="*.tsx" --include="*.vue" 2>/dev/null | head -10
# Check for error boundary/handling in forms
grep -rn "error\|Error\|catch\|onError\|isError" $TARGET --include="*.tsx" --include="*.vue" 2>/dev/null | head -10
# Bundle size indicators
find $TARGET -name "*.tsx" -o -name "*.ts" | xargs wc -l 2>/dev/null | sort -rn | head -10
Step 6: Prioritized Recommendations
For each finding, produce:
### Recommendation [N]: [Title]
**Finding:** [What's wrong]
**Impact:** HIGH | MEDIUM | LOW
**Effort:** S (< 2h) | M (2-4h) | L (4-8h)
**Priority:** [Impact/Effort ratio]
**A/B Hypothesis:**
> If we [change], then [metric] will [improve] because [reason].
**Implementation:**
- File: [file:line]
- Change: [specific change]
Prioritize by: HIGH impact + LOW effort first (quick wins).
Verification Protocol
Before claiming the CRO audit is complete:
- Conversion goal was explicitly identified
- User flow was mapped from entry to conversion
- All 7 friction categories were checked
- All 7 Cialdini principles were evaluated
- At least 3 recommendations have A/B hypotheses
- Recommendations are prioritized by impact/effort ratio
- Technical CRO checks were performed (performance, form UX)
- Each recommendation has a specific file:line reference
Anti-Rationalization
| Excuse | Reality |
|---|---|
| "Our conversion rate is fine" | Fine compared to what? Industry benchmarks? Last month? Without data, you're guessing. |
| "We need more traffic, not better conversion" | Doubling conversion is cheaper than doubling traffic. Optimize what you have first. |
| "Users will figure it out" | Users won't. They'll leave. Average attention span is 8 seconds. Remove friction or lose them. |
| "We can't change the design" | CRO isn't redesign. Changing CTA text from "Submit" to "Start Free Trial" is a 5-minute code change. |
| "A/B testing is too complex" | You don't need a testing platform to start. Ship Variant B, measure, compare. Manual A/B is still A/B. |
| "Our product is too technical for CRO" | Technical products still need clear value propositions. Complexity in product ≠ complexity in messaging. |
| "We already did CRO" | CRO is continuous. User behavior changes, competitors evolve, pages degrade. Audit quarterly. |
Rules
- Read-only - Never modify files during a CRO audit
- Data-informed - Base recommendations on research and benchmarks, not opinions
- Hypothesis-driven - Every recommendation needs a testable A/B hypothesis
- Quick wins first - Prioritize high-impact, low-effort changes
- One CTA per view - Never recommend multiple competing CTAs
- Genuine urgency only - Never recommend fake scarcity or countdown timers
- Code-grounded - Every finding must reference specific files and components
- Conversion goal explicit - Never audit without defining what "conversion" means
Output
──── /cro ────
Target: $ARGUMENTS
Conversion Goal: [signup | purchase | download | contact]
User Flow: [entry] → ... → [conversion]
Friction Score: [N]/100 (lower = more friction)
Persuasion Score: [N]/7 principles present
Findings:
CRITICAL: N
HIGH: N
MEDIUM: N
LOW: N
Top Recommendations:
1. [HIGH/S] [recommendation] → Hypothesis: [if/then]
2. [HIGH/M] [recommendation] → Hypothesis: [if/then]
3. [MEDIUM/S] [recommendation] → Hypothesis: [if/then]
Quick Wins: N (HIGH impact, LOW effort)
Total Recommendations: N
──── CRO audit complete ────