AllAi/apps/web/app/sitemap.ts
2025-11-14 21:54:04 +03:00

52 lines
1.2 KiB
TypeScript

import type { MetadataRoute } from "next";
import { fallbackLocale, locales } from "@/config/i18n";
import { blogPosts } from "@/features/marketing/blogData";
const baseUrl = process.env.NEXT_PUBLIC_SITE_URL ?? "http://localhost:3000";
export default function sitemap(): MetadataRoute.Sitemap {
const lastModified = new Date();
const entries: MetadataRoute.Sitemap = [
{
url: `${baseUrl}/`,
lastModified,
changeFrequency: "weekly",
priority: 1
}
];
const marketingSegments = ["about", "pricing", "faq", "blog"] as const;
locales.forEach((locale) => {
const localeBase = `${baseUrl}/${locale}`;
entries.push({
url: localeBase,
lastModified,
changeFrequency: "weekly",
priority: locale === fallbackLocale ? 1 : 0.9
});
marketingSegments.forEach((segment) => {
entries.push({
url: `${localeBase}/${segment}`,
lastModified,
changeFrequency: "weekly",
priority: 0.7
});
});
blogPosts.forEach((post) => {
entries.push({
url: `${localeBase}/blog/${post.slug}`,
lastModified,
changeFrequency: "weekly",
priority: 0.6
});
});
});
return entries;
}