okay
This commit is contained in:
parent
4dc7c29134
commit
1a6dc01291
|
|
@ -62,7 +62,7 @@ export default function HomePage() {
|
|||
<SeoJsonLd data={[
|
||||
websiteSchema(),
|
||||
organizationSchema(),
|
||||
softwareApplicationSchema(),
|
||||
softwareApplicationSchema(aggregateRating),
|
||||
aggregateRatingSchema(aggregateRating),
|
||||
...reviewSchemas
|
||||
]} />
|
||||
|
|
|
|||
|
|
@ -79,8 +79,7 @@ export default function TestimonialsPage() {
|
|||
{[...Array(5)].map((_, index) => (
|
||||
<Star
|
||||
key={index}
|
||||
className={`w-8 h-8 ${
|
||||
index < aggregateRating.ratingValue
|
||||
className={`w-8 h-8 ${index < aggregateRating.ratingValue
|
||||
? 'fill-yellow-400 text-yellow-400'
|
||||
: 'fill-gray-200 text-gray-200'
|
||||
}`}
|
||||
|
|
@ -136,6 +135,8 @@ export default function TestimonialsPage() {
|
|||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
|
|
|||
|
|
@ -35,6 +35,9 @@ export default function AdBanner({
|
|||
'/terms',
|
||||
'/cookie-policy',
|
||||
'/impressum',
|
||||
'/press',
|
||||
'/testimonials',
|
||||
'/authors',
|
||||
];
|
||||
|
||||
// Check if current path matches strictly or starts with excluded path (for nested legal/blog pages if needed, though mostly exact matches here)
|
||||
|
|
|
|||
|
|
@ -42,12 +42,12 @@ export function organizationSchema() {
|
|||
sameAs: [
|
||||
'https://twitter.com/qrmaster',
|
||||
],
|
||||
contactPoint: {
|
||||
contactPoint: [{
|
||||
'@type': 'ContactPoint',
|
||||
contactType: 'Customer Support',
|
||||
email: 'support@qrmaster.net',
|
||||
availableLanguage: ['en', 'de'],
|
||||
},
|
||||
}],
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -163,8 +163,8 @@ export function breadcrumbSchema(items: { name: string; url: string }[]) {
|
|||
};
|
||||
}
|
||||
|
||||
export function softwareApplicationSchema() {
|
||||
return {
|
||||
export function softwareApplicationSchema(aggregateRating?: AggregateRating) {
|
||||
const schema: any = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'SoftwareApplication',
|
||||
name: 'QR Master',
|
||||
|
|
@ -179,6 +179,18 @@ export function softwareApplicationSchema() {
|
|||
'@id': `${SITE_URL}/#organization`,
|
||||
}
|
||||
};
|
||||
|
||||
if (aggregateRating) {
|
||||
schema.aggregateRating = {
|
||||
'@type': 'AggregateRating',
|
||||
ratingValue: aggregateRating.ratingValue,
|
||||
reviewCount: aggregateRating.reviewCount,
|
||||
bestRating: aggregateRating.bestRating,
|
||||
worstRating: aggregateRating.worstRating
|
||||
};
|
||||
}
|
||||
|
||||
return schema;
|
||||
}
|
||||
|
||||
export function authorPageSchema(author: AuthorProfile, posts?: BlogPost[]) {
|
||||
|
|
@ -253,7 +265,12 @@ export function reviewSchema(testimonial: Testimonial) {
|
|||
'@type': 'SoftwareApplication',
|
||||
name: 'QR Master',
|
||||
applicationCategory: 'BusinessApplication',
|
||||
operatingSystem: 'Web Browser'
|
||||
operatingSystem: 'Web Browser',
|
||||
offers: {
|
||||
'@type': 'Offer',
|
||||
price: '0',
|
||||
priceCurrency: 'EUR'
|
||||
}
|
||||
},
|
||||
reviewRating: {
|
||||
'@type': 'Rating',
|
||||
|
|
@ -276,6 +293,11 @@ export function aggregateRatingSchema(aggregateRating: AggregateRating) {
|
|||
'@context': 'https://schema.org',
|
||||
'@type': 'Product',
|
||||
name: 'QR Master',
|
||||
offers: {
|
||||
'@type': 'Offer',
|
||||
price: '0',
|
||||
priceCurrency: 'EUR'
|
||||
},
|
||||
aggregateRating: {
|
||||
'@type': 'AggregateRating',
|
||||
ratingValue: aggregateRating.ratingValue,
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ export const testimonials: Testimonial[] = [
|
|||
title: "Perfect for my pottery",
|
||||
content: "I use QR-Master for my pottery as a link to my homepage and as a digital business card. I place the codes directly on my pottery pieces so interested customers can instantly access my website. Reliable and practical – a great solution!",
|
||||
author: {
|
||||
name: "Claudia Knuth",
|
||||
name: "Claudia",
|
||||
company: "Hotshpotsh",
|
||||
location: "Texas"
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue