ceo optimization , you tobe video addeds, and connect to links to footel ancors

This commit is contained in:
nabijonovdavronbek619@gmail.com
2025-11-16 18:24:19 +05:00
parent 6d5431f5ae
commit db82ed362e
6 changed files with 126 additions and 28 deletions

View File

@@ -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 (
<html lang="en">
<body className={`font-sans antialiased`}>
<LanguageProvider>{children}</LanguageProvider>
<html lang="uz" suppressHydrationWarning>
<body className={`antialiased font-sans`}>
<LanguageProvider>
{children}
</LanguageProvider>
<Analytics />
</body>
</html>

11
app/robots.ts Normal file
View File

@@ -0,0 +1,11 @@
import { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: {
userAgent: "*",
allow: "/",
},
sitemap: "https://dwatt.uz/sitemap.xml",
};
}

32
app/sitemap.ts Normal file
View File

@@ -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,
},
];
}

View File

@@ -24,17 +24,17 @@ export default function Footer() {
<h4 className="font-semibold mb-4">{t.footer.product.title}</h4>
<ul className="space-y-2 text-sm text-white/70">
<li>
<a href="#" className="hover:text-white transition">
<a href="#features" className="hover:text-white transition">
{t.footer.product.items[0]}
</a>
</li>
<li>
<a href="#" className="hover:text-white transition">
<a href="#pricing" className="hover:text-white transition">
{t.footer.product.items[1]}
</a>
</li>
<li>
<a href="#" className="hover:text-white transition">
<a href="#secure" className="hover:text-white transition">
{t.footer.product.items[2]}
</a>
</li>
@@ -50,12 +50,12 @@ export default function Footer() {
</a>
</li>
<li>
<a href="#" className="hover:text-white transition">
<a href="#video" className="hover:text-white transition">
{t.footer.company.items[1]}
</a>
</li>
<li>
<a href="#" className="hover:text-white transition">
<a href="#contact" className="hover:text-white transition">
{t.footer.company.items[2]}
</a>
</li>

View File

@@ -21,7 +21,7 @@ export default function HowItWorks() {
];
return (
<section className="py-20 md:py-32 px-4 sm:px-6 lg:px-8">
<section id="secure" className="py-20 md:py-32 px-4 sm:px-6 lg:px-8">
<div className="max-w-7xl mx-auto">
<div className="text-center mb-12 md:mb-16">
<h2 className="text-3xl md:text-4xl font-bold text-foreground mb-4">

View File

@@ -1,11 +1,10 @@
import { useLanguage } from "@/contexts/language-context"
import { toEmbedUrl } from "@/lib/embedUrl";
import { Play } from "lucide-react"
export default function Video() {
const {t} = useLanguage();
return (
<section className="py-20 md:py-32 px-4 sm:px-6 lg:px-8">
<section id="video" className="py-20 md:py-32 px-4 sm:px-6 lg:px-8">
<div className="max-w-4xl mx-auto">
<div className="text-center mb-12">
<h2 className="text-3xl md:text-4xl font-bold text-foreground mb-4">{t.action.title}</h2>