144 lines
7.4 KiB
Markdown
144 lines
7.4 KiB
Markdown
# UX Polish — Conversion Audit Tracker
|
|
|
|
Findings from the senior-marketing-lens audit, with completion status. Each
|
|
item has a one-line rationale and the file/line where the change lives (or
|
|
will live).
|
|
|
|
> Only commit to "We'll reply within 24 hours" if Aless can actually hold
|
|
> to it. If response time is more like 1-2 business days, soften to
|
|
> "within one business day".
|
|
|
|
---
|
|
|
|
## High — direct conversion impact
|
|
|
|
- [x] **Hero primary CTA: "Learn more" → "Explore our services →"**
|
|
- File: `src/lib/content/homepage.ts:38`
|
|
- Why: "Learn more" is the lowest-intent CTA that exists.
|
|
|
|
- [x] **Promise CTA: "See our services" → "Book a free Meet & Greet"**
|
|
- File: `src/lib/content/homepage.ts:59`
|
|
- Also: target changed from `#services` to `/contact-us` so the CTA goes
|
|
to the booking page instead of bouncing back up to a service list.
|
|
- Why: After the value prop + happy-dog photo, sending visitors to the
|
|
services list is a step backwards. Push them to book.
|
|
|
|
- [x] **Booking subtitle now states response time**
|
|
- File: `src/lib/content/homepage.ts:159-162`
|
|
- Old: *"...so we can reach out to arrange your free, no-obligation Meet & Greet."*
|
|
- New: *"...We'll reply within 24 hours to arrange your free, no-obligation Meet & Greet."*
|
|
- General-enquiry variant updated to match.
|
|
- Why: Open-ended "we'll reach out" creates anxiety at submit time.
|
|
|
|
- [x] 1 **Pricing page — Google rating trust signal above plan grid**
|
|
- File: `src/lib/components/PricingPage.svelte`
|
|
- Implementation: Pill-styled trust badge inside the green hero,
|
|
directly under the subtitle — five yellow stars + "30+ five-star
|
|
Google reviews" label + arrow, links out to Google. Styled to read
|
|
against the green hero (semi-transparent white pill) rather than
|
|
reusing the cream IntroStrip, which would have clashed.
|
|
- Why: Visitors land on pricing mid-decision; trust signal now appears
|
|
before the plan grid.
|
|
|
|
- [x] 2 **Service plan CTAs — add free / no-obligation reassurance**
|
|
- File: `src/lib/components/ServiceLandingPage.svelte`
|
|
- Implementation: A subtle green pill *"Every booking starts with a
|
|
free, no-obligation Meet & Greet."* (yellow shield-heart icon) sits
|
|
centred directly under the plan grid on every service page, above the
|
|
Extras block. Reuses the brand-tinted-pill aesthetic so it feels
|
|
native, not tacked on.
|
|
- Why: The "Book a Meet & Greet" buttons under each plan didn't carry
|
|
risk-reversal phrasing in their immediate context. Now they do.
|
|
|
|
## Medium — trust + polish
|
|
|
|
- [x] 3 **Quantify the Google rating wherever it appears**
|
|
- Files: `src/lib/content/homepage.ts:46`,
|
|
`src/lib/components/Footer.svelte:89`,
|
|
`src/lib/components/TestimonialsSection.svelte:200`,
|
|
`src/lib/components/PricingPage.svelte` (new pricing-trust pill).
|
|
- Implementation: "All 5 star reviews on Google!" → "30+ five-star
|
|
Google reviews" everywhere. Aless confirmed 30+ as the count.
|
|
- Why: A specific number is dramatically more credible than "all".
|
|
|
|
- [x] 4 **Lean into the "limited spots" angle**
|
|
- File: `src/lib/content/pack-walks.ts` (added `scarcityNote` to the
|
|
`pricing` block); `src/lib/types.ts` (added optional `scarcityNote?:
|
|
string` to ServicePageContent.pricing); rendered in
|
|
`src/lib/components/ServiceLandingPage.svelte` directly under the
|
|
plan grid as a yellow-tinted pill with a clock icon.
|
|
- Copy: *"We keep packs small (4-8 dogs) — popular days fill up fast."*
|
|
- Only set on Pack Walks (the 4-8 number is specific to that service);
|
|
the field is optional so 1:1 Walks and Puppy Visits get nothing.
|
|
- Why: Real, honest scarcity. The 4-8 cap is already a fact; saying it
|
|
out loud nudges decision-making.
|
|
|
|
- [ ] **About page — quantify Aless's expertise**
|
|
- File: `src/lib/content/about.ts:29-30`
|
|
- Why: "years of experience" is the weakest possible claim. Replace with
|
|
concrete numbers Aless can stand behind: years operating, dogs in
|
|
rotation, first-aid certification.
|
|
|
|
- [x] 5 **Pack Walks pricing intro — lead with the differentiator**
|
|
- File: `src/lib/content/pack-walks.ts:23-24`
|
|
- Implementation: Old intro led with "Our pack walks are a permanent
|
|
booking of at least one walk day a week..." (commitment ask first).
|
|
New intro leads with the benefits: *"Small packs of 4-8 dogs, 2-hour
|
|
outings at Auckland's scenic dog parks and beaches, with free pick-up
|
|
and drop-off included. We reinforce recall, car manners, and leash
|
|
etiquette while your dog plays. Booked as a permanent weekly slot —
|
|
gift your dog the best life!"*
|
|
- Why: Buyers scan for benefits before commitments. Lead-with-policy
|
|
framing creates resistance; lead-with-benefit framing builds desire.
|
|
|
|
- [ ] **FAQs — reframe from policy to reassurance**
|
|
- File: `src/lib/content/homepage.ts:180-205`
|
|
- Why: Answers are correct but read like terms & conditions. Lead with
|
|
the *why* (the benefit/reassurance), then the *what*.
|
|
|
|
## Low — incremental polish
|
|
|
|
- [x] **Home services-card CTAs: "Learn more" → outcome-oriented**
|
|
- File: `src/lib/components/ServicesSection.svelte:29`
|
|
- Implementation: Visible label is now derived from the service title —
|
|
*"See Pack Walks pricing →"*, *"See 1:1 Walks pricing →"*, *"See
|
|
Puppy Visits pricing →"*. The previously-added screen-reader-only
|
|
"about <Service>" span was removed since the visible label now carries
|
|
that context for everyone, not just assistive tech users.
|
|
- Why: "Learn more" was the lowest-intent CTA on the page; the new
|
|
label states the destination and the next step.
|
|
|
|
- [x] **Testimonials intro blurb — sharper jobs-to-be-done framing**
|
|
- File: `src/lib/components/TestimonialsSection.svelte:10-11`
|
|
- Old: *"Happy owners, even happier dogs. Our Auckland dog walking
|
|
clients love what the Tiny Gang brings to their dog's routine — and
|
|
you can see why. Follow along on Instagram for daily adventures..."*
|
|
- New: *"Busy parents get peace of mind. Dogs come home tired and
|
|
happy. See why 30+ Auckland families trust the Tiny Gang — follow
|
|
along on Instagram for daily adventures, wagging tails and the odd
|
|
zoomie."*
|
|
- Why: Leads with the two outcomes buyers actually care about (peace of
|
|
mind for them, exercise for the dog), keeps the brand voice + 30+
|
|
review proof point, then makes the Instagram nudge feel like a
|
|
follow-on rather than the lead.
|
|
|
|
- [x] **Surface "Reliability / on-time" earlier**
|
|
- File: `src/lib/content/homepage.ts:37` (hero subtitle)
|
|
- Old: *"Trusted, professional dog walking across Auckland Central..."*
|
|
- New: *"Trusted, on-time dog walking across Auckland Central..."*
|
|
- Why: Reliability/punctuality is the #1 anxiety for busy parents
|
|
booking a service that visits their home. Pulling "on-time" into the
|
|
hero subtitle (one-word swap, no length cost) puts the reassurance
|
|
above the fold.
|
|
|
|
## Deliberately not actioning
|
|
|
|
- **Pack Walks H1 rewrite to "Small-dog pack walks designed for calm,
|
|
confident groups."** *"Join our Tiny Gang!"* is doing brand work — it's
|
|
memorable and reinforces a phrase used everywhere else. Rewriting kills
|
|
the most distinctive asset for marginal headline clarity.
|
|
- **Booking submit button: "Send" → "Book my Meet & Greet".** The form
|
|
also handles general enquiries, so a "book my…" label would feel wrong
|
|
on a complaint email. Better fix would be to switch the label by
|
|
`enquiryType` — keep "Send my booking" / "Send my enquiry" contextually.
|