CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

cro

Use when optimizing landing pages, signup flows, checkout processes, or any user-facing page for higher conversion rates - before A/B testing.

Quality

79%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/cro/SKILL.md
SKILL.md
Quality
Evals
Security

/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 @marketing Growth 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

  1. 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
  1. Identify the conversion goal:

    • Signup (form submission)
    • Purchase (checkout completion)
    • Download (file/app download)
    • Contact (form/chat initiation)
    • Engagement (feature activation)
  2. Map the user flow:

## User Flow
[Entry point] → [Step 1] → [Step 2] → ... → [Conversion]

Example:
Landing page → Pricing section → Signup form → Email verification → Dashboard
  1. Identify drop-off points - Where in the flow might users leave?

Step 2: Friction Audit

Check for conversion killers:

Friction TypeWhat to Look ForImpact
Form frictionToo many fields, required fields, no autofillHIGH
Cognitive loadToo many choices, unclear hierarchy, wall of textHIGH
Trust deficitNo social proof, no security badges, unclear pricingHIGH
Speed frictionSlow loading, heavy JS, unoptimized imagesHIGH
Navigation frictionCan't find CTA, buried below fold, confusing layoutMEDIUM
Mobile frictionSmall touch targets, horizontal scroll, unreadable textMEDIUM
Copy frictionUnclear value prop, jargon, no urgencyMEDIUM
Technical frictionBroken forms, validation errors, payment failuresCRITICAL
# 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:

PrincipleImplementationStatus
ReciprocityFree value before asking (free trial, guide, tool)[Present/Missing]
ScarcityLimited time/quantity indicators (genuine, not fake)[Present/Missing]
AuthorityExpert endorsements, certifications, press logos[Present/Missing]
Social ProofTestimonials, user count, ratings, case studies[Present/Missing]
LikingRelatable brand voice, user stories, team photos[Present/Missing]
CommitmentMicro-conversions (email first, then full signup)[Present/Missing]
UnityShared 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

CheckBest Practice
Headline clarityValue proposition clear in <3 seconds
Above-the-foldCTA visible without scrolling
CTA textAction verb + benefit (not "Submit" or "Click here")
CTA contrastVisually distinct from surrounding content
Value before formUser understands benefit before filling fields
Objection handlingFAQ, guarantees, or trust signals near CTA
UrgencyGenuine 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):

CheckImpact on Conversion
Page load time+1s load time = -7% conversion (Google)
Mobile responsiveness53% abandon if >3s load on mobile
Form error recoveryInline validation saves 22% form abandonment
Payment optionsEach additional payment method = +5-10% checkout conversion
Loading statesSkeleton 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:

  1. Conversion goal was explicitly identified
  2. User flow was mapped from entry to conversion
  3. All 7 friction categories were checked
  4. All 7 Cialdini principles were evaluated
  5. At least 3 recommendations have A/B hypotheses
  6. Recommendations are prioritized by impact/effort ratio
  7. Technical CRO checks were performed (performance, form UX)
  8. Each recommendation has a specific file:line reference

Anti-Rationalization

ExcuseReality
"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

  1. Read-only - Never modify files during a CRO audit
  2. Data-informed - Base recommendations on research and benchmarks, not opinions
  3. Hypothesis-driven - Every recommendation needs a testable A/B hypothesis
  4. Quick wins first - Prioritize high-impact, low-effort changes
  5. One CTA per view - Never recommend multiple competing CTAs
  6. Genuine urgency only - Never recommend fake scarcity or countdown timers
  7. Code-grounded - Every finding must reference specific files and components
  8. 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 ────
Repository

fernandezbaptiste/specialist-agent

Path

skills/cro/SKILL.md

Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.