diff --git a/next.config.mjs b/next.config.mjs index 239bc71..3042b64 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -50,11 +50,15 @@ const nextConfig = { async redirects() { return [ - // Root redirect + // Homepage canonical: '/' is the real route now (src/app/page.tsx + // re-exports from src/app/home-page/page.tsx). The legacy + // /home-page URL gets a 301 permanent redirect to '/' so any + // crawler entry for /home-page consolidates link equity onto + // the canonical root. { - source: '/', - destination: '/home-page', - permanent: false, + source: '/home-page', + destination: '/', + permanent: true, }, // WordPress admin redirects for broadcastbeat.com (301 permanent) { diff --git a/src/app/home-page/page.tsx b/src/app/home-page/page.tsx index 2a8d21b..90c5403 100644 --- a/src/app/home-page/page.tsx +++ b/src/app/home-page/page.tsx @@ -16,12 +16,12 @@ export const metadata: Metadata = { title: 'Broadcast Beat — Broadcast Engineering News & Insights', description: 'The digital platform for broadcast engineering professionals. Breaking news, deep-dive features, and industry spotlights from NAB to IBC and beyond.', alternates: { - canonical: '/home-page', + canonical: '/', }, openGraph: { title: 'Broadcast Beat — Broadcast News', description: 'Breaking news and insights for broadcast engineering professionals.', - url: '/home-page', + url: '/', type: 'website', images: [ { diff --git a/src/app/page.tsx b/src/app/page.tsx new file mode 100644 index 0000000..b546f23 --- /dev/null +++ b/src/app/page.tsx @@ -0,0 +1,7 @@ +// Canonical homepage at '/'. +// Content is defined in ./home-page/page.tsx (kept there to avoid +// breaking the relative imports its components depend on). The legacy +// /home-page URL still resolves but 301-redirects here via the +// next.config.mjs redirects() block. +export { default } from "./home-page/page"; +export { metadata } from "./home-page/page"; diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts index dc6c944..8939bc0 100644 --- a/src/app/sitemap.ts +++ b/src/app/sitemap.ts @@ -47,7 +47,6 @@ async function listEventSlugs(): Promise<{ slug: string; updated_at: string }[]> export default async function sitemap(): Promise { const staticPages: MetadataRoute.Sitemap = [ { url: `${BASE_URL}/`, lastModified: new Date(), changeFrequency: 'daily', priority: 1.0 }, - { url: `${BASE_URL}/home-page`, lastModified: new Date(), changeFrequency: 'daily', priority: 1.0 }, { url: `${BASE_URL}/news`, lastModified: new Date(), changeFrequency: 'hourly', priority: 0.9 }, { url: `${BASE_URL}/gear`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.8 }, { url: `${BASE_URL}/technology`, lastModified: new Date(), changeFrequency: 'daily', priority: 0.8 },