From 61d2093d0b4622c4bc77828b4f53c0787d49645f Mon Sep 17 00:00:00 2001 From: Peter Meier Date: Tue, 19 May 2026 15:06:38 +0200 Subject: [PATCH] seo: use banner PNG as default OG image, skip SVG logos for social Co-Authored-By: Claude Sonnet 4.6 --- src/lib/constants.ts | 2 +- src/routes/+layout.server.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/constants.ts b/src/lib/constants.ts index 4a4c8b3..e02a504 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -5,7 +5,7 @@ /** Platzhalter-Bild für og:image / twitter:image, wenn weder Page/Post-Bild noch Logo gesetzt ist. */ export const DEFAULT_SOCIAL_IMAGE_URL = - "https://images.ctfassets.net/xjxq6v7l1pfe/43yZHpF9OCnrBlEWHJSZMK/1ef20b265ea1e4e55317812ee5ae6b4c/simple-green-tree-illustrated-watercolor-with-gentle-shading-great-rural-scenery-farm-backdrops-naturethemed-designs-landsca.jpg"; + "/api/assets/windwiderstand_banner.png?_environment=windwiderstand"; /** og:image-Dimensionen (Facebook/Twitter empfehlen 1200×630, 1.91:1). */ export const SOCIAL_IMAGE_DIMENSIONS = { diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts index e2d2995..0474022 100644 --- a/src/routes/+layout.server.ts +++ b/src/routes/+layout.server.ts @@ -311,7 +311,8 @@ export const load: LayoutServerLoad = async ({ locals, route }) => { // og-taugliches Social-Image parallel zum Rest — kein sequenzielles Warten. let logoSocialImage: string | null = null; try { - const source = logoUrl ?? DEFAULT_SOCIAL_IMAGE_URL; + const isSvgLogo = logoUrl?.split('?')[0].toLowerCase().endsWith('.svg'); + const source = (logoUrl && !isSvgLogo) ? logoUrl : DEFAULT_SOCIAL_IMAGE_URL; const transformed = await ensureTransformedImage(source, SOCIAL_IMAGE_TRANSFORM); logoSocialImage = transformed.startsWith('/') ? `${siteBaseUrl}${transformed}`