From b786fb6cd248902d70a8381e9895e2e854c469b7 Mon Sep 17 00:00:00 2001 From: cupadev-admin Date: Mon, 9 Mar 2026 20:55:10 +0000 Subject: [PATCH] fix: apply seo agent improvements to src/app/blog/layout.tsx --- src/app/blog/layout.tsx | 56 ++++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 14 deletions(-) diff --git a/src/app/blog/layout.tsx b/src/app/blog/layout.tsx index 7ce8558..b681429 100644 --- a/src/app/blog/layout.tsx +++ b/src/app/blog/layout.tsx @@ -2,13 +2,54 @@ import type { Metadata } from 'next' const SITE_URL = process.env.NEXT_PUBLIC_SITE_URL || 'https://example.com' const SITE_NAME = process.env.NEXT_PUBLIC_SITE_NAME || 'My Personal Site' +const BLOG_DESCRIPTION = + 'Articles, thoughts, and tutorials from ' + SITE_NAME + '.' +// ─── Blog section metadata (overrides root defaults) ───────────────────────── export const metadata: Metadata = { + title: 'Blog', + description: BLOG_DESCRIPTION, alternates: { + canonical: `${SITE_URL}/blog`, types: { 'application/rss+xml': `${SITE_URL}/feed.xml`, }, }, + openGraph: { + type: 'website', + url: `${SITE_URL}/blog`, + title: `Blog | ${SITE_NAME}`, + description: BLOG_DESCRIPTION, + images: [ + { + url: `/og-blog.png`, + width: 1200, + height: 630, + alt: `${SITE_NAME} Blog`, + }, + ], + }, + twitter: { + card: 'summary_large_image', + title: `Blog | ${SITE_NAME}`, + description: BLOG_DESCRIPTION, + images: [`/og-blog.png`], + }, +} + +// ─── Blog section JSON-LD ──────────────────────────────────────────────────── +const blogJsonLd = { + '@context': 'https://schema.org', + '@type': 'Blog', + name: `${SITE_NAME} — Blog`, + url: `${SITE_URL}/blog`, + description: BLOG_DESCRIPTION, + inLanguage: 'en-US', + publisher: { + '@type': 'Person', + name: SITE_NAME, + url: SITE_URL, + }, } export default function BlogLayout({ @@ -16,24 +57,11 @@ export default function BlogLayout({ }: { children: React.ReactNode }) { - const blogListingJsonLd = { - '@context': 'https://schema.org', - '@type': 'Blog', - name: `${SITE_NAME} — Blog`, - url: `${SITE_URL}/blog`, - description: 'Articles, thoughts, and tutorials.', - publisher: { - '@type': 'Person', - name: SITE_NAME, - url: SITE_URL, - }, - } - return ( <>