Przeglądaj źródła

feat: add comprehensive SEO support with dynamic meta tags

Implement SEO component with multi-language support:
- Create reusable SEO component for meta tag management
- Update HTML lang attribute based on current language
- Add comprehensive SEO translations (EN, DE, HU)
- Include title, description, keywords for all pages
- Add Open Graph and Twitter Card meta tags

Pages updated with SEO:
- Crawler page (web crawler information)
- About page (company information)
- Privacy page (privacy policy)
- Terms page (terms and conditions)

Benefits:
- Better search engine visibility
- Improved social media sharing
- Language-specific meta tags
- Dynamic Open Graph images
- Consistent SEO across all pages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Fszontagh 4 miesięcy temu
rodzic
commit
3f720b55fc

+ 91 - 0
shopcall.ai-main/src/components/SEO.tsx

@@ -0,0 +1,91 @@
+import { useEffect } from 'react';
+import { useTranslation } from 'react-i18next';
+
+interface SEOProps {
+  title?: string;
+  description?: string;
+  keywords?: string;
+  ogTitle?: string;
+  ogDescription?: string;
+  ogImage?: string;
+  ogUrl?: string;
+  ogType?: string;
+}
+
+export const SEO = ({
+  title,
+  description,
+  keywords,
+  ogTitle,
+  ogDescription,
+  ogImage = '/og-image.png',
+  ogUrl,
+  ogType = 'website',
+}: SEOProps) => {
+  const { i18n } = useTranslation();
+
+  useEffect(() => {
+    // Update HTML lang attribute
+    document.documentElement.lang = i18n.language;
+
+    // Update title
+    if (title) {
+      document.title = title;
+    }
+
+    // Update or create meta tags
+    const updateMetaTag = (name: string, content: string, isProperty = false) => {
+      const attribute = isProperty ? 'property' : 'name';
+      let element = document.querySelector(`meta[${attribute}="${name}"]`);
+
+      if (!element) {
+        element = document.createElement('meta');
+        element.setAttribute(attribute, name);
+        document.head.appendChild(element);
+      }
+
+      element.setAttribute('content', content);
+    };
+
+    // Standard meta tags
+    if (description) {
+      updateMetaTag('description', description);
+    }
+    if (keywords) {
+      updateMetaTag('keywords', keywords);
+    }
+
+    // Open Graph meta tags
+    if (ogTitle) {
+      updateMetaTag('og:title', ogTitle, true);
+    }
+    if (ogDescription) {
+      updateMetaTag('og:description', ogDescription, true);
+    }
+    if (ogImage) {
+      updateMetaTag('og:image', ogImage, true);
+    }
+    if (ogUrl) {
+      updateMetaTag('og:url', ogUrl, true);
+    }
+    if (ogType) {
+      updateMetaTag('og:type', ogType, true);
+    }
+
+    // Twitter Card meta tags (using Open Graph data)
+    if (ogTitle) {
+      updateMetaTag('twitter:title', ogTitle);
+      updateMetaTag('twitter:card', 'summary_large_image');
+    }
+    if (ogDescription) {
+      updateMetaTag('twitter:description', ogDescription);
+    }
+    if (ogImage) {
+      updateMetaTag('twitter:image', ogImage);
+    }
+  }, [title, description, keywords, ogTitle, ogDescription, ogImage, ogUrl, ogType, i18n.language]);
+
+  return null;
+};
+
+export default SEO;

+ 28 - 0
shopcall.ai-main/src/i18n/locales/de.json

