Give each route its own title and canonical, and add robots.txt plus a sitemap.

The root layout was stamping the homepage title and production root onto every page. Routes now supply a page segment through one em-dash template, canonicals follow the request path, and non-production hosts disallow crawlers.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
adilallo
2026-09-09 16:45:19 -06:00
co-authored by Cursor
parent e4e61c0c9b
commit b2b272d2cc
32 changed files with 573 additions and 72 deletions
+12
View File
@@ -0,0 +1,12 @@
import type { MetadataRoute } from "next";
import { headers } from "next/headers";
import { buildRobots, resolveRequestHost } from "../lib/siteMetadata";
export default async function robots(): Promise<MetadataRoute.Robots> {
const headerStore = await headers();
const host = resolveRequestHost(
headerStore.get("x-forwarded-host"),
headerStore.get("host"),
);
return buildRobots(host);
}