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 <noreply@anthropic.com>
This commit is contained in:
2026-01-25 00:41:39 +01:00
co-authored by Claude Opus 4.5
parent 223695b3cf
commit 65df1bd559
3 changed files with 45 additions and 0 deletions
+15
View File
@@ -74,9 +74,24 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
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`],
},
};
}
+15
View File
@@ -52,9 +52,24 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
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`],
},
};
}
+15
View File
@@ -70,9 +70,24 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
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`],
},
};
}