seo: GA4, breadcrumbs JSON-LD, IndexNow post-deploy, llms.txt

- 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>
This commit is contained in:
2026-03-16 04:04:50 +03:00
parent 21596c278b
commit 9f53641f16
12 changed files with 151 additions and 11 deletions

View File

@@ -3,6 +3,7 @@ import Link from 'next/link'
import { notFound } from 'next/navigation'
import { getDictionary, LOCALES, type Locale } from '@/lib/i18n'
import { SERVICE_SLUGS } from '@/lib/services'
import { breadcrumbSchema } from '@/lib/breadcrumbs'
import { Server, Shield, Headphones, Camera, Network, HardDrive, Phone, Cloud, CheckCircle2, ChevronRight } from 'lucide-react'
const ICONS = [Server, Shield, Headphones, Camera, Network, HardDrive, Phone, Cloud]
@@ -109,6 +110,14 @@ export default async function ServicePage({ params }: { params: Promise<{ lang:
</Link>
</div>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbSchema([
{ name: lang === 'ru' ? 'Главная' : 'Home', url: `https://sag24.ru/${lang}/` },
{ name: lang === 'ru' ? 'Услуги' : 'Services', url: `https://sag24.ru/${lang}/uslugi/` },
{ name: svc.title, url: `https://sag24.ru/${lang}/uslugi/${slug}/` },
])) }}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{