From 55981c14dd88a9a520124e55f975351f92291d5d Mon Sep 17 00:00:00 2001 From: striker Date: Mon, 16 Mar 2026 03:17:39 +0300 Subject: [PATCH] feat: separate About/Clients/Partners into /o-kompanii/ page, add IndexNow meta MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create /[lang]/o-kompanii/ page with About, Clients, Partners sections - Remove those sections from homepage (Hero + Services + FAQ remain) - Update Header nav: "О нас" now links to /o-kompanii/ instead of /#about - AboutSection: support standalone prop (h1 vs h2) - Root layout: add indexnow-key meta tag (key from public/40c65b...txt) Co-Authored-By: Claude Sonnet 4.6 --- src/app/[lang]/o-kompanii/page.tsx | 49 ++++++++++++++++++++++++ src/app/[lang]/page.tsx | 6 --- src/app/layout.tsx | 3 ++ src/components/layout/Header.tsx | 2 +- src/components/sections/AboutSection.tsx | 5 ++- 5 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 src/app/[lang]/o-kompanii/page.tsx diff --git a/src/app/[lang]/o-kompanii/page.tsx b/src/app/[lang]/o-kompanii/page.tsx new file mode 100644 index 0000000..4a65e3d --- /dev/null +++ b/src/app/[lang]/o-kompanii/page.tsx @@ -0,0 +1,49 @@ +import type { Metadata } from 'next' +import { getDictionary, LOCALES, type Locale } from '@/lib/i18n' +import AboutSection from '@/components/sections/AboutSection' +import ClientsSection from '@/components/sections/ClientsSection' +import PartnersSection from '@/components/sections/PartnersSection' + +export function generateStaticParams() { + return LOCALES.map(lang => ({ lang })) +} + +export async function generateMetadata({ params }: { params: Promise<{ lang: string }> }): Promise { + 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, trusted partners.', + alternates: { + canonical: `https://sag24.ru/${lang}/o-kompanii/`, + languages: { + 'ru': 'https://sag24.ru/ru/o-kompanii/', + 'en': 'https://sag24.ru/en/o-kompanii/', + 'x-default': 'https://sag24.ru/ru/o-kompanii/', + }, + }, + openGraph: { + title: isRu ? 'О компании — Сисадмингрупп' : 'About Us — SysadminGroup', + description: isRu + ? 'Сисадмингрупп — IT-аутсорсинг в Пушкино и Московской области. Более 10 лет опыта, 150+ клиентов.' + : 'SysadminGroup — IT outsourcing in Pushkino and Moscow Region. Over 10 years experience, 150+ clients.', + url: `https://sag24.ru/${lang}/o-kompanii/`, + 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) + return ( +
+ + + +
+ ) +} diff --git a/src/app/[lang]/page.tsx b/src/app/[lang]/page.tsx index 7b64206..cae0aa8 100644 --- a/src/app/[lang]/page.tsx +++ b/src/app/[lang]/page.tsx @@ -2,9 +2,6 @@ import type { Metadata } from 'next' import { getDictionary, LOCALES, type Locale } from '@/lib/i18n' import Hero from '@/components/sections/Hero' import ServicesGrid from '@/components/sections/ServicesGrid' -import AboutSection from '@/components/sections/AboutSection' -import ClientsSection from '@/components/sections/ClientsSection' -import PartnersSection from '@/components/sections/PartnersSection' import FaqSection from '@/components/sections/FaqSection' export function generateStaticParams() { @@ -67,9 +64,6 @@ export default async function HomePage({ params }: { params: Promise<{ lang: str <> - - -