verbesserte Copy
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
||||
SeoComparison,
|
||||
SeoContentSections,
|
||||
SeoBestFit,
|
||||
SeoOfferBlock,
|
||||
SeoFaq,
|
||||
SeoRelated,
|
||||
} from '@/components/seo/SeoSections'
|
||||
@@ -43,18 +44,67 @@ export default function SeoCategoryPage({ profile }: SeoCategoryPageProps) {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'SoftwareApplication',
|
||||
name: siteConfig.name,
|
||||
operatingSystem: 'iOS, Android',
|
||||
operatingSystem: 'iOS',
|
||||
applicationCategory: 'LifestyleApplication',
|
||||
description: profile.directAnswer,
|
||||
...(hasIosStoreUrl && { downloadUrl: siteConfig.iosAppStoreUrl }),
|
||||
// Kein pauschaler Nullpreis: Der Download ist kostenlos, die Nutzung nach
|
||||
// vier Scans nicht. Apple liefert die regionalen Preise selbst aus.
|
||||
offers: {
|
||||
'@type': 'Offer',
|
||||
price: '0',
|
||||
priceCurrency: 'EUR',
|
||||
category: 'Free trial, then subscription',
|
||||
priceSpecification: {
|
||||
'@type': 'PriceSpecification',
|
||||
description:
|
||||
'One scan free without an account, three more after signing up, then a monthly or yearly GreenLens Pro subscription. Current regional pricing is shown in the App Store.',
|
||||
},
|
||||
},
|
||||
}
|
||||
: null
|
||||
|
||||
// HowTo: bevorzugtes Format vieler KI-Antwortsysteme fuer "Wie erkenne ich ..."-Fragen
|
||||
const howToSchema =
|
||||
profile.howToSteps && profile.howToSteps.length > 0
|
||||
? {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'HowTo',
|
||||
name: profile.howToName ?? profile.h1,
|
||||
description: profile.directAnswer,
|
||||
inLanguage: locale,
|
||||
totalTime: 'PT5M',
|
||||
step: profile.howToSteps.map((item, index) => ({
|
||||
'@type': 'HowToStep',
|
||||
position: index + 1,
|
||||
name: item.name,
|
||||
text: item.text,
|
||||
})),
|
||||
}
|
||||
: null
|
||||
|
||||
// WebPage mit Aenderungsdatum, Autor und Sprache — Frische- und E-E-A-T-Signale
|
||||
const webPageSchema = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'WebPage',
|
||||
name: profile.h1,
|
||||
description: profile.metaDescription,
|
||||
url: `${siteConfig.domain}${profile.canonical}`,
|
||||
inLanguage: locale,
|
||||
dateModified: profile.lastUpdatedIso ?? undefined,
|
||||
primaryImageOfPage: profile.heroImage
|
||||
? { '@type': 'ImageObject', url: `${siteConfig.domain}${profile.heroImage}`, caption: profile.heroImageAlt }
|
||||
: undefined,
|
||||
isPartOf: {
|
||||
'@type': 'WebSite',
|
||||
name: siteConfig.name,
|
||||
url: siteConfig.domain,
|
||||
},
|
||||
publisher: {
|
||||
'@type': 'Organization',
|
||||
name: siteConfig.name,
|
||||
url: siteConfig.domain,
|
||||
},
|
||||
}
|
||||
|
||||
const breadcrumbSchema = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'BreadcrumbList',
|
||||
@@ -90,6 +140,16 @@ export default function SeoCategoryPage({ profile }: SeoCategoryPageProps) {
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbSchema) }}
|
||||
/>
|
||||
{howToSchema && (
|
||||
<script
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(howToSchema) }}
|
||||
/>
|
||||
)}
|
||||
<script
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(webPageSchema) }}
|
||||
/>
|
||||
|
||||
<SeoNavbar locale={locale} methodologyHref={usesPhotoAnalysis ? '#methodology' : '#comparison'} />
|
||||
|
||||
@@ -111,6 +171,7 @@ export default function SeoCategoryPage({ profile }: SeoCategoryPageProps) {
|
||||
{usesPhotoAnalysis && <SeoMethodology copy={copy} intent={templateIntent} />}
|
||||
<SeoComparison profile={profile} copy={copy} intent={templateIntent} />
|
||||
<SeoBestFit profile={profile} copy={copy} />
|
||||
<SeoOfferBlock profile={profile} />
|
||||
<SeoFaq profile={profile} copy={copy} />
|
||||
<SeoRelated profile={profile} copy={copy} />
|
||||
</main>
|
||||
|
||||
Reference in New Issue
Block a user