- 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>
49 lines
1.9 KiB
TypeScript
49 lines
1.9 KiB
TypeScript
import type { Metadata } from 'next'
|
|
import { Manrope } from 'next/font/google'
|
|
import Script from 'next/script'
|
|
import './globals.css'
|
|
|
|
const manrope = Manrope({
|
|
subsets: ['latin', 'cyrillic'],
|
|
variable: '--font-manrope',
|
|
display: 'swap',
|
|
})
|
|
|
|
export const metadata: Metadata = {
|
|
metadataBase: new URL('https://sag24.ru'),
|
|
other: {
|
|
'indexnow-key': '40c65b722891b81d944f2c3fea6cab95',
|
|
},
|
|
}
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="ru" className={manrope.variable}>
|
|
<head>
|
|
<link rel="icon" href="/favicon.ico" />
|
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
<Script src="https://challenges.cloudflare.com/turnstile/v0/api.js" strategy="lazyOnload" />
|
|
{/* Google Analytics GA4 */}
|
|
<Script src="https://www.googletagmanager.com/gtag/js?id=G-C9J0D8FFH3" strategy="afterInteractive" />
|
|
<Script id="ga4" strategy="afterInteractive">{`
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('js', new Date());
|
|
gtag('config', 'G-C9J0D8FFH3');
|
|
`}</Script>
|
|
{/* Yandex.Metrika */}
|
|
<Script id="ym" strategy="afterInteractive">{`
|
|
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
|
|
m[i].l=1*new Date();
|
|
for(var j=0;j<document.scripts.length;j++){if(document.scripts[j].src===r){return;}}
|
|
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
|
|
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
|
|
ym(97525679, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true });
|
|
`}</Script>
|
|
</head>
|
|
<body className="font-sans antialiased">{children}</body>
|
|
</html>
|
|
)
|
|
}
|