SEO: JSON-LD, hreflang x-default, 404 page, localized OG

- FaqSection: h1/h2 based on standalone prop (fixes missing H1 on /faq)
- faq/page: FAQPage JSON-LD, hreflang x-default, OG image/url
- kontakty/page: LocalBusiness JSON-LD (address, geo, tel, openingHours), hreflang x-default, OG
- uslugi/page: geo in H1 («в Пушкино»), hreflang x-default, OG, expanded description
- [lang]/page: Organization JSON-LD, localized OG (ru_RU/en_US), x-default hreflang
- [slug]/page: localized og:title/siteName, x-default hreflang, areaServed+telephone in Service JSON-LD
- not-found.tsx: 404 page → generates 404.html for nginx error_page directive

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 00:56:47 +03:00
parent e223f51bd9
commit 55f88d5227
7 changed files with 200 additions and 18 deletions

View File

@@ -18,6 +18,7 @@ export async function generateMetadata({ params }: { params: Promise<{ lang: str
const d = getDictionary(lang)
const svc = d.services.items.find(s => s.slug === slug)
if (!svc) return {}
const orgName = lang === 'ru' ? 'Сисадмингрупп' : 'SysadminGroup'
return {
title: svc.title,
description: svc.description,
@@ -26,11 +27,15 @@ export async function generateMetadata({ params }: { params: Promise<{ lang: str
languages: {
'ru': `https://sag24.ru/ru/uslugi/${slug}/`,
'en': `https://sag24.ru/en/uslugi/${slug}/`,
'x-default': `https://sag24.ru/ru/uslugi/${slug}/`,
},
},
openGraph: {
title: `${svc.title} | Сисадмингрупп`,
title: `${svc.title} | ${orgName}`,
description: svc.description,
url: `https://sag24.ru/${lang}/uslugi/${slug}/`,
siteName: orgName,
locale: lang === 'ru' ? 'ru_RU' : 'en_US',
images: [{ url: '/og-image.png' }],
},
}
@@ -112,10 +117,13 @@ export default async function ServicePage({ params }: { params: Promise<{ lang:
'@type': 'Service',
'name': svc.title,
'description': svc.description,
'url': `https://sag24.ru/${lang}/uslugi/${slug}/`,
'areaServed': lang === 'ru' ? 'Московская область' : 'Moscow Region',
'provider': {
'@type': 'Organization',
'name': 'Сисадмингрупп',
'name': lang === 'ru' ? 'Сисадмингрупп' : 'SysadminGroup',
'url': 'https://sag24.ru',
'telephone': '+7-495-363-74-76',
},
}),
}}