
Vibe Coding & SEO: Why AI-Generated Apps Stay Invisible – And How We Fix It
TL;DR: „Vibe Coding produces SPAs – and SPAs are invisible to Google. Our stack (Lovable + GitHub + Vercel + Playwright SSG) solves the problem. Lighthouse 100, proven on our own website."
— Till FreitagThe Elephant in the Room
Vibe Coding is fantastic. You describe what you want, and you get a working app. Lovable, Bolt, Replit, v0 – the tools are getting better, faster, cheaper.
But they all share the same problem: Google can't see your app.
Every one of these tools generates Single Page Applications (SPAs). The server delivers an empty index.html. JavaScript renders the content in the browser. This works for users – but not for:
- Search engines: Googlebot gets a blank page
- Social previews: LinkedIn, Twitter, WhatsApp show no title, no image
- Core Web Vitals: First Contentful Paint is slow because JS must load first
- Accessibility: Screen readers see no initial content
This isn't a bug. It's an architectural problem baked into the DNA of Vibe Coding tools.
Why Vibe Coding Tools Generate SPAs
The explanation is simple: SPAs are the easiest way to generate interactive apps. React, Vue, Svelte – all modern frameworks work this way. And AI code generation works best with React components.
The problem: what's optimal for app logic is catastrophic for content-driven websites.
| SPA (Standard Vibe Coding) | SSG (Our Stack) | |
|---|---|---|
| Googlebot sees | Empty page | Complete HTML |
| First Contentful Paint | 2-4 seconds | < 0.5 seconds |
| OG tags for social | ❌ Missing | ✅ Individual per page |
| Lighthouse Score | 40-70 | 95-100 |
| JSON-LD Schema | ❌ Manual | ✅ Auto-generated |
| Canonical URLs | ❌ Often wrong | ✅ Correct per route |
Our Stack: The Playbook
We've shipped over 50 projects with this stack in production. The architecture is battle-tested:
1. Lovable → Generation
Lovable generates the app: React components, routing, UI, business logic. This is where the actual vibe coding magic happens. We use Lovable as a primary development tool – not as a hosting platform.
2. GitHub → Version Control & CI
The generated code gets pushed to a GitHub repository. This gives us:
- Git history: Every change is traceable
- Branch strategy: Feature branches, pull requests, reviews
- CI pipeline: Automated tests, linting, build checks
- Code ownership: The code belongs to you, not the platform
3. Playwright SSG → The SEO Bridge
This is our secret sauce. At build time:
- Playwright launches a headless browser
- Renders every route of the SPA
- Extracts the complete HTML after React rendering
- Saves it as a static HTML file
The result: every URL has its own, fully rendered HTML – with meta tags, OG data, JSON-LD schema, and complete content. Googlebot gets exactly what the user sees.
4. Vercel Edge → Delivery
Vercel deploys the static HTML files to its edge network. This means:
- < 50ms TTFB worldwide
- ISR (Incremental Static Regeneration) for dynamic content
- Edge Functions for API routes
- Automatic CDN with cache invalidation
The Combined Effect
Lovable (SPA) → GitHub → Playwright (SSG) → Vercel (Edge)
↓ ↓ ↓ ↓
Generation Ownership SEO-Ready PerformanceWhat We Auto-Generate
SEO is more than fast load times. Our stack generates at every build:
Structured Data (JSON-LD)
- Organization Schema with service catalog and geo-targeting (DACH region)
- BlogPosting Schema with automatic
wordCount, author references, breadcrumbs - Event Schema for events (with
offersfield – even for invite-only events) - BreadcrumbList with structured
itemobjects (no bare-string hacks) - ProfessionalService for local visibility
Per-Route Meta Tags
<title>and<meta description>– individual per page- Open Graph tags (
og:title,og:image,og:description) - Twitter Cards
- Canonical URLs
hreflangtags for multilingual sites (DE/EN)
Technical SEO
- Automatic sitemap.xml with lastmod dates
- robots.txt with crawl directives
- Lazy loading for images (except LCP image)
- Semantic HTML with correct H1-H6 hierarchy
- Alt text on all images
The Proof: Our Own Website
We don't just talk about it – our own website is built with exactly this stack.
till-freitag.com is a Lovable-generated SPA, converted to static HTML via our Playwright SSG workflow and deployed on Vercel Edge.
The numbers:
| Metric | Value |
|---|---|
| Lighthouse Performance | 95-100 |
| Lighthouse SEO | 100 |
| Lighthouse Accessibility | 95+ |
| TTFB | < 50ms (EU) |
| FCP | < 0.8s |
| CLS | 0.00 |
| Indexed pages | 200+ |
| Blog articles | 150+ (Markdown, build-time rendering) |
This isn't a proof of concept. This is production – with real traffic, real rankings, real conversions.
Why Other Stacks Can't Do This
Lovable Hosting Direct
Lovable hosting delivers an SPA. Period. No SSG, no edge, no individual meta tags. For internal tools and dashboards, that's fine. For anything Google needs to find: not enough.
Bolt / Replit / v0
Same problem. These tools are fantastic for prototyping and app generation – but they don't solve the SEO problem. They produce SPAs, and SPAs need a rendering strategy.
Framer / Webflow
Better at SEO, but: lock-in. No code export, no git history, limited customization. And Core Web Vitals aren't always as good as the marketing promises.
Next.js / Nuxt Manually
Technically the best solution – but then you're back to traditional development. The speed advantage of Vibe Coding is lost.
Our stack is the only one that combines Vibe Coding speed with production-grade SEO.
How We Help
For Existing Vibe Coding Projects
You built an app with Lovable, Bolt, or v0 and it doesn't rank? We make it SEO-ready:
- Audit: Where does the app stand? Lighthouse, indexing, schema errors
- Migration: Code to GitHub, SSG pipeline setup, Vercel deployment
- Optimization: Meta tags, schema, sitemap, performance tuning
- Monitoring: Ongoing SEO tracking and Core Web Vitals
For New Projects
We build it right from the start:
- AI-native web development with the Lovable + GitHub + Vercel stack
- SEO architecture from day 1 – not as an afterthought
- Multilingual support (DE/EN) with
hreflangand separate content strategies - Blog system with Markdown and automatic schema
For Teams Who Want to DIY
We offer workshops and enablement:
- Vibe Coding best practices for SEO
- SSG pipeline setup and configuration
- Schema markup and structured data
- Core Web Vitals optimization
The Checklist: Is Your Vibe-Coding App SEO-Ready?
Check these 10 points:
- Rendering: Is HTML served statically or server-side?
- Meta tags: Does every page have individual
titleanddescription? - OG tags: Does LinkedIn/Twitter show a preview?
- Canonical URLs: Does every page have a correct canonical?
- Sitemap: Does an up-to-date
sitemap.xmlexist? - Schema: Is there JSON-LD structured data?
- Lighthouse: Is the performance score above 90?
- CLS: Is Cumulative Layout Shift under 0.1?
- Mobile: Does the site work at 390px width?
- Indexing: Are all important pages indexed in Google?
If you answered "No" to more than 3: You need our stack.
The Bigger Picture
Vibe Coding isn't going away. It's getting better, faster, more accessible. But the SEO gap won't close on its own.
The tools optimize for developer experience – not for Google. And as long as that remains true, there needs to be a bridge between what Vibe Coding generates and what search engines expect.
We built that bridge. It works. And we're making it available for every project.
Your vibe-coding app is invisible to Google? Let's change that →
Related Articles from the Vibe Coding SEO Cluster
- 📸 OG-Image Best Practices for SPAs – Why your links look empty on LinkedIn and how to create perfect social previews with pre-rendering and Edge Functions.
- 📊 Google Search Console for Vibe Coding Projects – Setup, the 5 most common SPA indexing problems, and how to debug them with URL Inspection.







