diff --git a/src/app/bills/[id]/edit/page.tsx b/src/app/bills/[id]/edit/page.tsx index 74654abc..68d0b873 100644 --- a/src/app/bills/[id]/edit/page.tsx +++ b/src/app/bills/[id]/edit/page.tsx @@ -1,3 +1,4 @@ +import type { Metadata } from "next"; import { redirect } from "next/navigation"; import { getBillByIdFromDB } from "@/app/bills/server/get-bill-by-id-from-db"; import { requireAuthenticatedUser } from "@/app/bills/lib/auth-guards"; @@ -5,6 +6,11 @@ import { BASE_PATH } from "@/app/bills/utils/basePath"; import { Button } from "@/components/ui/button"; import { ReprocessButton } from "@/app/bills/components/ReprocessButton/reprocess-button.component"; +export const metadata: Metadata = { + title: "Edit Bill", + robots: { index: false, follow: false, googleBot: { index: false, follow: false } }, +}; + interface Params { params: Promise<{ id: string }>; } diff --git a/src/app/bills/layout.tsx b/src/app/bills/layout.tsx index 0cdf91f1..27ff291b 100644 --- a/src/app/bills/layout.tsx +++ b/src/app/bills/layout.tsx @@ -15,7 +15,8 @@ export const metadata: Metadata = { default: PROJECT_NAME, template: `%s · ${PROJECT_NAME}`, }, - description: "Understand Canadian Federal Bills", + description: + "Builder MP: Canadian federal bills summarized and judged through a builder-first lens.", openGraph: { type: "website", siteName: PROJECT_NAME, @@ -36,7 +37,8 @@ export const metadata: Metadata = { site: BUILD_CANADA_TWITTER_HANDLE, creator: BUILD_CANADA_TWITTER_HANDLE, title: PROJECT_NAME, - description: "Understand Canadian Federal Bills", + description: + "Builder MP: Canadian federal bills summarized and judged through a builder-first lens.", images: ["https://buildcanada.com/bills/builder-mp-seo-image.png"], }, }; diff --git a/src/app/bills/page.tsx b/src/app/bills/page.tsx index 1b7b064e..1ddef2e3 100644 --- a/src/app/bills/page.tsx +++ b/src/app/bills/page.tsx @@ -6,7 +6,11 @@ import type { Metadata } from "next"; import { headers } from "next/headers"; import { env } from "@/app/bills/env"; import { buildRelativePath } from "@/app/bills/utils/basePath"; -import { BUILD_CANADA_TWITTER_HANDLE, PROJECT_NAME } from "@/app/bills/consts/general"; +import { + BUILD_CANADA_TWITTER_HANDLE, + BUILD_CANADA_URL, + PROJECT_NAME, +} from "@/app/bills/consts/general"; import FAQModalTrigger from "./FAQModalTrigger"; import { PageHeader } from "@/components/ui/page-header"; @@ -25,9 +29,11 @@ export const dynamic = "auto"; export const revalidate = 120; // seconds - cache page data export async function generateMetadata(): Promise { - const title = "Home"; + const title = { + absolute: `${PROJECT_NAME} — Canadian Federal Bills Tracker | Build Canada`, + }; const description = - "Understand Canadian federal bills with builder-first analysis."; + "Builder MP tracks every bill before Canada's House of Commons and Senate, summarized and judged through a builder-first lens."; const h = headers(); const headerList = await h; const host = @@ -44,6 +50,14 @@ export async function generateMetadata(): Promise { return { title, description, + keywords: [ + "Builder MP", + "Canadian federal bills", + "Parliament of Canada bills", + "bill tracker Canada", + "45th Parliament", + "Build Canada", + ], alternates: { canonical: pageUrl }, openGraph: { title: PROJECT_NAME, @@ -221,11 +235,32 @@ export default async function Home({ clearMergedBillsCache(); // Allow manual cache busting with ?cache=clear } const bills = await getMergedBillsCached(); + const jsonLd = { + "@context": "https://schema.org", + "@type": "WebApplication", + name: PROJECT_NAME, + alternateName: "Builder MP by Build Canada", + url: `${BUILD_CANADA_URL}${buildRelativePath()}`, + description: + "Builder MP tracks every bill before Canada's House of Commons and Senate, summarized and judged through a builder-first lens.", + applicationCategory: "GovernmentApplication", + operatingSystem: "Web", + isAccessibleForFree: true, + publisher: { + "@type": "Organization", + name: "Build Canada", + url: BUILD_CANADA_URL, + }, + }; return (
+