mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-17 18:35:19 +02:00
feat(announcements): add SEO metadata via server layout.tsx
The announcements page is a public, crawlable route but its page.tsx is 'use client', so it can't export metadata itself and falls back to the root app/layout.tsx. Add a server-component layout.tsx under app/(home)/announcements/ that exports route-specific metadata (title, description, canonical, OpenGraph, Twitter) in the same shape as the neighboring /blog, /changelog, /contact, /privacy, /terms routes. page.tsx is unchanged. Canonical URL matches app/layout.tsx's metadataBase (https://surfsense.com). Fixes #1244
This commit is contained in:
parent
a0f2851784
commit
3487664bbd
1 changed files with 25 additions and 0 deletions
25
surfsense_web/app/(home)/announcements/layout.tsx
Normal file
25
surfsense_web/app/(home)/announcements/layout.tsx
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
import type { Metadata } from "next";
|
||||||
|
import type { ReactNode } from "react";
|
||||||
|
|
||||||
|
export const metadata: Metadata = {
|
||||||
|
title: "Announcements | SurfSense",
|
||||||
|
description: "Latest product updates, feature releases, and news from SurfSense.",
|
||||||
|
alternates: {
|
||||||
|
canonical: "https://surfsense.com/announcements",
|
||||||
|
},
|
||||||
|
openGraph: {
|
||||||
|
title: "Announcements | SurfSense",
|
||||||
|
description: "Latest product updates, feature releases, and news from SurfSense.",
|
||||||
|
url: "https://surfsense.com/announcements",
|
||||||
|
type: "website",
|
||||||
|
},
|
||||||
|
twitter: {
|
||||||
|
card: "summary_large_image",
|
||||||
|
title: "Announcements | SurfSense",
|
||||||
|
description: "Latest product updates, feature releases, and news from SurfSense.",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default function AnnouncementsLayout({ children }: { children: ReactNode }) {
|
||||||
|
return <>{children}</>;
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue