diff --git a/next-sitemap.config.js b/next-sitemap.config.js new file mode 100644 index 0000000..2ae9fe2 --- /dev/null +++ b/next-sitemap.config.js @@ -0,0 +1,8 @@ +/** @type {import('next-sitemap').IConfig} */ +module.exports = { + siteUrl: 'https://neomovies.ru', + generateRobotsTxt: true, // создает robots.txt + sitemapSize: 7000, + // игнорируем служебные пути + exclude: ['/admin', '/auth'], +}; diff --git a/package.json b/package.json index aac20e5..e97a2b7 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,12 @@ "scripts": { "dev": "next dev --turbopack", "build": "next build", + "postbuild": "next-sitemap", "start": "next start", "lint": "next lint" }, "dependencies": { + "@radix-ui/react-slot": "^1.2.3", "@reduxjs/toolkit": "^2.5.0", "@tabler/icons-react": "^3.26.0", "@types/bcrypt": "^5.0.2", @@ -21,7 +23,9 @@ "axios": "^1.7.9", "bcrypt": "^5.1.1", "bcryptjs": "^2.4.3", + "class-variance-authority": "^0.7.1", "classnames": "^2.5.1", + "clsx": "^2.1.1", "framer-motion": "^11.15.0", "jsonwebtoken": "^9.0.2", "lodash": "^4.17.21", @@ -29,6 +33,7 @@ "mongodb": "^6.12.0", "mongoose": "^8.9.2", "next": "15.1.2", + "next-seo": "^6.8.0", "next-themes": "^0.4.6", "nodemailer": "^6.9.16", "react": "^19.0.0", @@ -38,7 +43,8 @@ "react-redux": "^9.2.0", "resend": "^4.0.1", "styled-components": "^6.1.13", - "tailwind": "^4.0.0" + "tailwind": "^4.0.0", + "tailwind-merge": "^3.3.1" }, "devDependencies": { "@eslint/eslintrc": "^3", @@ -47,6 +53,7 @@ "@types/react-dom": "^19", "eslint": "^9", "eslint-config-next": "15.1.2", + "next-sitemap": "^4.2.3", "postcss": "^8", "tailwindcss": "^3.4.1", "typescript": "^5" diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..1c64687 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,21 @@ +{ + "name": "NeoMovies", + "short_name": "NeoMovies", + "start_url": "/", + "display": "standalone", + "background_color": "#000000", + "theme_color": "#000000", + "description": "Смотрите фильмы и сериалы онлайн на NeoMovies.", + "icons": [ + { + "src": "/public/logo.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/public/logo.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f88d36e..25886c9 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,6 +1,8 @@ import { Inter } from 'next/font/google'; import Script from 'next/script'; import './globals.css'; +import { DefaultSeo } from 'next-seo'; +import SEO from '@/next-seo.config'; import { ClientLayout } from '@/components/ClientLayout'; import { Providers } from '@/components/Providers'; import type { Metadata } from 'next'; @@ -23,6 +25,9 @@ export default function RootLayout({ + + + {/* Google tag (gtag.js) */}