SEO: pricing-rich service schema, AggregateRating, tighter meta

- Service pages now include AggregateOffer in JSON-LD (priceCurrency
  NZD, lowPrice/highPrice/offerCount derived from each service's
  pricing.plans). Unlocks price-rich SERP results.
- Homepage LocalBusiness schema now includes AggregateRating and
  per-testimonial Review entries (5 stars, n reviews). Eligible for
  star ratings in SERPs.
- Puppy Visits meta description rewritten — was 241 chars opening
  with "Puppy Visits Introducing Puppy Visits..." Now a tight 144
  chars with Auckland keyword.
- Removed the dead /about-us static-pages entry; the 301 redirect
  in [slug]/+page.server.ts already routes it to /about, so the
  duplicate metadata was unreachable. Pruned matching dead branches
  in [slug]/+page.svelte and RouteSkeleton.svelte for clarity.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-05 14:06:31 +12:00
parent 65bdc8dc20
commit c95d2e8c25
4 changed files with 54 additions and 15 deletions
+21 -1
View File
@@ -89,7 +89,27 @@
url: `${siteUrl}${service.href}`
}
}))
}
},
aggregateRating: {
'@type': 'AggregateRating',
ratingValue: '5.0',
bestRating: '5',
worstRating: '1',
reviewCount: String(data.content.testimonials.length)
},
review: data.content.testimonials.map((testimonial) => ({
'@type': 'Review',
reviewRating: {
'@type': 'Rating',
ratingValue: '5',
bestRating: '5'
},
author: {
'@type': 'Person',
name: testimonial.reviewer
},
reviewBody: testimonial.quote
}))
},
{
'@context': 'https://schema.org',