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:
+21
-1
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user