diff --git a/app/changelog/%5Fadmin/layout.tsx b/app/changelog/%5Fadmin/layout.tsx index 7c044f8d0ec47..6d230b4a0b201 100644 --- a/app/changelog/%5Fadmin/layout.tsx +++ b/app/changelog/%5Fadmin/layout.tsx @@ -1,10 +1,15 @@ import {type ReactNode, Suspense} from 'react'; import {GET} from 'app/changelog/api/auth/[...nextauth]/route'; +import type {Metadata} from 'next'; import {getServerSession} from 'next-auth/next'; import LoginButton from 'sentry-docs/components/changelog/loginButton'; import NextAuthSessionProvider from 'sentry-docs/components/nextAuthSessionProvider'; +export const metadata: Metadata = { + robots: 'noindex, nofollow', +}; + export default async function Layout({children}: {children: ReactNode}) { const session = await getServerSession(GET); let content = ( diff --git a/app/changelog/[slug]/page.tsx b/app/changelog/[slug]/page.tsx index 838e8c1633973..ce2b065bd10b8 100644 --- a/app/changelog/[slug]/page.tsx +++ b/app/changelog/[slug]/page.tsx @@ -37,6 +37,9 @@ export async function generateMetadata( return { title: changelog?.title, description: changelog?.summary, + alternates: { + canonical: `https://sentry.io/changelog/${params.slug}`, + }, openGraph: { images: changelog?.image || (await parent).openGraph?.images, }, diff --git a/app/changelog/layout.tsx b/app/changelog/layout.tsx index 86122ed98c466..3b38bbbd5f1a9 100644 --- a/app/changelog/layout.tsx +++ b/app/changelog/layout.tsx @@ -18,6 +18,7 @@ const rubik = Rubik({ export const metadata: Metadata = { title: {template: '%s | Sentry Changelog', default: 'Changelog'}, + metadataBase: new URL('https://sentry.io/changelog/'), }; export default function ChangelogLayout({children}: {children: ReactNode}) { diff --git a/app/changelog/page.tsx b/app/changelog/page.tsx index 4c6265ae7e922..e2463f6379b28 100644 --- a/app/changelog/page.tsx +++ b/app/changelog/page.tsx @@ -189,6 +189,9 @@ export function generateMetadata(): Metadata { return { description: 'Stay up to date on everything big and small, from product updates to SDK changes with the Sentry Changelog.', + alternates: { + canonical: `https://sentry.io/changelog/`, + }, other: { 'sentry-trace': `${Sentry.getActiveSpan()?.toTraceparent()}`, },