Fix SEO/UX audit gaps: canonical tags, org schema, nav, header claims

Add canonical URLs and a sitewide Organization JSON-LD (linked via @id
to page-specific LocalBusiness/Service/Article schemas), move FAQ and
Reviews into the top nav, attach the 24/7 support claim to a tooltip
on the header badge instead of leaving it unexplained, drop the
unverifiable incidents_resolved stat from the hero terminal animation,
and clean up the empty-reviews state instead of showing a thin
placeholder.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013otXCiTZsxdZ4SJKZ9wUky
This commit is contained in:
ogrechkoandClaude Sonnet 5 committed 2026-08-25 23:43:17 +03:00
1 parent 130c5382cd
commit 30e1aea20b
16 files changed
+72 -11

No files matched your search

+6 -2
View File
@@ -18,7 +18,11 @@ export async function generateMetadata({ params }) {
const category = await findCategory(params.slug);
if (!category) return { title: 'Услуга не найдена' };
const copy = getServiceLandingCopy(category);
return { title: copy.metaTitle, description: copy.metaDescription };
return {
title: copy.metaTitle,
description: copy.metaDescription,
alternates: { canonical: `/uslugi/${category.slug}` },
};
}
export default async function ServiceLandingPage({ params }) {
@@ -33,7 +37,7 @@ export default async function ServiceLandingPage({ params }) {
'@type': 'Service',
name: copy.h1,
description: copy.metaDescription,
provider: { '@type': 'Organization', name: 'TopSysOps' },
provider: { '@id': `${process.env.NEXT_PUBLIC_SITE_URL || 'https://top-sysops.ru'}/#organization` },
areaServed: 'RU',
};
+1
View File
@@ -7,6 +7,7 @@ export const metadata = {
title: 'Услуги IT-аутсорсинга и техподдержки — прайс-лист',
description:
'IT-аутсорсинг, техподдержка, кибербезопасность, администрирование серверов и баз данных, сетевая инфраструктура, облачные решения, ИИ и автоматизация. Актуальные цены.',
alternates: { canonical: '/uslugi' },
};
export default async function ServicesPage() {