This commit is contained in:
2026-07-02 10:24:12 -05:00
parent 7f49ca1626
commit 81d54e3e57
3 changed files with 63 additions and 0 deletions

View File

@@ -2,12 +2,30 @@ import type { Metadata } from "next";
import Script from "next/script"; import Script from "next/script";
import { Locale, getDictionary } from "@/lib/i18n"; import { Locale, getDictionary } from "@/lib/i18n";
const BASE_URL = "https://soccer-2026.info";
export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }): Promise<Metadata> { export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }): Promise<Metadata> {
const { locale } = await params; const { locale } = await params;
const dict = getDictionary(locale as Locale); const dict = getDictionary(locale as Locale);
return { return {
metadataBase: new URL(BASE_URL),
title: dict.meta.title, title: dict.meta.title,
description: dict.meta.description, description: dict.meta.description,
alternates: {
canonical: `${BASE_URL}/${locale}`,
languages: {
en: `${BASE_URL}/en`,
de: `${BASE_URL}/de`,
},
},
openGraph: {
title: dict.meta.title,
description: dict.meta.description,
url: `${BASE_URL}/${locale}`,
locale: locale === "en" ? "en_US" : "de_DE",
siteName: "WM 2026 Dashboard",
type: "website",
},
}; };
} }

12
app/robots.ts Normal file
View File

@@ -0,0 +1,12 @@
import type { MetadataRoute } from "next";
export default function robots(): MetadataRoute.Robots {
return {
rules: {
userAgent: "*",
allow: "/",
disallow: ["/api/"],
},
sitemap: "https://soccer-2026.info/sitemap.xml",
};
}

33
app/sitemap.ts Normal file
View File

@@ -0,0 +1,33 @@
import type { MetadataRoute } from "next";
const BASE = "https://soccer-2026.info";
export default function sitemap(): MetadataRoute.Sitemap {
const now = new Date();
return [
{
url: `${BASE}/en`,
lastModified: now,
changeFrequency: "hourly",
priority: 1.0,
alternates: {
languages: {
en: `${BASE}/en`,
de: `${BASE}/de`,
},
},
},
{
url: `${BASE}/de`,
lastModified: now,
changeFrequency: "hourly",
priority: 1.0,
alternates: {
languages: {
en: `${BASE}/en`,
de: `${BASE}/de`,
},
},
},
];
}