From 3756e60441d0b4a707b10c23f99802b3e5016c3f Mon Sep 17 00:00:00 2001 From: mstfyldz Date: Sun, 31 May 2026 00:50:27 +0300 Subject: [PATCH] feat(seo): add dynamic blog and work entries to sitemap --- app/sitemap.ts | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/app/sitemap.ts b/app/sitemap.ts index d6d2769..b929eef 100644 --- a/app/sitemap.ts +++ b/app/sitemap.ts @@ -73,7 +73,45 @@ export default async function sitemap(): Promise { ]; }); - return [...staticUrls, ...expertiseUrls]; + const workUrls: MetadataRoute.Sitemap = projects.flatMap((p: any) => [ + { + url: `${baseUrl}/en/work/${p.slug}`, + lastModified: new Date(), + changeFrequency: 'monthly', + priority: 0.7, + }, + { + url: `${baseUrl}/tr/work/${p.slug}`, + lastModified: new Date(), + changeFrequency: 'monthly', + priority: 0.7, + } + ]); + + // Blog Posts + let blogUrls: MetadataRoute.Sitemap = []; + try { + const { getBlogPosts } = await import('@/app/actions'); + const posts = await getBlogPosts(); + blogUrls = posts.flatMap((p: any) => [ + { + url: `${baseUrl}/en/blog/${p.slug}`, + lastModified: new Date(p.date || new Date()), + changeFrequency: 'weekly', + priority: 0.8, + }, + { + url: `${baseUrl}/tr/blog/${p.slug}`, + lastModified: new Date(p.date || new Date()), + changeFrequency: 'weekly', + priority: 0.8, + } + ]); + } catch (err) { + // Ignore if blog fetching fails + } + + return [...staticUrls, ...expertiseUrls, ...workUrls, ...blogUrls]; } catch(e) { return staticUrls; }