update keywords

This commit is contained in:
Nikita 2026-09-26 16:57:07 +05:00
parent 42a35675f3
commit f5c8acca6e
5 changed files with 151 additions and 13 deletions

BIN
public/og-image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

4
public/robots.txt Normal file
View file

@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://autli.ru/sitemap.xml

View file

@ -1,12 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://autli.ru/</loc>
<lastmod>2026-09-26</lastmod>
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://autli.ru/projects</loc>
<loc>https://autli.ru/projects/</loc>
<lastmod>2026-09-26</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>

View file

@ -1,4 +1,5 @@
import type { Metadata } from "next";
import type { ReactNode } from "react";
import { Geist, Geist_Mono } from "next/font/google";
import { ContextMenu } from "@/widgets/context-menu";
import { CookieConsent } from "@/widgets/cookie-consent";
@ -18,18 +19,137 @@ const geistMono = Geist_Mono({
subsets: ["latin"],
});
const siteUrl = "https://autli.ru";
export const metadata: Metadata = {
title: "Personal Site",
description: "Personal website",
metadataBase: new URL(siteUrl),
title: {
default: "Никита Егоров — Frontend & Web Developer | Портфолио",
template: "%s | Никита Егоров",
},
description:
"Портфолио веб-разработчика Никиты Егорова. Создание современных, быстрых и адаптивных веб-сайтов, интернет-магазинов и веб-сервисов на React, Next.js, TypeScript и Django.",
applicationName: "Никита Егоров — Портфолио",
authors: [{ name: "Никита Егоров", url: siteUrl }],
creator: "Никита Егоров",
publisher: "Никита Егоров",
keywords: [
"Никита Егоров",
"Nikita Egorov",
"autli",
"веб-разработчик",
"фронтенд разработчик",
"Frontend Developer",
"Web Developer",
"React",
"Next.js",
"TypeScript",
"Tailwind CSS",
"Django",
"разработка сайтов",
"портфолио разработчика",
],
formatDetection: {
email: false,
address: false,
telephone: false,
},
alternates: {
canonical: "/",
},
openGraph: {
title: "Никита Егоров — Frontend & Web Developer | Портфолио",
description:
"Разработка современных, быстрых и продуманных веб-сервисов, интернет-магазинов и дашбордов на React, Next.js и TypeScript.",
url: siteUrl,
siteName: "Никита Егоров — Портфолио",
locale: "ru_RU",
type: "website",
images: [
{
url: "/og-image.png",
width: 1200,
height: 630,
alt: "Никита Егоров — Frontend & Web Developer",
},
],
},
twitter: {
card: "summary_large_image",
title: "Никита Егоров — Frontend & Web Developer | Портфолио",
description:
"Разработка современных, быстрых и продуманных веб-сервисов, интернет-магазинов и дашбордов на React, Next.js и TypeScript.",
images: ["/og-image.png"],
},
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
"max-video-preview": -1,
"max-image-preview": "large",
"max-snippet": -1,
},
},
};
const RootLayout = ({ children }: LayoutProps<"/">) => {
const jsonLd = {
"@context": "https://schema.org",
"@graph": [
{
"@type": "Person",
"@id": `${siteUrl}/#person`,
name: "Никита Егоров",
alternateName: "Nikita Egorov",
jobTitle: "Frontend & Web Developer",
url: siteUrl,
sameAs: [
"https://t.me/autli",
"https://github.com/autli5",
],
knowsAbout: [
"React",
"Next.js",
"TypeScript",
"JavaScript",
"Tailwind CSS",
"Python",
"Django",
"PostgreSQL",
"Web Development",
"Core Web Vitals",
"SEO",
],
},
{
"@type": "WebSite",
"@id": `${siteUrl}/#website`,
url: siteUrl,
name: "Никита Егоров — Портфолио разработчика",
description:
"Создание современных, быстрых и продуманных веб-сайтов и приложений под ключ.",
publisher: {
"@id": `${siteUrl}/#person`,
},
inLanguage: "ru-RU",
},
],
};
const RootLayout = ({ children }: { children: ReactNode }) => {
return (
<html
lang="en"
lang="ru"
className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`}
suppressHydrationWarning
>
<head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
</head>
<body className="min-h-full flex flex-col">
<Preloader />
<Cursor />

View file

@ -1,12 +1,23 @@
import type { Metadata } from "next";
import { ProjectsPage } from "@/views/projects";
export const metadata: Metadata = {
title: "Все проекты",
description:
"Коммерческие и пет-проекты Egorov Nikita: веб-приложения, интернет-магазины, SaaS-дашборды и сайты под ключ на React, Next.js, TypeScript и Django.",
alternates: {
canonical: "/projects/",
},
openGraph: {
title: "Все проекты | Никита Егоров",
description:
"Коммерческие и пет-проекты Egorov Nikita: веб-приложения, интернет-магазины, SaaS-дашборды и сайты под ключ.",
url: "https://autli.ru/projects/",
},
};
const Projects = () => {
return <ProjectsPage />;
};
export const metadata = {
title: "Проекты",
description: "Все проекты Egorov Nikita",
};
export default Projects;