update keywords
This commit is contained in:
parent
42a35675f3
commit
f5c8acca6e
5 changed files with 151 additions and 13 deletions
BIN
public/og-image.png
Normal file
BIN
public/og-image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 115 KiB |
4
public/robots.txt
Normal file
4
public/robots.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://autli.ru/sitemap.xml
|
||||
|
|
@ -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>
|
||||
|
|
@ -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 />
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
Loading…
Add table
Reference in a new issue