diff --git a/app/layout.tsx b/app/layout.tsx index e7e9bf7..150bcae 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -4,41 +4,97 @@ import { Analytics } from "@vercel/analytics/next"; import { LanguageProvider } from "@/contexts/language-context"; import "./globals.css"; +// Fonts const _geist = Geist({ subsets: ["latin"] }); const _geistMono = Geist_Mono({ subsets: ["latin"] }); +// --------------------------------------------- +// MULTI-LANGUAGE SEO METADATA (UZ / RU / EN) +// --------------------------------------------- export const metadata: Metadata = { - title: "v0 App", - description: "Created with v0", - generator: "v0.app", + title: + "DWATT – Elektr zaryadlash stansiyalarini boshqarish tizimi | EV Charging Management Platform", + description: + "Dwatt – elektromobil zaryadlash stansiyalarini boshqarish, monitoring va avtomatlashtirish uchun yaratilgan platforma.", + keywords: [ + "dwatt", + "dwatt.uz", + "ev charging uz", + "заправка электромобилей", + "ev charging management", + "зарядная станция", + "ev charger software", + "uzbekistan ev charging", + "charging management platform", + ], + authors: [{ name: "DWATT" }], + robots: "index, follow", + themeColor: "#004CEE", + metadataBase: new URL("https://dwatt.uz"), + + // MULTILINGUAL SUPPORT FOR SEO + alternates: { + canonical: "https://dwatt.uz", + languages: { + "uz-UZ": "https://dwatt.uz/uz", + "ru-RU": "https://dwatt.uz/ru", + "en-US": "https://dwatt.uz/en", + }, + }, + + // SOCIAL SHARE (Open Graph) + openGraph: { + type: "website", + url: "https://dwatt.uz", + siteName: "DWATT", + title: + "DWATT – EV Charging Management Platform | Elektr zaryadlash boshqaruvi", + description: + "Elektromobil zaryadlash stansiyalarini boshqarish, monitoring qilish va avtomatlashtirish uchun mo'ljallangan professional tizim.", + images: [ + { + url: "https://dwatt.uz/og-image.png", + width: 1200, + height: 630, + alt: "DWATT EV Charging Platform", + }, + ], + }, + + // TWITTER SEO + twitter: { + card: "summary_large_image", + title: "DWATT – Elektr zaryadlash stansiyalarini boshqarish tizimi", + description: + "Dwatt elektromobil zaryadlash stansiyalarini boshqarish uchun yaratilgan professional tizim.", + images: ["https://dwatt.uz/og-image.png"], + site: "@dwatt", + }, + icons: { icon: [ - { - url: "/icon-light-32x32.png", - media: "(prefers-color-scheme: light)", - }, - { - url: "/icon-dark-32x32.png", - media: "(prefers-color-scheme: dark)", - }, - { - url: "/icon.svg", - type: "image/svg+xml", - }, + { url: "/icon-light-32x32.png", media: "(prefers-color-scheme: light)" }, + { url: "/icon-dark-32x32.png", media: "(prefers-color-scheme: dark)" }, + { url: "/icon.svg", type: "image/svg+xml" }, ], apple: "/apple-icon.png", }, }; +// --------------------------------------------- +// ROOT LAYOUT WITH MULTI-LANGUAGE SUPPORT +// --------------------------------------------- export default function RootLayout({ children, -}: Readonly<{ +}: { children: React.ReactNode; -}>) { +}) { return ( - - - {children} + + + + {children} + diff --git a/app/robots.ts b/app/robots.ts new file mode 100644 index 0000000..f09b56c --- /dev/null +++ b/app/robots.ts @@ -0,0 +1,11 @@ +import { MetadataRoute } from "next"; + +export default function robots(): MetadataRoute.Robots { + return { + rules: { + userAgent: "*", + allow: "/", + }, + sitemap: "https://dwatt.uz/sitemap.xml", + }; +} diff --git a/app/sitemap.ts b/app/sitemap.ts new file mode 100644 index 0000000..d607f77 --- /dev/null +++ b/app/sitemap.ts @@ -0,0 +1,32 @@ +import { MetadataRoute } from "next"; + +export default function sitemap(): MetadataRoute.Sitemap { + const base = "https://dwatt.uz"; + + return [ + { + url: `${base}`, + lastModified: new Date(), + changeFrequency: "weekly", + priority: 1.0, + }, + { + url: `${base}/uz`, + lastModified: new Date(), + changeFrequency: "weekly", + priority: 0.9, + }, + { + url: `${base}/ru`, + lastModified: new Date(), + changeFrequency: "weekly", + priority: 0.9, + }, + { + url: `${base}/en`, + lastModified: new Date(), + changeFrequency: "weekly", + priority: 0.9, + }, + ]; +} diff --git a/components/footer.tsx b/components/footer.tsx index 87d26e4..3060f8d 100644 --- a/components/footer.tsx +++ b/components/footer.tsx @@ -24,17 +24,17 @@ export default function Footer() {

{t.footer.product.title}