@@ -720,6 +720,13 @@
   "about": {
   "about": {
     "title": "Über ShopCall.ai",
     "title": "Über ShopCall.ai",
     "backHome": "Zurück zur Startseite",
     "backHome": "Zurück zur Startseite",
+    "seo": {
+      "title": "Über ShopCall.ai - KI-gestützter Kundendienst für E-Commerce",
+      "description": "Erfahren Sie mehr über ShopCall.ais Mission, den E-Commerce-Kundendienst mit KI-Telefonsupport in über 50 Sprachen zu transformieren. Lernen Sie unser Team und unsere Werte kennen.",
+      "keywords": "über ShopCall.ai, KI-Kundenservice-Unternehmen, E-Commerce-Support, KI-Telefonsupport, Unternehmensmission, mehrsprachiges Support-Team",
+      "ogTitle": "Über ShopCall.ai",
+      "ogDescription": "Transformation des Kundenservice für E-Commerce-Unternehmen weltweit mit KI-gestütztem Telefonsupport in über 50 Sprachen."
+    },
     "hero": {
     "hero": {
       "description": "Unsere Mission ist es, den Kundenservice für E-Commerce-Unternehmen weltweit zu transformieren. Seit der Gründung im Jahr 2023 hat ShopCall.ai bereits über 1.000 Unternehmen dabei geholfen, ihre Kundenservice-Kosten zu senken und gleichzeitig die Kundenzufriedenheit zu verbessern.",
       "description": "Unsere Mission ist es, den Kundenservice für E-Commerce-Unternehmen weltweit zu transformieren. Seit der Gründung im Jahr 2023 hat ShopCall.ai bereits über 1.000 Unternehmen dabei geholfen, ihre Kundenservice-Kosten zu senken und gleichzeitig die Kundenzufriedenheit zu verbessern.",
       "stats": {
       "stats": {
@@ -788,6 +795,13 @@
   "privacy": {
   "privacy": {
     "title": "Datenschutzrichtlinie",
     "title": "Datenschutzrichtlinie",
     "backHome": "Zurück zur Startseite",
     "backHome": "Zurück zur Startseite",
+    "seo": {
+      "title": "Datenschutzrichtlinie - ShopCall.ai",
+      "description": "Lesen Sie die Datenschutzrichtlinie von ShopCall.ai, um zu verstehen, wie wir Ihre Daten sammeln, verwenden und schützen. DSGVO-konform mit branchenüblichen Verschlüsselungs- und Sicherheitsmaßnahmen.",
+      "keywords": "Datenschutzrichtlinie, Datenschutz, DSGVO-Konformität, Datensicherheit, ShopCall.ai Datenschutz, Benutzerdaten, Verschlüsselung",
+      "ogTitle": "ShopCall.ai Datenschutzrichtlinie",
+      "ogDescription": "Erfahren Sie, wie ShopCall.ai Ihre Privatsphäre schützt und Ihre Daten mit branchenüblichen Sicherheitsmaßnahmen und DSGVO-Konformität behandelt."
+    },
     "lastUpdated": "Zuletzt aktualisiert: 11. Dezember 2024",
     "lastUpdated": "Zuletzt aktualisiert: 11. Dezember 2024",
     "principles": {
     "principles": {
       "dataProtection": {
       "dataProtection": {
@@ -871,6 +885,13 @@
   "terms": {
   "terms": {
     "title": "Allgemeine Geschäftsbedingungen",
     "title": "Allgemeine Geschäftsbedingungen",
     "backHome": "Zurück zur Startseite",
     "backHome": "Zurück zur Startseite",
+    "seo": {
+      "title": "Allgemeine Geschäftsbedingungen - ShopCall.ai",
+      "description": "Lesen Sie die Allgemeinen Geschäftsbedingungen von ShopCall.ai. Verstehen Sie Ihre Rechte, Pflichten und unsere Servicevereinbarung für KI-gestützten Kundensupport.",
+      "keywords": "Allgemeine Geschäftsbedingungen, Servicevereinbarung, Nutzungsbedingungen, ShopCall.ai AGB, Benutzervereinbarung, rechtliche Bedingungen",
+      "ogTitle": "ShopCall.ai Allgemeine Geschäftsbedingungen",
+      "ogDescription": "Überprüfen Sie die Allgemeinen Geschäftsbedingungen für die Nutzung der KI-gestützten Kundenservice-Plattform von ShopCall.ai."
+    },
     "lastUpdated": "Zuletzt aktualisiert: 12. Dezember 2024",
     "lastUpdated": "Zuletzt aktualisiert: 12. Dezember 2024",
     "overview": {
     "overview": {
       "acceptance": {
       "acceptance": {
@@ -1228,6 +1249,13 @@
   "crawler": {
   "crawler": {
     "title": "ShopCall.ai Web-Crawler",
     "title": "ShopCall.ai Web-Crawler",
     "backHome": "Zurück zur Startseite",
     "backHome": "Zurück zur Startseite",
+    "seo": {
+      "title": "ShopCall.ai Web-Crawler - So crawlen wir E-Commerce-Seiten",
+      "description": "Erfahren Sie mehr über den ShopCall.ai Web-Crawler: Wie wir robots.txt respektieren, nur registrierte Shops crawlen und sitemap.xml nutzen, um KI-Wissensdatenbanken für besseren Kundensupport aufzubauen.",
+      "keywords": "Web-Crawler, ShopCall.ai Crawler, robots.txt, sitemap.xml, E-Commerce-Crawler, KI-Web-Scraper, respektvolles Crawling, User Agent, Webshop-Crawler",
+      "ogTitle": "ShopCall.ai Web-Crawler Informationen",
+      "ogDescription": "Transparente Informationen darüber, wie ShopCall.ai E-Commerce-Websites crawlt, um den KI-Kundensupport zu verbessern. Volle Benutzerkontrolle, robots.txt-Konformität und gezielte Inhaltserkennung."
+    },
     "hero": {
     "hero": {
       "description": "Unser Web-Crawler wurde entwickelt, um Ihren E-Commerce-Shop besser zu verstehen und unserer KI zu helfen, genaueren und persönlicheren Kundensupport zu bieten. Erfahren Sie, wie wir crawlen, was wir sammeln und wie Sie die volle Kontrolle behalten."
       "description": "Unser Web-Crawler wurde entwickelt, um Ihren E-Commerce-Shop besser zu verstehen und unserer KI zu helfen, genaueren und persönlicheren Kundensupport zu bieten. Erfahren Sie, wie wir crawlen, was wir sammeln und wie Sie die volle Kontrolle behalten."
     },
     },

+ 28 - 0
shopcall.ai-main/src/i18n/locales/en.json

@@ -809,6 +809,13 @@
   "about": {
   "about": {
     "title": "About ShopCall.ai",
     "title": "About ShopCall.ai",
     "backHome": "Back to Home",
     "backHome": "Back to Home",
+    "seo": {
+      "title": "About ShopCall.ai - AI-Powered Customer Service for E-commerce",
+      "description": "Learn about ShopCall.ai's mission to transform e-commerce customer service with AI phone support in 50+ languages. Meet our team and discover our values.",
+      "keywords": "about ShopCall.ai, AI customer service company, e-commerce support, AI phone support, company mission, multilingual support team",
+      "ogTitle": "About ShopCall.ai",
+      "ogDescription": "Transforming customer service for e-commerce businesses worldwide with AI-powered phone support in 50+ languages."
+    },
     "hero": {
     "hero": {
       "description": "We're on a mission to transform customer service for e-commerce businesses worldwide. Founded in 2023, ShopCall.ai has already helped over 1,000 businesses reduce their customer service costs while improving customer satisfaction.",
       "description": "We're on a mission to transform customer service for e-commerce businesses worldwide. Founded in 2023, ShopCall.ai has already helped over 1,000 businesses reduce their customer service costs while improving customer satisfaction.",
       "stats": {
       "stats": {
@@ -877,6 +884,13 @@
   "privacy": {
   "privacy": {
     "title": "Privacy Policy",
     "title": "Privacy Policy",
     "backHome": "Back to Home",
     "backHome": "Back to Home",
+    "seo": {
+      "title": "Privacy Policy - ShopCall.ai",
+      "description": "Read ShopCall.ai's privacy policy to understand how we collect, use, and protect your data. GDPR compliant with industry-standard encryption and security measures.",
+      "keywords": "privacy policy, data protection, GDPR compliance, data security, ShopCall.ai privacy, user data, encryption",
+      "ogTitle": "ShopCall.ai Privacy Policy",
+      "ogDescription": "Learn how ShopCall.ai protects your privacy and handles your data with industry-standard security measures and GDPR compliance."
+    },
     "lastUpdated": "Last updated: December 11, 2024",
     "lastUpdated": "Last updated: December 11, 2024",
     "principles": {
     "principles": {
       "dataProtection": {
       "dataProtection": {
@@ -960,6 +974,13 @@
   "terms": {
   "terms": {
     "title": "Terms and Conditions",
     "title": "Terms and Conditions",
     "backHome": "Back to Home",
     "backHome": "Back to Home",
+    "seo": {
+      "title": "Terms and Conditions - ShopCall.ai",
+      "description": "Read ShopCall.ai's terms and conditions. Understand your rights, responsibilities, and our service agreement for AI-powered customer support.",
+      "keywords": "terms and conditions, service agreement, terms of service, ShopCall.ai terms, user agreement, legal terms",
+      "ogTitle": "ShopCall.ai Terms and Conditions",
+      "ogDescription": "Review the terms and conditions for using ShopCall.ai's AI-powered customer service platform."
+    },
     "lastUpdated": "Last updated: December 12, 2024",
     "lastUpdated": "Last updated: December 12, 2024",
     "overview": {
     "overview": {
       "acceptance": {
       "acceptance": {
@@ -1384,6 +1405,13 @@
   "crawler": {
   "crawler": {
     "title": "ShopCall.ai Web Crawler",
     "title": "ShopCall.ai Web Crawler",
     "backHome": "Back to Home",
     "backHome": "Back to Home",
+    "seo": {
+      "title": "ShopCall.ai Web Crawler - How We Crawl E-commerce Sites",
+      "description": "Learn about ShopCall.ai's web crawler: how we respect robots.txt, crawl registered stores only, and use sitemap.xml to build AI knowledge bases for better customer support.",
+      "keywords": "web crawler, ShopCall.ai crawler, robots.txt, sitemap.xml, e-commerce crawler, AI web scraper, respectful crawling, user agent, webshop crawler",
+      "ogTitle": "ShopCall.ai Web Crawler Information",
+      "ogDescription": "Transparent information about how ShopCall.ai crawls e-commerce websites to improve AI customer support. Full user control, robots.txt compliance, and targeted content discovery."
+    },
     "hero": {
     "hero": {
       "description": "Our web crawler is designed to understand your e-commerce store better, helping our AI provide more accurate and personalized customer support. Learn how we crawl, what we collect, and how you maintain full control."
       "description": "Our web crawler is designed to understand your e-commerce store better, helping our AI provide more accurate and personalized customer support. Learn how we crawl, what we collect, and how you maintain full control."
     },
     },

+ 28 - 0
shopcall.ai-main/src/i18n/locales/hu.json

@@ -799,6 +799,13 @@
   "about": {
   "about": {
     "title": "A ShopCall.ai-ról",
     "title": "A ShopCall.ai-ról",
     "backHome": "Vissza a főoldalra",
     "backHome": "Vissza a főoldalra",
+    "seo": {
+      "title": "A ShopCall.ai-ról - AI-alapú Ügyfélszolgálat E-kereskedelemhez",
+      "description": "Tudjon meg többet a ShopCall.ai küldetéséről, hogy átalakítsa az e-kereskedelmi ügyfélszolgálatot AI telefon támogatással több mint 50 nyelven. Ismerje meg csapatunkat és értékeinket.",
+      "keywords": "ShopCall.ai-ról, AI ügyfélszolgálati cég, e-kereskedelmi támogatás, AI telefon támogatás, vállalati küldetés, többnyelvű támogatási csapat",
+      "ogTitle": "A ShopCall.ai-ról",
+      "ogDescription": "Az ügyfélszolgálat átalakítása e-kereskedelmi vállalkozások számára világszerte AI-alapú telefon támogatással több mint 50 nyelven."
+    },
     "hero": {
     "hero": {
       "description": "Küldetésünk az ügyfélszolgálat átformálása az e-kereskedelmi vállalkozások számára világszerte. A 2023-ban alapított ShopCall.ai már több mint 1000 vállalkozásnak segített csökkenteni ügyfélszolgálati költségeit, miközben javította az ügyfélelégedettséget.",
       "description": "Küldetésünk az ügyfélszolgálat átformálása az e-kereskedelmi vállalkozások számára világszerte. A 2023-ban alapított ShopCall.ai már több mint 1000 vállalkozásnak segített csökkenteni ügyfélszolgálati költségeit, miközben javította az ügyfélelégedettséget.",
       "stats": {
       "stats": {
@@ -867,6 +874,13 @@
   "privacy": {
   "privacy": {
     "title": "Adatvédelmi irányelvek",
     "title": "Adatvédelmi irányelvek",
     "backHome": "Vissza a főoldalra",
     "backHome": "Vissza a főoldalra",
+    "seo": {
+      "title": "Adatvédelmi Irányelvek - ShopCall.ai",
+      "description": "Olvassa el a ShopCall.ai adatvédelmi irányelveit, hogy megértse, hogyan gyűjtjük, használjuk és védjük adatait. GDPR-kompatibilis ipari szabványú titkosítással és biztonsági intézkedésekkel.",
+      "keywords": "adatvédelmi irányelvek, adatvédelem, GDPR megfelelés, adatbiztonság, ShopCall.ai adatvédelem, felhasználói adatok, titkosítás",
+      "ogTitle": "ShopCall.ai Adatvédelmi Irányelvek",
+      "ogDescription": "Tudja meg, hogyan védi a ShopCall.ai az Ön adatait ipari szabványú biztonsági intézkedésekkel és GDPR megfeleléssel."
+    },
     "lastUpdated": "Utolsó frissítés: 2024. december 11.",
     "lastUpdated": "Utolsó frissítés: 2024. december 11.",
     "principles": {
     "principles": {
       "dataProtection": {
       "dataProtection": {
@@ -950,6 +964,13 @@
   "terms": {
   "terms": {
     "title": "Felhasználási feltételek",
     "title": "Felhasználási feltételek",
     "backHome": "Vissza a főoldalra",
     "backHome": "Vissza a főoldalra",
+    "seo": {
+      "title": "Felhasználási Feltételek - ShopCall.ai",
+      "description": "Olvassa el a ShopCall.ai felhasználási feltételeit. Értse meg jogait, felelősségeit és szolgáltatási megállapodásunkat az AI-alapú ügyfélszolgálathoz.",
+      "keywords": "felhasználási feltételek, szolgáltatási megállapodás, használati feltételek, ShopCall.ai feltételek, felhasználói megállapodás, jogi feltételek",
+      "ogTitle": "ShopCall.ai Felhasználási Feltételek",
+      "ogDescription": "Tekintse át a ShopCall.ai AI-alapú ügyfélszolgálati platformjának használatára vonatkozó feltételeket."
+    },
     "lastUpdated": "Utolsó frissítés: 2024. december 12.",
     "lastUpdated": "Utolsó frissítés: 2024. december 12.",
     "overview": {
     "overview": {
       "acceptance": {
       "acceptance": {
@@ -1374,6 +1395,13 @@
   "crawler": {
   "crawler": {
     "title": "ShopCall.ai Web Crawler",
     "title": "ShopCall.ai Web Crawler",
     "backHome": "Vissza a Főoldalra",
     "backHome": "Vissza a Főoldalra",
+    "seo": {
+      "title": "ShopCall.ai Web Crawler - Hogyan Crawloljuk az E-kereskedelmi Oldalakat",
+      "description": "Tudjon meg többet a ShopCall.ai web crawlerről: hogyan tiszteljük a robots.txt-et, csak regisztrált boltokat crawlolunk, és a sitemap.xml-t használjuk AI tudásbázisok építéséhez a jobb ügyfélszolgálat érdekében.",
+      "keywords": "web crawler, ShopCall.ai crawler, robots.txt, sitemap.xml, e-kereskedelmi crawler, AI web scraper, tiszteletteljes crawling, user agent, webshop crawler",
+      "ogTitle": "ShopCall.ai Web Crawler Információk",
+      "ogDescription": "Átlátható információk arról, hogyan crawlolja a ShopCall.ai az e-kereskedelmi weboldalakat az AI ügyfélszolgálat javítása érdekében. Teljes felhasználói kontroll, robots.txt megfelelés és célzott tartalom felfedezés."
+    },
     "hero": {
     "hero": {
       "description": "Webes crawlerünk arra lett tervezve, hogy jobban megértse e-kereskedelmi áruházát, segítve AI-nkat pontosabb és személyre szabottabb ügyfélszolgálat nyújtásában. Tudja meg, hogyan gyűjtünk adatokat, mit gyűjtünk, és hogyan tartja meg a teljes irányítást."
       "description": "Webes crawlerünk arra lett tervezve, hogy jobban megértse e-kereskedelmi áruházát, segítve AI-nkat pontosabb és személyre szabottabb ügyfélszolgálat nyújtásában. Tudja meg, hogyan gyűjtünk adatokat, mit gyűjtünk, és hogyan tartja meg a teljes irányítást."
     },
     },

+ 13 - 0
shopcall.ai-main/src/pages/About.tsx

@@ -3,10 +3,14 @@ import { Button } from "@/components/ui/button";
 import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
 import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
 import { Users, Target, Award, Globe, Zap, Shield } from "lucide-react";
 import { Users, Target, Award, Globe, Zap, Shield } from "lucide-react";
 import { useTranslation } from "react-i18next";
 import { useTranslation } from "react-i18next";
+import SEO from "@/components/SEO";
 
 
 const About = () => {
 const About = () => {
   const { t } = useTranslation();
   const { t } = useTranslation();
 
 
+  // Get the current URL for Open Graph
+  const currentUrl = typeof window !== 'undefined' ? window.location.href : 'https://shopcall.ai/about';
+
   const values = [
   const values = [
     {
     {
       icon: Target,
       icon: Target,
@@ -59,6 +63,15 @@ const About = () => {
 
 
   return (
   return (
     <div className="min-h-screen bg-slate-900 text-white">
     <div className="min-h-screen bg-slate-900 text-white">
+      <SEO
+        title={t('about.seo.title')}
+        description={t('about.seo.description')}
+        keywords={t('about.seo.keywords')}
+        ogTitle={t('about.seo.ogTitle')}
+        ogDescription={t('about.seo.ogDescription')}
+        ogUrl={currentUrl}
+        ogType="website"
+      />
       {/* Header */}
       {/* Header */}
       <header className="border-b border-slate-800">
       <header className="border-b border-slate-800">
         <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
         <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">

+ 13 - 0
shopcall.ai-main/src/pages/Crawler.tsx

@@ -2,10 +2,14 @@ import { Button } from "@/components/ui/button";
 import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
 import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
 import { Bot, Globe, Shield, FileSearch, Lock, Settings } from "lucide-react";
 import { Bot, Globe, Shield, FileSearch, Lock, Settings } from "lucide-react";
 import { useTranslation } from "react-i18next";
 import { useTranslation } from "react-i18next";
+import SEO from "@/components/SEO";
 
 
 const Crawler = () => {
 const Crawler = () => {
   const { t } = useTranslation();
   const { t } = useTranslation();
 
 
+  // Get the current URL for Open Graph
+  const currentUrl = typeof window !== 'undefined' ? window.location.href : 'https://shopcall.ai/crawler';
+
   const features = [
   const features = [
     {
     {
       icon: Shield,
       icon: Shield,
@@ -31,6 +35,15 @@ const Crawler = () => {
 
 
   return (
   return (
     <div className="min-h-screen bg-slate-900 text-white">
     <div className="min-h-screen bg-slate-900 text-white">
+      <SEO
+        title={t('crawler.seo.title')}
+        description={t('crawler.seo.description')}
+        keywords={t('crawler.seo.keywords')}
+        ogTitle={t('crawler.seo.ogTitle')}
+        ogDescription={t('crawler.seo.ogDescription')}
+        ogUrl={currentUrl}
+        ogType="website"
+      />
       {/* Header */}
       {/* Header */}
       <header className="border-b border-slate-800">
       <header className="border-b border-slate-800">
         <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
         <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">

+ 13 - 0
shopcall.ai-main/src/pages/Privacy.tsx

@@ -3,10 +3,14 @@ import { Button } from "@/components/ui/button";
 import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
 import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
 import { Shield, Lock, Eye, Database, UserCheck, Globe } from "lucide-react";
 import { Shield, Lock, Eye, Database, UserCheck, Globe } from "lucide-react";
 import { useTranslation } from "react-i18next";
 import { useTranslation } from "react-i18next";
+import SEO from "@/components/SEO";
 
 
 const Privacy = () => {
 const Privacy = () => {
   const { t } = useTranslation();
   const { t } = useTranslation();
 
 
+  // Get the current URL for Open Graph
+  const currentUrl = typeof window !== 'undefined' ? window.location.href : 'https://shopcall.ai/privacy';
+
   const privacyPrinciples = [
   const privacyPrinciples = [
     {
     {
       icon: Shield,
       icon: Shield,
@@ -32,6 +36,15 @@ const Privacy = () => {
 
 
   return (
   return (
     <div className="min-h-screen bg-slate-900 text-white">
     <div className="min-h-screen bg-slate-900 text-white">
+      <SEO
+        title={t('privacy.seo.title')}
+        description={t('privacy.seo.description')}
+        keywords={t('privacy.seo.keywords')}
+        ogTitle={t('privacy.seo.ogTitle')}
+        ogDescription={t('privacy.seo.ogDescription')}
+        ogUrl={currentUrl}
+        ogType="website"
+      />
       {/* Header */}
       {/* Header */}
       <header className="border-b border-slate-800">
       <header className="border-b border-slate-800">
         <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
         <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">

+ 13 - 0
shopcall.ai-main/src/pages/Terms.tsx

@@ -3,10 +3,14 @@ import { Button } from "@/components/ui/button";
 import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
 import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
 import { ScrollText, Shield, AlertTriangle, Scale } from "lucide-react";
 import { ScrollText, Shield, AlertTriangle, Scale } from "lucide-react";
 import { useTranslation } from "react-i18next";
 import { useTranslation } from "react-i18next";
+import SEO from "@/components/SEO";
 
 
 const Terms = () => {
 const Terms = () => {
   const { t } = useTranslation();
   const { t } = useTranslation();
 
 
+  // Get the current URL for Open Graph
+  const currentUrl = typeof window !== 'undefined' ? window.location.href : 'https://shopcall.ai/terms';
+
   const sections = [
   const sections = [
     {
     {
       icon: ScrollText,
       icon: ScrollText,
@@ -32,6 +36,15 @@ const Terms = () => {
 
 
   return (
   return (
     <div className="min-h-screen bg-slate-900 text-white">
     <div className="min-h-screen bg-slate-900 text-white">
+      <SEO
+        title={t('terms.seo.title')}
+        description={t('terms.seo.description')}
+        keywords={t('terms.seo.keywords')}
+        ogTitle={t('terms.seo.ogTitle')}
+        ogDescription={t('terms.seo.ogDescription')}
+        ogUrl={currentUrl}
+        ogType="website"
+      />
       {/* Header */}
       {/* Header */}
       <header className="border-b border-slate-800">
       <header className="border-b border-slate-800">
         <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
         <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">