diff --git a/src/app/robots.ts b/src/app/robots.ts new file mode 100644 index 0000000..9aec5cf --- /dev/null +++ b/src/app/robots.ts @@ -0,0 +1,28 @@ +import type { MetadataRoute } from "next"; + +function getSiteUrl() { + return process.env.NEXT_PUBLIC_SITE_URL ?? "https://mein-kitaplaner.de"; +} + +export default function robots(): MetadataRoute.Robots { + const siteUrl = getSiteUrl(); + + return { + rules: { + userAgent: "*", + allow: ["/", "/impressum", "/datenschutz"], + disallow: [ + "/api/", + "/dashboard/", + "/invite/", + "/alert/", + "/login", + "/register", + "/onboarding/", + "/forbidden", + ], + }, + sitemap: `${siteUrl}/sitemap.xml`, + host: siteUrl, + }; +} diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts new file mode 100644 index 0000000..560dca3 --- /dev/null +++ b/src/app/sitemap.ts @@ -0,0 +1,31 @@ +import type { MetadataRoute } from "next"; + +function getSiteUrl() { + return process.env.NEXT_PUBLIC_SITE_URL ?? "https://mein-kitaplaner.de"; +} + +export default function sitemap(): MetadataRoute.Sitemap { + const siteUrl = getSiteUrl(); + const lastModified = new Date(); + + return [ + { + url: siteUrl, + lastModified, + changeFrequency: "weekly", + priority: 1, + }, + { + url: `${siteUrl}/impressum`, + lastModified, + changeFrequency: "yearly", + priority: 0.2, + }, + { + url: `${siteUrl}/datenschutz`, + lastModified, + changeFrequency: "yearly", + priority: 0.2, + }, + ]; +}