10 KiB
GEO Analysis — Goodwalk (goodwalk.co.nz)
Generative Engine Optimization audit · February 2026 criteria · analyzed 2026-06-23
Scope: SvelteKit codebase at C:\Users\mattc\gw-svelte\gw-svelte (SSR via @sveltejs/adapter-node). This is a single-location Auckland dog-walking service — a local SAB (service-area business), so GEO leverage skews toward local AI answers ("dog walker in Mt Eden", "Auckland pack walks", "puppy visit cost Auckland").
1. GEO Readiness Score: 73 / 100
A strong technical foundation already in place. The on-site work is close to best-practice; the gap is off-site brand presence and passage-level citability of the marketing copy.
| Criterion | Weight | Score | Notes |
|---|---|---|---|
| Citability | 25% | 16/25 | Excellent llms.txt facts; on-page copy is punchy brand fragments, not extractable answer blocks |
| Structural Readability | 20% | 15/20 | Clean H1→H2, FAQ <details>; few tables/comparison blocks |
| Multi-Modal | 15% | 9/15 | Rich images + alt text everywhere; no video, infographics, or tools |
| Authority & Brand | 20% | 14/20 | Strong on-site E-E-A-T (Person/founder schema, reviews); thin off-site (no Wikipedia/Reddit/YouTube) |
| Technical Accessibility | 20% | 19/20 | SSR, AI crawlers explicitly allowed, llms.txt present — near perfect |
2. Platform Breakdown
| Platform | Est. Score | Why |
|---|---|---|
| Google AI Overviews | 80 | Best-aligned — SSR + rich LocalBusiness/Person/FAQ schema + local entity signals. Citations come from top-ranking pages, so this rides your existing SEO. |
| Bing Copilot | 68 | Schema and SSR help; needs Bing index coverage + IndexNow. |
| ChatGPT (web search) | 61 | Leans on Wikipedia (47.9%) and Reddit (11.3%). No entity presence on either → low. |
| Perplexity | 57 | Reddit-driven (46.7%). No community validation present → weakest channel. |
Implication: you are well-positioned for Google AIO and should focus net-new effort on the off-site signals that feed ChatGPT/Perplexity.
3. AI Crawler Access Status ✅
src/routes/robots.txt/+server.ts explicitly allows the key search crawlers — this is correctly done:
| Crawler | Status |
|---|---|
| GPTBot (OpenAI) | ✅ Allowed |
| OAI-SearchBot (OpenAI) | ✅ Allowed |
| ClaudeBot (Anthropic) | ✅ Allowed |
| PerplexityBot | ✅ Allowed |
Bingbot / others (*) |
✅ Allowed (with sensible /api/, /variants/, /contract disallows) |
No action required. One optional addition: ChatGPT-User (live browsing fetches) is not named but is covered by User-agent: *.
4. llms.txt Status ✅
Present at static/llms.txt and well-structured — better than most sites. It already includes founder, contact, hours, pricing summary, service URLs, suburb list, and location-page index.
Minor improvements:
- Update
Last updated(currently2026-05-18) on each meaningful content change. - Consider adding a one-line "What is Goodwalk" definitional sentence at the very top under
>(the quotable blockquote) — AI models lift this verbatim. - Add the Meet & Greet is free fact and free pickup/drop-off as explicit bullet facts (they're a differentiator AI answers love to surface).
5. Brand Mention Analysis — biggest opportunity
Per Ahrefs (Dec 2025), brand mentions correlate ~3× more strongly with AI visibility than backlinks. This is your largest lever and it is entirely off-site.
| Platform | Presence | Priority |
|---|---|---|
✅ @goodwalk.nz (linked, in sameAs) |
Maintained | |
| ✅ Linked in footer | Maintained | |
| Google Business Profile | ✅ g.page link + 30× 5-star reviews in schema |
Strong |
| ❌ None | High — drives Perplexity (46.7%) + ChatGPT (11.3%) | |
| YouTube | ❌ None | High — strongest single citation correlation (~0.737) |
| Wikipedia/Wikidata | ❌ None | Medium (hard for a small local business; skip unless notable) |
| LinkedIn (Alessandra) | ❌ Not in Person sameAs |
Medium — easy entity win |
Realistic actions for a local business:
- Get genuine mentions in Auckland subreddits (r/auckland, r/newzealand) — answer dog-care questions helpfully; don't spam.
- Post a few short YouTube clips (pack walk footage, "what is a Meet & Greet") — even low view counts create the entity association.
- List on NZ pet directories and local-business aggregators (consistent NAP).
- Add Alessandra's LinkedIn (if any) to the
PersonschemasameAs.
6. Passage-Level Citability
Optimal AI-citation block length is 134–167 words, self-contained. Your on-page copy is deliberately fragmented brand voice — great for humans, weak for extraction:
"Built for dogs who do better one-on-one. Their pace. Their walk. Same walker every time." (dog-walking.ts)
These single-line fragments rarely get quoted because they don't answer a question standalone. Recommendation: keep the brand hero copy, but add one extractable answer block per service page, e.g.:
What is a solo dog walk? A solo dog walk is a one-on-one outing where a single dog is walked by the same walker every time, at the dog's own pace. Goodwalk offers solo walks across Auckland Central for dogs who do better without a group — reactive dogs, seniors, post-surgery recovery, and anxious rescues. Walks run 30 minutes (seniors/lower energy), 45 minutes (most dogs), or 60 minutes (longer outings), with free door-to-door pickup and drop-off and a photo update after every walk. Solo walks start from $45 per walk. (≈70 words — expand toward ~140 with a sentence on when to choose solo vs pack.)
Your llms.txt already does this well — the "Key facts" and "Pricing summary" blocks are exactly the quotable format. Mirror that density into visible page HTML.
7. Server-Side Rendering Check ✅
- SSR is on (adapter-node, no
export const ssr = falseanywhere). AI crawlers, which do not execute JS, will see full content. - All structured data is emitted server-side in
<svelte:head>(SeoHead.svelte, FaqSection.svelte) — good. - ⚠️ One caveat: the
<noscript>overlay says "Please enable JavaScript to use this site." The rendered HTML is fine for crawlers, but make sure the primary content is in the SSR payload and not gated behind hydration — the booking/contact form needing JS is fine; the service descriptions and FAQs must be in source HTML (they are, via the content modules — confirmed).
8. Top 5 Highest-Impact Changes
- Build off-site brand mentions (Reddit + YouTube + NZ directories). Highest correlation with AI citation; the single biggest unlock for ChatGPT/Perplexity. (High effort, high impact)
- Add a 134–167 word "What is [service]?" answer block to each service page (pack-walks, dog-walking, puppy-visits) and an "How much does dog walking cost in Auckland?" block to
/our-pricing. (Medium effort, high impact) - Add price + priceCurrency to the
Offernodes in the homepagehasOfferCatalog(currently name/url only). Lets AI quote exact prices with confidence. (Low effort, medium impact) - Create an Auckland dog-care FAQ / short guide page to capture informational AI queries ("how often should I walk my dog", "pack walk vs solo walk"). You have zero informational content today — purely commercial. (Medium effort, high impact)
- Add
sameAsto the Person (Alessandra) schema and a visible author/founder byline with credentials (pet first-aid cert, insured) near service content. Strengthens E-E-A-T entity. (Low effort, medium impact)
9. Schema Recommendations
Already excellent: WebSite, LocalBusiness+PetCareService (with aggregateRating, review, openingHoursSpecification, areaServed, hasOfferCatalog), Person (founder, knowsAbout), FAQPage, BreadcrumbList, Service (location pages). Gaps to close:
// In hasOfferCatalog → each Offer, add price:
{
"@type": "Offer",
"itemOffered": { "@type": "Service", "name": "Tiny Gang Pack Walks", "url": "https://www.goodwalk.co.nz/pack-walks" },
"price": "49.50",
"priceCurrency": "NZD"
}
// Person (Alessandra) — add credentials + external entity links:
"hasCredential": [
{ "@type": "EducationalOccupationalCredential", "credentialCategory": "certificate", "name": "Pet First Aid Certificate" }
],
"sameAs": ["https://www.linkedin.com/in/..."] // if available
- Add
priceRange(e.g."$$") and ageonode (latitude/longitude) to the LocalBusiness — both are standard LocalBusiness AI signals currently absent. - Optionally model each service page as its own
Servicewith anOfferCatalogso service pages stand alone as cited entities (location pages already do this well).
10. Content Reformatting Suggestions
| Page | Current | Suggested GEO addition |
|---|---|---|
/dog-walking (solo) |
Brand fragments, no definition | Add "What is a solo dog walk?" 140-word block (see §6) |
/pack-walks |
— | Add "What is a Tiny Gang pack walk?" + a pack vs solo comparison table (dogs per group, best for, price) |
/puppy-visits |
— | Add "What happens in a puppy visit?" + duration/price block |
/our-pricing |
Pricing copy | Add "How much does a dog walker cost in Auckland?" answer block with a clean price table (service / duration / price NZD) |
New: /guide or FAQ hub |
none | Informational content to win non-commercial AI queries and earn citations |
Tables are under-used. AI Overviews and Perplexity disproportionately cite comparative tables. A single "Pack vs Solo vs Puppy Visit" comparison table would be high-value and on-brand.
Bottom line
Technically this is a top-decile small-business GEO setup — SSR, AI crawler allow-list, llms.txt, and comprehensive schema are already done and done well. The remaining wins are content shape (add extractable answer blocks + tables, prices in schema) and, most of all, off-site brand presence (Reddit, YouTube, directories), which the data says matters more than anything on the page itself.