diff --git a/frontend/src/data/evalProducts.ts b/frontend/src/data/evalProducts.ts index 9190611..8d28006 100644 --- a/frontend/src/data/evalProducts.ts +++ b/frontend/src/data/evalProducts.ts @@ -4,6 +4,7 @@ export interface EvalProductConfig { version: string build: string description: string + seoDesc: string // ≤155 chars, for and og:description archs: string[] type: 'server' | 'enterprise' requirements: { @@ -20,6 +21,7 @@ export const evalProducts: EvalProductConfig[] = [ name: 'Windows Server 2025', version: 'Standard / Datacenter', build: 'Latest evaluation build', + seoDesc: 'Download Windows Server 2025 evaluation ISO from Microsoft. 180-day trial. Direct CDN link — no registration required.', description: 'The latest Windows Server release featuring enhanced security, hybrid cloud capabilities, and improved performance. Includes SMB over QUIC, credential guard improvements, and delegated managed service accounts.', archs: ['x64'], @@ -35,6 +37,7 @@ export const evalProducts: EvalProductConfig[] = [ name: 'Windows Server 2022', version: 'Standard / Datacenter', build: 'Latest evaluation build', + seoDesc: 'Download Windows Server 2022 evaluation ISO from Microsoft. Long-term servicing channel. 180-day trial. Direct CDN link, no registration.', description: 'Long-term servicing channel release with Secured-core server support, TLS 1.3 by default, and DNS-over-HTTPS. The recommended choice for new server infrastructure evaluation.', archs: ['x64'], @@ -50,6 +53,7 @@ export const evalProducts: EvalProductConfig[] = [ name: 'Windows Server 2019', version: 'Standard / Datacenter', build: '17763', + seoDesc: 'Download Windows Server 2019 evaluation ISO from Microsoft. Includes Defender ATP and Storage Migration Service. 180-day trial, direct CDN link.', description: 'Stable and widely deployed. Includes Windows Defender Advanced Threat Protection, Storage Migration Service, and System Insights. Ideal for existing infrastructure evaluation.', archs: ['x64'], @@ -65,6 +69,7 @@ export const evalProducts: EvalProductConfig[] = [ name: 'Windows Server 2016', version: 'Standard / Datacenter', build: '14393', + seoDesc: 'Download Windows Server 2016 evaluation ISO from Microsoft. Supports Nano Server, Storage Spaces Direct, and Windows Containers. 180-day trial.', description: 'Legacy server release with Nano Server, Storage Spaces Direct, and Windows Containers support. Suitable for older environment compatibility testing.', archs: ['x64'], @@ -80,6 +85,7 @@ export const evalProducts: EvalProductConfig[] = [ name: 'Windows 11 Enterprise', version: 'Evaluation', build: 'Latest evaluation build', + seoDesc: 'Download Windows 11 Enterprise evaluation ISO from Microsoft. Includes BitLocker, Defender for Endpoint, and Intune management. 180-day trial.', description: 'Full enterprise feature set including Windows Hello for Business, BitLocker, Microsoft Defender for Endpoint integration, and advanced management via Intune and Group Policy.', archs: ['x64'], diff --git a/frontend/src/pages/EvalDetailPage.tsx b/frontend/src/pages/EvalDetailPage.tsx index d7ed824..5ebb907 100644 --- a/frontend/src/pages/EvalDetailPage.tsx +++ b/frontend/src/pages/EvalDetailPage.tsx @@ -85,8 +85,8 @@ export default function EvalDetailPage() { const primaryLink = links[0] ?? null const otherLinks = links.slice(1) - const pageTitle = `${product.name} ISO Download | Windows ISO Downloader` - const pageDesc = `Download ${product.name} evaluation ISO directly from Microsoft. ${product.description}` + const pageTitle = `${product.name} Evaluation ISO Download | Windows ISO Downloader` + const pageDesc = product.seoDesc const canonical = `${SITE_URL}/product/${product.slug}` const breadcrumbJsonLd = { @@ -99,6 +99,17 @@ export default function EvalDetailPage() { ], } + const softwareJsonLd = { + '@context': 'https://schema.org', + '@type': 'SoftwareApplication', + name: `${product.name} Evaluation`, + operatingSystem: 'Windows', + applicationCategory: 'OperatingSystem', + url: canonical, + description: product.seoDesc, + offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' }, + } + return ( <>