I’ve noticed a surge in people using vibe coding—AI-assisted, low-code tools like Lovable, v0, and Base44—to quickly build websites for small businesses. Just check out these Subreddits:
- Using AI for a plumbing website
- Wants to build client sites with AI
- Building an ecommerce site with AI
It’s tempting because on the surface you can create beautiful websites in minutes, so I dove in myself to examine closer.
But here’s the harsh reality: most of these AI builders spit out single-page applications (SPAs) by default. They’re slick for user experience, with seamless navigation and dynamic loading, but they’re a disaster for SEO right out of the gate. Search engines like Google struggle to crawl and index them properly because everything loads via JavaScript, leaving bots with a blank or incomplete page. Unless you’re deliberate (and ready to burn through resources), your site won’t rank well—or at all—in search results.
That said, the speed and creativity vibe coding enables is impressive. After exiting my last company following an acquisition, I wanted to tinker and create something practical.
But my experiments quickly highlighted how these tools prioritize modern UX over traditional SEO fundamentals, turning what should be simple into a frustrating ordeal.
The Project: Building an Allergy-Safe Restaurant Directory
My first major vibe-coded project was Allergy Safe Menus, a North American directory of restaurants offering dedicated food allergy menus. With friends and family dealing with severe allergies, outings often devolve into frantic searches through outdated PDFs, inconsistent websites, and tense staff interactions. No centralized, current resource existed, so I set out to fix that. At a minimum it would be a fun experiment. At best it would actually be useful.
Using AI tools like Grok, I:
- Collected allergy menus from various sources.
- Generated summaries and tagged allergens.
- Stored data in a Google Sheet for easy management.
- Launched an MVP with a few dozen restaurants.
The site had pages and content, but getting it indexed by search engines? That’s where the real battle began. SPAs don’t naturally produce clean, static URLs that crawlers love, so I turned to a basic SEO staple: sitemaps. What followed was a sanity-draining saga that exposed the core flaws in vibe coding + SEO.
Challenge 1: Local Testing vs. Production Nightmares
Sitemaps seem straightforward—generate an XML file listing all your pages, submit it to Google Search Console, and wait for indexing. I’ve done this for thousands of client sites; it’s routine. But in a vibe-coded SPA, nothing is routine.
The XML route worked flawlessly in local testing, but broke immediately after deployment. Debugging involved multiple AI prompts, browser console tinkering, and trial-and-error fixes. Each iteration burned 4-5 credits on the platform (Lovable in this case), turning a quick task into an expensive headache.
Challenge 2: Domain Mismatches and Hidden URLs
Once fixed, the sitemap loaded… but on a random dev URL generated by the tool, not my primary domain. Google rejected it outright, as it didn’t match the site’s verified domain. More prompts, more tweaks, more credits down the drain. Vibe coding tools often sandbox environments in ways that clash with real-world SEO requirements, forcing you to wrestle with configurations that traditional web dev handles seamlessly.
Challenge 3: Dynamic Content and Stale Sitemaps
The directory was dynamic—new restaurants added regularly meant new pages rendering on the fly. But the sitemap? It stayed static, failing to update. Back to prompting the AI for solutions, which eventually yielded a dynamic generation fix. Yet Google still balked. This highlights a fundamental SPA issue: while the app feels alive to users, search engines see outdated or incomplete snapshots unless you force-feed them updates.
Challenge 4: React Routing and Header Conflicts—The Ultimate Showstopper
This was the knockout punch. SPAs built on frameworks like React are optimized for HTML delivery, not XML. My sitemap kept getting wrapped in unwanted HTML headers, making it invalid for crawlers. The URL looked perfect in a browser, but Google treated it like garbage.
By now, I’d torched 25-30% of my credits on what should’ve been a 10-minute job by hand. Vibe coding promises rapid prototyping, but when SEO enters the picture, the AI’s defaults—JavaScript-heavy routing and dynamic rendering—create barriers that demand deep technical intervention. It’s not “vibe” anymore.
The Workaround: Going Old-School to Bypass SPA Pitfalls
Desperation sparked a flashback to classic web dev tricks. Instead of battling the system’s quirks:
- Switch to TXT Format: Google accepts plain-text sitemaps, which ignore XML’s strict parsing and header requirements. It was a hunch, but it simplified everything—crawlers just read the URLs as text.
- Make It Static: Ditch dynamic routing entirely. Generate a plain file that avoids React’s interference, ensuring Google can fetch it without SPA meddling.
Success! Google accepted it immediately. But this underscores the irony: to make a cutting-edge AI-built site SEO-friendly, I had to regress to basic, non-dynamic methods.
Maintaining Freshness in a Static World
Static files solve one problem but create another: they don’t auto-update. I added a hook to regenerate the sitemap whenever new content was added—blending static delivery with dynamic triggers. It worked, but it felt like patching a leaky boat rather than sailing a yacht. AI tools excel at MVPs, but SEO demands ongoing human oversight to counter their SPA biases.
Lessons from Repeat Offenders: Other Vibe Coding Platforms
I’ve since vibe-coded on platforms like Bolt, Rork, and Base44, and hit identical SEO walls.
Although WordPress may seem a bit dated, over 40% of the web is still powered by it and I think it will continue to be, thanks to how SEO-friendly and familiar it is to so many people. It is like your favorite sweater that you love to wear.
But I wanted a way to build websites and not be locked in with tools like Wix and Duda, and keep that familiar sweater of WordPress but build websites quicker than with a website builder like Elementor, Divi, or Beaver Builder. Enter PressMeGPT.
For my latest project—I built an AI WordPress theme generator and website builder to solve my own workflow problems:
- Design a website in seconds.
- The theme should actually look like what was designed (a common issue with WordPress themes)
- Make it compatible with old faithful WordPress for the SEO benefits.
- Allow me to host anywhere. No vendor lock-in.
- No bloat – Don’t force me to install specific themes, plugins or website builders (but work with them).
The pattern is clear: if you’re vibe coding or similar tools and cursing your SEO luck, it’s likely the SPA architecture at fault.
These platforms prioritize fast, interactive apps over crawlable, multi-page structures that search engines favor.
High rankings require intentional tweaks—server-side rendering, proper routing, or hybrid approaches—that aren’t default and eat up time/credits just like it did for me.
The Bottom Line: AI is great for beautiful web designs, but gets the toilet seat for SEO.
Yes, AI lets you ship amazing websites quickly. But for real SEO success getting your site to rank well and attract organic traffic, I strongly recommend a content management system like WordPress that is built for the job. SPAs might feel modern, but they’re often invisible to search engines without extra engineering.
How have you tackled SEO challenges with AI designed websites?

