diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..0065ae6
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,32 @@
+# robots.txt — Citronics 2026 (cdgicitronics.in)
+# Generated for optimal Google / Bing / Edge crawling
+
+User-agent: *
+Allow: /
+Allow: /about
+Allow: /events
+Allow: /events/
+Allow: /gallery
+Allow: /team
+Allow: /register
+
+# Exclude auth, transactional, and private pages from indexation
+Disallow: /login
+Disallow: /dashboard
+Disallow: /tickets
+Disallow: /api/
+Disallow: /401
+Disallow: /404
+Disallow: /500
+
+# Next.js internals — allow render-critical JS/CSS but block image optimizer
+Disallow: /_next/
+Allow: /_next/static/
+Disallow: /_next/image
+
+# Exclude admin routes
+Disallow: /admin
+Disallow: /admin/
+
+# Sitemap location
+Sitemap: https://cdgicitronics.in/sitemap.xml
diff --git a/src/components/SEO/SEOHead.js b/src/components/SEO/SEOHead.js
new file mode 100644
index 0000000..41754dc
--- /dev/null
+++ b/src/components/SEO/SEOHead.js
@@ -0,0 +1,91 @@
+/**
+ * ┌──────────────────────────────────────────────────────────────────────────┐
+ * │ SEOHead — Core
Component │
+ * │ │
+ * │ Renders title, meta description, keywords, canonical URL, Open Graph, │
+ * │ Twitter Card, and JSON-LD structured data. │
+ * │ │
+ * │ NOT imported directly in pages — wrapped by per-page components like │
+ * │ HomeSEO, AboutSEO, etc. that pre-fill all props. │
+ * └──────────────────────────────────────────────────────────────────────────┘
+ */
+import Head from 'next/head'
+import { SITE, buildCanonical } from './seo.config'
+
+const SEOHead = ({
+ title,
+ description,
+ keywords,
+ canonicalPath = '/',
+ ogType = 'website',
+ ogImage,
+ noIndex = false,
+ schemas = [],
+}) => {
+ const pageTitle = title || SITE.name
+ const pageDescription = description || `${SITE.name} — ${SITE.tagline}.`
+ const canonical = buildCanonical(canonicalPath)
+
+ // Ensure OG image is absolute
+ const rawOgImage = ogImage || SITE.ogImage
+ const absoluteOgImage = rawOgImage.startsWith('http')
+ ? rawOgImage
+ : `${SITE.url}${rawOgImage.startsWith('/') ? rawOgImage : `/${rawOgImage}`}`
+
+ return (
+
+ {/* ── Title ──────────────────────────────────────────── */}
+ {pageTitle}
+
+ {/* ── Core meta — what crawlers and AI models read first */}
+
+ {keywords && }
+
+
+
+
+ {/* ── Canonical URL ──────────────────────────────────── */}
+
+
+ {/* ── Open Graph (Facebook, WhatsApp, iMessage, etc.) ── */}
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* ── Twitter Card ─────────────────────────────────────── */}
+
+
+
+
+
+
+
+
+ {/* ── AI / LLM discoverability hints ───────────────────── */}
+
+
+
+
+
+
+ {/* ── JSON-LD Structured Data ───────────────────────────── */}
+ {schemas.map((schema, i) => (
+
+ ))}
+
+ )
+}
+
+export default SEOHead
diff --git a/src/components/SEO/index.js b/src/components/SEO/index.js
new file mode 100644
index 0000000..16bacda
--- /dev/null
+++ b/src/components/SEO/index.js
@@ -0,0 +1,47 @@
+/**
+ * ┌──────────────────────────────────────────────────────────────────────────┐
+ * │ SEO Engine — Citronics 2026 │
+ * │ │
+ * │ Barrel export. Import per-page SEO components directly: │
+ * │ │
+ * │ import { HomeSEO } from 'src/components/SEO' │
+ * │ import { EventDetailSEO } from 'src/components/SEO' │
+ * │ │
+ * │ Structure: │
+ * │ SEO/ │
+ * │ ├── index.js ← this barrel file │
+ * │ ├── seo.config.js ← site identity, domain, social, geo │
+ * │ ├── schemas.js ← JSON-LD structured data builders │
+ * │ ├── SEOHead.js ← core component (internal) │
+ * │ └── pages/ │
+ * │ ├── HomeSEO.js ← │
+ * │ ├── AboutSEO.js ← │
+ * │ ├── EventsSEO.js ← │
+ * │ ├── EventDetailSEO.js ← │
+ * │ ├── GallerySEO.js ← │
+ * │ ├── TeamSEO.js ← │
+ * │ ├── CartSEO.js ← │
+ * │ ├── CheckoutSEO.js ← │
+ * │ ├── LoginSEO.js ← │
+ * │ └── RegisterSEO.js ← │
+ * └──────────────────────────────────────────────────────────────────────────┘
+ */
+
+// Per-page SEO components — one import, one JSX tag per page
+export { default as HomeSEO } from './pages/HomeSEO'
+export { default as AboutSEO } from './pages/AboutSEO'
+export { default as EventsSEO } from './pages/EventsSEO'
+export { default as EventDetailSEO } from './pages/EventDetailSEO'
+export { default as GallerySEO } from './pages/GallerySEO'
+export { default as TeamSEO } from './pages/TeamSEO'
+export { default as CartSEO } from './pages/CartSEO'
+export { default as CheckoutSEO } from './pages/CheckoutSEO'
+export { default as LoginSEO } from './pages/LoginSEO'
+export { default as RegisterSEO } from './pages/RegisterSEO'
+export { default as TicketsSEO } from './pages/TicketsSEO'
+export { default as TicketVerifySEO } from './pages/TicketVerifySEO'
+export { default as PaymentStatusSEO } from './pages/PaymentStatusSEO'
+
+// Low-level exports (for advanced use / sitemap / events/[id] getServerSideProps)
+export { SITE, buildCanonical } from './seo.config'
+export { eventSchema } from './schemas'
diff --git a/src/components/SEO/pages/AboutSEO.js b/src/components/SEO/pages/AboutSEO.js
new file mode 100644
index 0000000..5500146
--- /dev/null
+++ b/src/components/SEO/pages/AboutSEO.js
@@ -0,0 +1,56 @@
+/**
+ * AboutSEO — drop-in SEO for /about
+ *
+ * Schemas: Organization · festEvent · Breadcrumb · FAQ
+ * Target queries: "about Citronics", "CDGI fest info", "Citronics 2026 details"
+ */
+import SEOHead from '../SEOHead'
+import {
+ organizationSchema,
+ festEventSchema,
+ breadcrumbSchema,
+ faqSchema,
+} from '../schemas'
+
+const ABOUT_FAQS = [
+ {
+ question: 'What is Citronics 2026?',
+ answer: 'Citronics 2026 is the flagship annual techno-management fest of Chameli Devi Group of Institutions (CDGI), Indore. It features 35+ competitions across AI, robotics, coding, management, and cultural events with 5000+ participants from colleges all over India.',
+ },
+ {
+ question: 'When and where is Citronics 2026 held?',
+ answer: 'Citronics 2026 takes place from April 7 to April 9, 2026 at the CDGI campus on Airport Road, Indore, Madhya Pradesh, India.',
+ },
+ {
+ question: 'How can I register for Citronics 2026?',
+ answer: 'Visit cdgicitronics.in, create a free account, browse all 35+ events, and register for the competitions you want to participate in. You can purchase tickets directly through the website.',
+ },
+ {
+ question: 'Is Citronics 2026 open to students from other colleges?',
+ answer: 'Yes, Citronics is a national-level fest open to students from all colleges and universities across India. Students from engineering, management, design, and other disciplines are welcome.',
+ },
+ {
+ question: 'What kind of events does Citronics have?',
+ answer: 'Citronics features technical events (AI/ML challenges, robotics, hackathons, coding battles), management case studies, cultural performances, debates, quizzes, workshops, keynote sessions, and more across 14+ departments.',
+ },
+]
+
+const AboutSEO = () => (
+
+)
+
+export default AboutSEO
diff --git a/src/components/SEO/pages/CartSEO.js b/src/components/SEO/pages/CartSEO.js
new file mode 100644
index 0000000..d4efc28
--- /dev/null
+++ b/src/components/SEO/pages/CartSEO.js
@@ -0,0 +1,15 @@
+/**
+ * CartSEO — SEO for /cart (noindex — transactional page)
+ */
+import SEOHead from '../SEOHead'
+
+const CartSEO = () => (
+
+)
+
+export default CartSEO
diff --git a/src/components/SEO/pages/CheckoutSEO.js b/src/components/SEO/pages/CheckoutSEO.js
new file mode 100644
index 0000000..a371de9
--- /dev/null
+++ b/src/components/SEO/pages/CheckoutSEO.js
@@ -0,0 +1,15 @@
+/**
+ * CheckoutSEO — SEO for /checkout (noindex — transactional page)
+ */
+import SEOHead from '../SEOHead'
+
+const CheckoutSEO = () => (
+
+)
+
+export default CheckoutSEO
diff --git a/src/components/SEO/pages/EventDetailSEO.js b/src/components/SEO/pages/EventDetailSEO.js
new file mode 100644
index 0000000..f281fbd
--- /dev/null
+++ b/src/components/SEO/pages/EventDetailSEO.js
@@ -0,0 +1,61 @@
+/**
+ * EventDetailSEO — dynamic SEO for /events/[id]
+ *
+ * Accepts an event object (from getServerSideProps) and generates
+ * title, description, keywords, and JSON-LD dynamically.
+ *
+ * Schemas: Event (single) · Breadcrumb
+ */
+import SEOHead from '../SEOHead'
+import { SITE } from '../seo.config'
+import { eventSchema, breadcrumbSchema } from '../schemas'
+
+/**
+ * @param {{ event: object|null }} props
+ * event — serialized event row from getServerSideProps (can be null)
+ */
+const EventDetailSEO = ({ event }) => {
+ if (!event) {
+ return (
+
+ )
+ }
+
+ const { id, name, tagline, description, venue, department_name, ticket_price, banner_url } = event
+
+ const eventName = name || 'Event'
+ const dept = department_name ? ` · ${department_name}` : ''
+ const priceTag = ticket_price != null && ticket_price > 0 ? ` | ₹${ticket_price}` : ' | Free Entry'
+
+ // Build a natural description — crawlers and AI models prefer complete sentences
+ const rawDesc = tagline || description || ''
+ const pageDesc = rawDesc
+ ? `${rawDesc.slice(0, 140).trim()}${rawDesc.length > 140 ? '…' : ''} — at Citronics 2026, CDGI Indore.`
+ : `${eventName} at Citronics 2026 — compete, collaborate and win at ${SITE.college}, Indore. ${department_name ? `Organised by ${department_name}.` : ''} April 7–9, 2026.`
+
+ return (
+
+ )
+}
+
+export default EventDetailSEO
diff --git a/src/components/SEO/pages/EventsSEO.js b/src/components/SEO/pages/EventsSEO.js
new file mode 100644
index 0000000..f728d22
--- /dev/null
+++ b/src/components/SEO/pages/EventsSEO.js
@@ -0,0 +1,26 @@
+/**
+ * EventsSEO — drop-in SEO for /events (listing page)
+ *
+ * Schemas: Organization · Breadcrumb
+ * Target queries: "Citronics events", "CDGI competitions 2026", "tech fest events Indore"
+ */
+import SEOHead from '../SEOHead'
+import { organizationSchema, breadcrumbSchema } from '../schemas'
+
+const EventsSEO = () => (
+
+)
+
+export default EventsSEO
diff --git a/src/components/SEO/pages/GallerySEO.js b/src/components/SEO/pages/GallerySEO.js
new file mode 100644
index 0000000..a5f97e0
--- /dev/null
+++ b/src/components/SEO/pages/GallerySEO.js
@@ -0,0 +1,26 @@
+/**
+ * GallerySEO — drop-in SEO for /gallery
+ *
+ * Schemas: ImageGallery · Breadcrumb
+ * Target queries: "Citronics photos", "CDGI fest gallery", "tech fest highlights"
+ */
+import SEOHead from '../SEOHead'
+import { imageGallerySchema, breadcrumbSchema } from '../schemas'
+
+const GallerySEO = () => (
+
+)
+
+export default GallerySEO
diff --git a/src/components/SEO/pages/HomeSEO.js b/src/components/SEO/pages/HomeSEO.js
new file mode 100644
index 0000000..7976843
--- /dev/null
+++ b/src/components/SEO/pages/HomeSEO.js
@@ -0,0 +1,30 @@
+/**
+ * HomeSEO — drop-in SEO for the landing page (src/pages/index.js)
+ *
+ * Schemas: WebSite · Organization · festEvent · Breadcrumb
+ * Target queries: "Citronics 2026", "CDGI tech fest", "college tech fest Indore"
+ */
+import SEOHead from '../SEOHead'
+import {
+ websiteSchema,
+ organizationSchema,
+ festEventSchema,
+ breadcrumbSchema,
+} from '../schemas'
+
+const HomeSEO = () => (
+
+)
+
+export default HomeSEO
diff --git a/src/components/SEO/pages/LoginSEO.js b/src/components/SEO/pages/LoginSEO.js
new file mode 100644
index 0000000..7b3fd55
--- /dev/null
+++ b/src/components/SEO/pages/LoginSEO.js
@@ -0,0 +1,15 @@
+/**
+ * LoginSEO — SEO for /login (noindex — auth page)
+ */
+import SEOHead from '../SEOHead'
+
+const LoginSEO = () => (
+
+)
+
+export default LoginSEO
diff --git a/src/components/SEO/pages/PaymentStatusSEO.js b/src/components/SEO/pages/PaymentStatusSEO.js
new file mode 100644
index 0000000..6a4a9a7
--- /dev/null
+++ b/src/components/SEO/pages/PaymentStatusSEO.js
@@ -0,0 +1,15 @@
+/**
+ * PaymentStatusSEO — SEO for /checkout/payment-status (noindex — transactional page)
+ */
+import SEOHead from '../SEOHead'
+
+const PaymentStatusSEO = () => (
+
+)
+
+export default PaymentStatusSEO
diff --git a/src/components/SEO/pages/RegisterSEO.js b/src/components/SEO/pages/RegisterSEO.js
new file mode 100644
index 0000000..6d5ac58
--- /dev/null
+++ b/src/components/SEO/pages/RegisterSEO.js
@@ -0,0 +1,25 @@
+/**
+ * RegisterSEO — SEO for /register (indexed — registration CTA)
+ *
+ * Schemas: Breadcrumb
+ * Target queries: "register Citronics 2026", "sign up CDGI fest"
+ */
+import SEOHead from '../SEOHead'
+import { breadcrumbSchema } from '../schemas'
+
+const RegisterSEO = () => (
+
+)
+
+export default RegisterSEO
diff --git a/src/components/SEO/pages/TeamSEO.js b/src/components/SEO/pages/TeamSEO.js
new file mode 100644
index 0000000..30a94c9
--- /dev/null
+++ b/src/components/SEO/pages/TeamSEO.js
@@ -0,0 +1,26 @@
+/**
+ * TeamSEO — drop-in SEO for /team
+ *
+ * Schemas: Organization · Breadcrumb
+ * Target queries: "Citronics team", "CDGI fest organizers", "student council CDGI"
+ */
+import SEOHead from '../SEOHead'
+import { organizationSchema, breadcrumbSchema } from '../schemas'
+
+const TeamSEO = () => (
+
+)
+
+export default TeamSEO
diff --git a/src/components/SEO/pages/TicketVerifySEO.js b/src/components/SEO/pages/TicketVerifySEO.js
new file mode 100644
index 0000000..28174cf
--- /dev/null
+++ b/src/components/SEO/pages/TicketVerifySEO.js
@@ -0,0 +1,15 @@
+/**
+ * TicketVerifySEO — SEO for /tickets/verify (noindex — transactional page)
+ */
+import SEOHead from '../SEOHead'
+
+const TicketVerifySEO = () => (
+
+)
+
+export default TicketVerifySEO
diff --git a/src/components/SEO/pages/TicketsSEO.js b/src/components/SEO/pages/TicketsSEO.js
new file mode 100644
index 0000000..0b7a721
--- /dev/null
+++ b/src/components/SEO/pages/TicketsSEO.js
@@ -0,0 +1,15 @@
+/**
+ * TicketsSEO — SEO for /tickets (noindex — authenticated page)
+ */
+import SEOHead from '../SEOHead'
+
+const TicketsSEO = () => (
+
+)
+
+export default TicketsSEO
diff --git a/src/components/SEO/schemas.js b/src/components/SEO/schemas.js
new file mode 100644
index 0000000..30db613
--- /dev/null
+++ b/src/components/SEO/schemas.js
@@ -0,0 +1,244 @@
+/**
+ * ┌──────────────────────────────────────────────────────────────────────────┐
+ * │ JSON-LD Structured Data Builders — Citronics 2026 │
+ * │ │
+ * │ schema.org markup that search engines and AI assistants parse to │
+ * │ understand page content. Outputs valid JSON-LD objects for injection │
+ * │ via