From 65df1bd559424d82184c720c5413e8336980afca Mon Sep 17 00:00:00 2001 From: Damjan Savic Date: Sun, 25 Jan 2026 00:41:39 +0100 Subject: [PATCH] auto-claude: subtask-3-2 - Enhance metadata generation across all pages Added missing OpenGraph and Twitter card metadata to about, contact, and portfolio pages: - Added siteName to OpenGraph metadata - Added OpenGraph images with proper dimensions (1200x630) - Added Twitter card metadata (summary_large_image) All pages now follow the home page metadata pattern for consistent SEO. Co-Authored-By: Claude Opus 4.5 --- src/app/[locale]/about/page.tsx | 15 +++++++++++++++ src/app/[locale]/contact/page.tsx | 15 +++++++++++++++ src/app/[locale]/portfolio/page.tsx | 15 +++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/src/app/[locale]/about/page.tsx b/src/app/[locale]/about/page.tsx index d10cde8..d9c36df 100644 --- a/src/app/[locale]/about/page.tsx +++ b/src/app/[locale]/about/page.tsx @@ -74,9 +74,24 @@ export async function generateMetadata({ params }: Props): Promise { title: t('title'), description: t('description'), url: `${BASE_URL}${localePath}`, + siteName: 'Damjan Savić', type: 'profile', locale: locale === 'de' ? 'de_DE' : locale === 'sr' ? 'sr_RS' : 'en_US', alternateLocale: ['de_DE', 'en_US', 'sr_RS'].filter(l => l !== (locale === 'de' ? 'de_DE' : locale === 'sr' ? 'sr_RS' : 'en_US')), + images: [ + { + url: `${BASE_URL}/images/og-image.jpg`, + width: 1200, + height: 630, + alt: 'Damjan Savić - AI & Automation Specialist', + }, + ], + }, + twitter: { + card: 'summary_large_image', + title: t('title'), + description: t('description'), + images: [`${BASE_URL}/images/og-image.jpg`], }, }; } diff --git a/src/app/[locale]/contact/page.tsx b/src/app/[locale]/contact/page.tsx index 237f3e6..cc65580 100644 --- a/src/app/[locale]/contact/page.tsx +++ b/src/app/[locale]/contact/page.tsx @@ -52,9 +52,24 @@ export async function generateMetadata({ params }: Props): Promise { title: titles[locale] || titles.de, description: descriptions[locale] || descriptions.de, url: `${BASE_URL}${localePath}`, + siteName: 'Damjan Savić', type: 'website', locale: locale === 'de' ? 'de_DE' : locale === 'sr' ? 'sr_RS' : 'en_US', alternateLocale: ['de_DE', 'en_US', 'sr_RS'].filter(l => l !== (locale === 'de' ? 'de_DE' : locale === 'sr' ? 'sr_RS' : 'en_US')), + images: [ + { + url: `${BASE_URL}/images/og-image.jpg`, + width: 1200, + height: 630, + alt: 'Damjan Savić - AI & Automation Specialist', + }, + ], + }, + twitter: { + card: 'summary_large_image', + title: titles[locale] || titles.de, + description: descriptions[locale] || descriptions.de, + images: [`${BASE_URL}/images/og-image.jpg`], }, }; } diff --git a/src/app/[locale]/portfolio/page.tsx b/src/app/[locale]/portfolio/page.tsx index 9aac3fe..0edcecb 100644 --- a/src/app/[locale]/portfolio/page.tsx +++ b/src/app/[locale]/portfolio/page.tsx @@ -70,9 +70,24 @@ export async function generateMetadata({ params }: Props): Promise { title: t('title'), description: t('description'), url: `${BASE_URL}${localePath}`, + siteName: 'Damjan Savić', type: 'website', locale: locale === 'de' ? 'de_DE' : locale === 'sr' ? 'sr_RS' : 'en_US', alternateLocale: ['de_DE', 'en_US', 'sr_RS'].filter(l => l !== (locale === 'de' ? 'de_DE' : locale === 'sr' ? 'sr_RS' : 'en_US')), + images: [ + { + url: `${BASE_URL}/images/og-image.jpg`, + width: 1200, + height: 630, + alt: 'Damjan Savić - AI & Automation Specialist', + }, + ], + }, + twitter: { + card: 'summary_large_image', + title: t('title'), + description: t('description'), + images: [`${BASE_URL}/images/og-image.jpg`], }, }; }