Files
2026-08-12 11:06:10 +02:00

110 lines
3.4 KiB
TypeScript

import type { MetadataRoute } from "next";
const BASE_URL = "https://basiclean.de";
// ─── Typen ───────────────────────────────────────────────────────────────────
// interface BlogPost {
// slug: string;
// updatedAt: Date;
// }
// ─── Daten laden (nur aktivieren wenn Blog vorhanden) ────────────────────────
// async function getBlogPosts(): Promise<BlogPost[]> {
// Hier API/CMS-Call, z.B.:
// const res = await fetch(`${BASE_URL}/api/posts`);
// return res.json();
// }
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
// ─── Statische Seiten ──────────────────────────────────────────────────────
const staticPages: MetadataRoute.Sitemap = [
{
url: BASE_URL,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 1.0,
},
{
url: `${BASE_URL}/leistungen`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.8,
},
{
url: `${BASE_URL}/leistungen/fensterreinigung`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.8,
},
{
url: `${BASE_URL}/leistungen/grundreinigung`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.8,
},
{
url: `${BASE_URL}/leistungen/unterhaltsreinigung`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.8,
},
{
url: `${BASE_URL}/leistungen/hausmeisterdienste`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.8,
},
{
url: `${BASE_URL}/leistungen/treppenhausreinigung`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.8,
},
{
url: `${BASE_URL}/branchenloesungen/bueros`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.6,
},
{
url: `${BASE_URL}/branchenloesungen/kanzlei`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.6,
},
{
url: `${BASE_URL}/branchenloesungen/hallen-und-lagerflaechen`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.6,
},
{
url: `${BASE_URL}/branchenloesungen/wohn-und-geschaeftshaeuser`,
lastModified: new Date(),
changeFrequency: "monthly",
priority: 0.6,
},
{
url: `${BASE_URL}/kontakt`,
lastModified: new Date(),
changeFrequency: "yearly",
priority: 0.6,
},
];
// ─── Dynamische Blog-Seiten (auskommentiert bis Blog vorhanden) ────────────
// const posts = await getBlogPosts();
// const blogPages: MetadataRoute.Sitemap = posts.map((post) => ({
// url: `${BASE_URL}/blog/${post.slug}`,
// lastModified: post.updatedAt,
// changeFrequency: "weekly",
// priority: 0.7,
// }));
// ─── Alles zusammenführen ──────────────────────────────────────────────────
return [
...staticPages,
// ...blogPages, ← aktivieren wenn Blog live ist
];
}