From 21d51194b72e62d1a92e362043b6d4114ac7abc0 Mon Sep 17 00:00:00 2001 From: sax3l Date: Tue, 22 Sep 2026 09:57:15 +0200 Subject: [PATCH] =?UTF-8?q?feat(seo):=20robots.txt=20+=20sitemap.xml=20?= =?UTF-8?q?=E2=80=94=20crawler-kontraktet=20saknades=20helt=20(404=20m?= =?UTF-8?q?=C3=A4tt=20live)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Publik marknadsföringssajt utan robots/sitemap = crawlers rattningslös. - robots.ts: allow /, disallow portal/admin/order/api (inloggnings-ytor) - sitemap.ts: 7 publika ytor, weekly --- app/robots.ts | 10 ++++++++++ app/sitemap.ts | 13 +++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 app/robots.ts create mode 100644 app/sitemap.ts diff --git a/app/robots.ts b/app/robots.ts new file mode 100644 index 0000000..c818f00 --- /dev/null +++ b/app/robots.ts @@ -0,0 +1,10 @@ +import type { MetadataRoute } from "next"; + +// Publik marknadsföringssajt: crawler-vänlig men utan auth-ytor. +// /portal, /admin och /order/* är inloggnings-ytor — ej indexerbara. +export default function robots(): MetadataRoute.Robots { + return { + rules: [{ userAgent: "*", allow: "/", disallow: ["/portal/", "/admin/", "/order/", "/api/"] }], + sitemap: "https://0pt.app/sitemap.xml", + }; +} diff --git a/app/sitemap.ts b/app/sitemap.ts new file mode 100644 index 0000000..aa2f2a3 --- /dev/null +++ b/app/sitemap.ts @@ -0,0 +1,13 @@ +import type { MetadataRoute } from "next"; + +const BASE = "https://0pt.app"; +const ROUTES = ["", "/tjanster", "/katalog", "/kallor", "/bestall", "/bestall/beskriv", "/bestall/forskott"]; + +export default function sitemap(): MetadataRoute.Sitemap { + return ROUTES.map((r) => ({ + url: `${BASE}${r}`, + lastModified: new Date(), + changeFrequency: "weekly", + priority: r === "" ? 1 : 0.7, + })); +} -- 2.54.0