- Add GA4 (G-C9J0D8FFH3) to root layout alongside Yandex.Metrika - Add BreadcrumbList JSON-LD schema to all inner pages - Add scripts/indexnow.mjs — submits 30 URLs to IndexNow + Yandex on deploy - Add indexnow to postdeploy step in package.json - Update llms.txt with all 8 services and new pages (about/clients/partners) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
52 lines
2.3 KiB
TypeScript
52 lines
2.3 KiB
TypeScript
import type { Metadata } from 'next'
|
||
import { getDictionary, LOCALES, type Locale } from '@/lib/i18n'
|
||
import { breadcrumbSchema } from '@/lib/breadcrumbs'
|
||
import AboutSection from '@/components/sections/AboutSection'
|
||
|
||
export function generateStaticParams() {
|
||
return LOCALES.map(lang => ({ lang }))
|
||
}
|
||
|
||
export async function generateMetadata({ params }: { params: Promise<{ lang: string }> }): Promise<Metadata> {
|
||
const { lang } = await params
|
||
const isRu = lang === 'ru'
|
||
return {
|
||
title: isRu ? 'О компании — Сисадмингрупп' : 'About Us — SysadminGroup',
|
||
description: isRu
|
||
? 'Сисадмингрупп — IT-аутсорсинг в Пушкино и Московской области. Более 10 лет опыта, 150+ клиентов.'
|
||
: 'SysadminGroup — IT outsourcing in Pushkino and Moscow Region. Over 10 years experience, 150+ clients.',
|
||
alternates: {
|
||
canonical: `https://sag24.ru/${lang}/about/`,
|
||
languages: {
|
||
'ru': 'https://sag24.ru/ru/about/',
|
||
'en': 'https://sag24.ru/en/about/',
|
||
'x-default': 'https://sag24.ru/ru/about/',
|
||
},
|
||
},
|
||
openGraph: {
|
||
title: isRu ? 'О компании — Сисадмингрупп' : 'About Us — SysadminGroup',
|
||
description: isRu
|
||
? 'Сисадмингрупп — IT-аутсорсинг в Пушкино и Московской области. 10+ лет опыта, 150+ клиентов.'
|
||
: 'SysadminGroup — IT outsourcing in Pushkino and Moscow Region. 10+ years experience, 150+ clients.',
|
||
url: `https://sag24.ru/${lang}/about/`,
|
||
images: [{ url: '/og-image.png' }],
|
||
},
|
||
}
|
||
}
|
||
|
||
export default async function AboutPage({ params }: { params: Promise<{ lang: string }> }) {
|
||
const { lang: langStr } = await params
|
||
const lang = langStr as Locale
|
||
const d = getDictionary(lang)
|
||
const isRu = lang === 'ru'
|
||
return (
|
||
<div className="pt-16">
|
||
<AboutSection d={d} standalone />
|
||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbSchema([
|
||
{ name: isRu ? 'Главная' : 'Home', url: `https://sag24.ru/${lang}/` },
|
||
{ name: isRu ? 'О компании' : 'About', url: `https://sag24.ru/${lang}/about/` },
|
||
])) }} />
|
||
</div>
|
||
)
|
||
}
|