, , ,

May 11, 2026 | 3 Minute Read

How We Partnered With AI To Build The SEO & GEO Strategy For An EdTech Platform

Table of Contents

Part 6 of “Building Progression School: A Partnership with Lovable”

← Previous in this series: How Production-Grade Payment Infrastructure Was Built Through an AI Partnership

The Dual Discovery Problem

We had built a feature-rich platform (programs, payments, workshops, an AI sales assistant), but none of it mattered if people couldn’t find us. Our discovery challenge was twofold:

  1. Traditional SEO: Ranking on Google for queries like “AI internship for students India” or “GenAI course for working professionals.”
  2. Generative Engine Optimization (GEO): Ensuring AI assistants like ChatGPT, Perplexity, and Gemini could accurately describe our programs when asked.

These are fundamentally different indexing problems. Google crawls HTML and evaluates backlinks. AI models consume structured text and synthesize answers. We needed to optimize for both, simultaneously, without maintaining two separate content systems.

Working with Lovable, we built a unified discoverability architecture that serves crawlers, AI models, and humans from the same codebase.

The SPA Indexing Challenge

Our site is a React single-page application. That’s great for user experience (instant navigation, smooth transitions, rich interactivity), but it’s historically terrible for SEO. When Googlebot visits a React SPA, it initially sees an empty <div id="root"></div>. While Google’s renderer can execute JavaScript, it’s a two-phase process with no guarantees on timing.

We asked Lovable to solve this without migrating to a server-rendered framework. The solution was elegant: a static content fallback shell embedded directly in index.html.

 

The shell lives inside the React root element, so it’s immediately replaced on hydration.display:none and aria-hidden="true" ensure sighted users and screen readers never encounter duplicate content. But crawlers that parse raw HTML (including Googlebot’s first pass) immediately find rich, keyword-dense text with proper heading hierarchy.

This resolved Google Search Console’s “low text-HTML ratio” warnings overnight.

Structured Data: Speaking Schema.org

Raw HTML tells crawlers what text exists. Structured data tells them what it means. We built a reusable JSON-LD system through a shared component:

 

Simple wrapper, but the power is in the pre-built schema generators we created alongside it.

Organization Schema

Every page carries our organizational identity (name, logo, social profiles, founding year, and contact information), ensuring Google’s Knowledge Panel and AI models associate the correct metadata with our brand.

Course Schema

Each program page emits a Course schema with conditional pricing, duration, and provider information. The conditional spreading pattern (...(price && { ... })) is deliberate: not every program has public pricing, and emitting an empty Offer object would be worse than omitting it entirely.

Breadcrumb & FAQ Schemas

Navigation hierarchy through BreadcrumbList schemas helps Google display rich breadcrumb trails. Program pages with FAQ sections emit FAQPage schemas, which can trigger expandable Q&A directly in search listings.

Canonical Domain Strategy

We standardized on www.progressionschool.com as our canonical domain. Every URL across the entire system (sitemap entries, <link rel="canonical">, Open Graph tags, Twitter cards) uses the https://www. prefix explicitly.

Why this matters: If Google sees progressionschool.com and www.progressionschool.com as different URLs pointing to the same content, it splits our link equity. The canonical tag tells Google “this is the one true version.”

The Sitemap: Priority-Weighted Discovery

Our sitemap is a priority map that tells search engines where to allocate crawl budget:

Priority

Pages

Rationale

1.0

Homepage

Brand entry point, highest authority

0.9

Audience pages

High-intent landing pages

0.8

Program pages, Library

Conversion-critical content

0.7

About, Individual workshops

Supporting content

0.3

Legal pages

Required but low-SEO-value

robots.txt: Welcoming Every Crawler

Most websites block AI crawlers. We took the opposite approach:

 

This is strategic. We want AI models to index our content. When someone asks ChatGPT “What’s a good AI internship program in India?”, we want our programs in the training data.

llms.txt: The AI-Native Discovery Layer

This is where our GEO strategy diverges from traditional SEO. We created public/llms.txt, a plain-text markdown file specifically designed for large language model consumption, with structured key-value metadata per program (Audience, Duration, Format, Outcome, URL).

The format choices are deliberate:

  • Markdown: LLMs parse it better than HTML.
  • Structured headers: Models can navigate to specific sections.
  • Direct URLs: So AI assistants can cite sources.
  • Natural language: Written for comprehension, not keyword stuffing.

We excluded llms.txt from robots.txt because the standard doesn’t officially support custom file references beyond Sitemap. AI crawlers discover it through convention (the /llms.txt path is an emerging standard).

The GEO Framework: Beyond Traditional SEO

Dimension

SEO Approach

GEO Approach

Content Format

HTML with heading hierarchy

Markdown in llms.txt

Structure

Schema.org JSON-LD

Key-value metadata per program

Discovery

sitemap.xml + robots.txt

llms.txt + open crawler policy

Authority

Backlinks + domain age

Consistent facts across all surfaces

Rich Results

FAQ, Course, Breadcrumb schemas

Natural language Q&A in content

The key insight: consistency is the GEO ranking signal. If our JSON-LD says one thing, our llms.txt says another, and our page content says a third, AI models lose confidence in all three.

Performance As An SEO Signal

Google’s Core Web Vitals directly impact ranking. We use preconnect hints for Google Fonts and Razorpay, defer attributes on heavy third-party scripts, and favicon preloading. All of these serve both UX and SEO simultaneously.

What Lovable Made Possible

SEO is often treated as an afterthought because it’s tedious, not because it’s hard. With Lovable, we described the intent (“we need Course schema markup with pricing on every program page”) and received correct, spec-compliant implementations. When we said “crawlers are seeing empty HTML,” Lovable understood the SPA indexing problem and proposed the static fallback shell pattern. The GEO layer emerged from conversations about future-proofing: we described the goal and collaborated on the solution.

Building for a world where ChatGPT answers before Google does? Let’s design your discoverability layer together

 

About the Author
Brahmpreet Singh, Senior Marketing Manager

Brahmpreet Singh, Senior Marketing Manager

Brahmpreet Singh is a marketing professional with over a decade of experience in SaaS and B2B content strategy. He enjoys blending research-driven insights with creative storytelling to support meaningful growth in organic traffic and lead generation. Brahmpreet is dedicated to building thoughtful, data-informed marketing strategies that resonate with audiences and drive long-term success.


Leave us a comment

Back to Top