Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c95d2e8c25 |
@@ -13,7 +13,7 @@
|
||||
function getVariant(path: string) {
|
||||
if (path === '/') return 'home';
|
||||
if (serviceRoutes.has(path)) return 'service';
|
||||
if (path === '/about' || path === '/about-us') return 'about';
|
||||
if (path === '/about') return 'about';
|
||||
if (path === '/our-pricing') return 'pricing';
|
||||
if (path === '/contact-us') return 'contact';
|
||||
if (legalRoutes.has(path)) return 'legal';
|
||||
|
||||
@@ -12,9 +12,9 @@ export const staticPages = {
|
||||
canonicalPath: '/dog-walking'
|
||||
},
|
||||
'puppy-visits': {
|
||||
title: 'Puppy Visits | Puppy Training',
|
||||
title: 'Puppy Visits | Auckland In-Home Puppy Care | Goodwalk',
|
||||
description:
|
||||
'Puppy Visits Introducing Puppy Visits: Building strong foundations for our pack walks! We love puppies! Our puppy home visits are perfect for young pups not quite ready to join the pack and busy owners with hectic schedules. We lay the groundwork for future pack walks, including fun games, potty breaks, and even feeding if required. Let us help your furry friend thrive while you are away!',
|
||||
'In-home puppy visits across Auckland Central — toilet breaks, feeding, play and gentle early training for pups not yet ready for pack walks.',
|
||||
canonicalPath: '/puppy-visits'
|
||||
},
|
||||
'our-pricing': {
|
||||
@@ -29,12 +29,6 @@ export const staticPages = {
|
||||
'Learn more about Kingsland based dog walking company Goodwalk. We offer our Tiny Gang pack walks throughout the Auckland region. Solo (1:1 walks), homestays and more.',
|
||||
canonicalPath: '/about'
|
||||
},
|
||||
'about-us': {
|
||||
title: 'About Us | Dog Walkers',
|
||||
description:
|
||||
'Learn more about Kingsland based dog walking company Goodwalk. We offer our Tiny Gang pack walks throughout the Auckland region. Solo (1:1 walks), homestays and more.',
|
||||
canonicalPath: '/about'
|
||||
},
|
||||
'contact-us': {
|
||||
title: 'Contact Us',
|
||||
description: 'Book a Meet & Greet or send a general enquiry to Goodwalk Auckland dog walking services.',
|
||||
|
||||
+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',
|
||||
|
||||
@@ -30,6 +30,28 @@
|
||||
return `${siteUrl}${value.startsWith('/') ? value : `/${value}`}`;
|
||||
}
|
||||
|
||||
function aggregateOfferSchema(plans: { price: string }[]) {
|
||||
const numericPrices = plans
|
||||
.map((plan) => Number(plan.price.replace(/[^0-9.]/g, '')))
|
||||
.filter((value) => Number.isFinite(value) && value > 0);
|
||||
|
||||
if (numericPrices.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const lowPrice = Math.min(...numericPrices);
|
||||
const highPrice = Math.max(...numericPrices);
|
||||
|
||||
return {
|
||||
'@type': 'AggregateOffer',
|
||||
priceCurrency: 'NZD',
|
||||
lowPrice: lowPrice.toFixed(2),
|
||||
highPrice: highPrice.toFixed(2),
|
||||
offerCount: numericPrices.length,
|
||||
availability: 'https://schema.org/InStock'
|
||||
};
|
||||
}
|
||||
|
||||
function breadcrumbSchema(name: string, path: string) {
|
||||
return {
|
||||
'@context': 'https://schema.org',
|
||||
@@ -89,7 +111,8 @@
|
||||
},
|
||||
areaServed: 'Auckland Central, New Zealand',
|
||||
image: absoluteUrl(seoImage),
|
||||
url: `${siteUrl}${data.page.canonicalPath}`
|
||||
url: `${siteUrl}${data.page.canonicalPath}`,
|
||||
offers: aggregateOfferSchema(packWalksContent.pricing.plans)
|
||||
},
|
||||
breadcrumbSchema('Pack Walks', data.page.canonicalPath)
|
||||
];
|
||||
@@ -111,7 +134,8 @@
|
||||
},
|
||||
areaServed: 'Auckland Central, New Zealand',
|
||||
image: absoluteUrl(seoImage),
|
||||
url: `${siteUrl}${data.page.canonicalPath}`
|
||||
url: `${siteUrl}${data.page.canonicalPath}`,
|
||||
offers: aggregateOfferSchema(dogWalkingContent.pricing.plans)
|
||||
},
|
||||
breadcrumbSchema('1:1 Walks', data.page.canonicalPath)
|
||||
];
|
||||
@@ -133,7 +157,8 @@
|
||||
},
|
||||
areaServed: 'Auckland Central, New Zealand',
|
||||
image: absoluteUrl(seoImage),
|
||||
url: `${siteUrl}${data.page.canonicalPath}`
|
||||
url: `${siteUrl}${data.page.canonicalPath}`,
|
||||
offers: aggregateOfferSchema(puppyVisitsContent.pricing.plans)
|
||||
},
|
||||
breadcrumbSchema('Puppy Visits', data.page.canonicalPath)
|
||||
];
|
||||
@@ -148,7 +173,7 @@
|
||||
},
|
||||
breadcrumbSchema('Our Pricing', data.page.canonicalPath)
|
||||
];
|
||||
} else if (data.slug === 'about' || data.slug === 'about-us') {
|
||||
} else if (data.slug === 'about') {
|
||||
seoImage = aboutPageContent.sections[0].imageUrl;
|
||||
seoImageAlt = aboutPageContent.sections[0].imageAlt;
|
||||
pageStructuredData = [
|
||||
@@ -186,7 +211,7 @@
|
||||
<ServiceLandingPage content={data.content} pageContent={puppyVisitsContent} currentPath={data.page.canonicalPath} />
|
||||
{:else if data.slug === 'our-pricing'}
|
||||
<PricingPage content={data.content} pageContent={ourPricingContent} />
|
||||
{:else if data.slug === 'about' || data.slug === 'about-us'}
|
||||
{:else if data.slug === 'about'}
|
||||
<AboutPage content={data.content} pageContent={aboutPageContent} />
|
||||
{:else if data.slug === 'terms-and-conditions'}
|
||||
<LegalPage pageContent={termsAndConditionsContent} />
|
||||
|
||||
Reference in New Issue
Block a user