From d1021c23a02b3850847c2cc875d7ae5d3b4ce2de Mon Sep 17 00:00:00 2001 From: Yotam Faraggi Date: Mon, 7 Sep 2026 17:39:15 +0200 Subject: [PATCH 1/5] fix(seo): strengthen CV search title --- app/[locale]/(standalone)/cv/page.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/[locale]/(standalone)/cv/page.tsx b/app/[locale]/(standalone)/cv/page.tsx index a6668c0..f704dc2 100644 --- a/app/[locale]/(standalone)/cv/page.tsx +++ b/app/[locale]/(standalone)/cv/page.tsx @@ -14,8 +14,8 @@ export async function generateMetadata({ params }: Props): Promise { const t = await getTranslations({ locale: validLocale, namespace: 'cv' }); const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://cart-shift.com'; const title = validLocale === 'he' - ? "יותם פרג'י - Senior Product Engineer | קורות חיים" - : 'Yotam Faraggi - Senior Product Engineer | CV'; + ? "יותם פרג'י | Senior Product Engineer בברלין" + : 'Yotam Faraggi | Senior Product Engineer in Berlin'; const description = validLocale === 'he' ? 'Senior Product Engineer בברלין עם 10+ שנות ניסיון במוצרי Full-Stack, AI, מסחר, אינטגרציות ומערכות פרודקשן.' : 'Berlin-based Senior Product Engineer with 10+ years of experience building full-stack products, AI-assisted software, commerce systems, integrations, and production platforms.'; From 4891b281caef87e85d1660a2d40b30c3fde9913e Mon Sep 17 00:00:00 2001 From: Yotam Faraggi Date: Mon, 7 Sep 2026 17:39:34 +0200 Subject: [PATCH 2/5] fix(seo): replace placeholder person schema with real profile --- app/[locale]/(website)/about/page.tsx | 44 +++++++++++---------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/app/[locale]/(website)/about/page.tsx b/app/[locale]/(website)/about/page.tsx index 78e9762..b945705 100644 --- a/app/[locale]/(website)/about/page.tsx +++ b/app/[locale]/(website)/about/page.tsx @@ -17,11 +17,13 @@ export async function generateMetadata({ const { locale } = await params; return genMeta( { - title: 'About CartShift Studio | Expert E-commerce Development Team', + title: 'About CartShift Studio | Yotam Faraggi & Team', description: - 'Meet the team behind CartShift Studio. Expert Shopify and WordPress developers dedicated to building custom e-commerce solutions for your business.', + 'Meet Yotam Faraggi, a Berlin-based Senior Product Engineer and co-founder of CartShift Studio, and the team building high-quality Shopify, WordPress, and custom web products.', url: '/about', keywords: [ + 'Yotam Faraggi', + 'Senior Product Engineer Berlin', 'about us', 'e-commerce team', 'Shopify developers', @@ -37,6 +39,7 @@ export default async function AboutPage({ params }: { params: Promise<{ locale: const { locale } = await params; setRequestLocale(locale as 'en' | 'he'); + const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://cart-shift.com'; const orgSchema = generateOrganizationSchema(); const breadcrumbSchema = generateBreadcrumbSchema( [ @@ -46,22 +49,14 @@ export default async function AboutPage({ params }: { params: Promise<{ locale: locale as 'en' | 'he' ); - const teamMembers = [ - { - name: 'Technical Lead', - jobTitle: 'Technical Lead & Co-er', - description: - 'Expert in Shopify and WordPress development, specializing in custom e-commerce solutions and performance optimization.', - }, - { - name: 'Customer-Facing Partner', - jobTitle: 'Customer-Facing Partner & Co-er', - description: - 'Dedicated to building strong client relationships and ensuring exceptional customer experience throughout the development process.', - }, - ]; - - const personSchemas = teamMembers.map(member => generatePersonSchema(member)); + const yotamSchema = generatePersonSchema({ + name: 'Yotam Faraggi', + jobTitle: 'Co-Founder & Senior Product Engineer', + description: + 'Berlin-based Senior Product Engineer with 10+ years of experience building full-stack products, e-commerce systems, integrations, and AI-assisted software.', + url: `${siteUrl}/${locale}/cv`, + image: '/images/portfolio-v2/hero-art.webp', + }); return ( <> @@ -75,14 +70,11 @@ export default async function AboutPage({ params }: { params: Promise<{ locale: type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(breadcrumbSchema) }} /> - {personSchemas.map((schema, index) => ( -