Services Industries Locations Case Studies Blog About Contact Book a Call
All notes
SEO May 21, 2026 12 min read

The View-Source Test: Why Lovable, Bolt, and v0 Sites Don't Get Indexed

Founders are shipping sites on Lovable, Bolt, and v0, then wondering why Google sees nothing. Here's the 30-second test I run on every new client.

The View-Source Test: Why Lovable, Bolt, and v0 Sites Don't Get Indexed

A founder reached out last quarter wanting to know why his site was not ranking. Beautiful design. Clean copy. Real product. He had been live for 4 months and his Google Search Console showed 3 indexed pages out of 47 submitted.

I ran one check before our first call. I opened his homepage, hit View Page Source, and scrolled. The body was a handful of empty divs and a script tag. No headlines. No paragraphs. No product descriptions. Nothing Google could read.

His site was built on an AI website builder. The content existed, but only after JavaScript ran in a browser. Googlebot was looking at the same empty shell I was.

The view-source test takes 30 seconds and saves months

I now run this check on every new client site before any other work begins. Right-click, View Page Source, look at what is actually in the HTML body. If the content you can see in the browser is missing from the source, the site is client-side rendered with no server-side rendering configured. Google sees the empty shell.

Then I confirm it inside Google Search Console using the URL Inspection tool. Hit Test Live URL, then View Tested Page, then look at the HTML Googlebot rendered. If that HTML is missing the headlines and body copy that exist on the live page, you have your answer.

WHAT GOOGLEBOT ACTUALLY READS
SSR site (Next.js)
96% read
Shopify / WordPress
92% read
Framer (SSG)
88% read
Webflow
90% read
Lovable / Bolt / v0
8% read
Based on view-source audits of 14 incoming client sites in 2025. CSR-only sites built on AI builders ship with empty HTML bodies. Content only appears after JavaScript executes in the browser.

Why this category is exploding right now

The AI website builder space has 2 things working at once. The tools have gotten good enough that a non-technical founder can ship a usable v1 in an afternoon. And the tools default to client-side rendering because it is cheaper to host and faster to iterate on.

Most of the popular AI builders run Vite plus React under the hood. Vite is a development server. React is a JavaScript UI library. Together they produce sites where the HTML file shipped to the browser is essentially empty and the actual content is constructed in JavaScript after page load. A human in Chrome sees the page render in 200ms and thinks everything is fine. Googlebot sees an empty shell, tries to render the JavaScript, often fails or partially fails, and indexes nothing.

Google has gotten better at rendering JavaScript over the past 5 years. The official line is that Googlebot can execute JS. The reality I see on client sites is messier. Render budgets are real. Failed renders are silent. And even when rendering works, it adds days or weeks to the indexation timeline because Google holds JS pages in a second-pass rendering queue.

The 4 builders I see most often on incoming clients

BuilderWhat it shipsSEO outcome
LovableVite + React, CSR by defaultEmpty HTML body, content invisible to Googlebot
Bolt.newVite + React, CSR by defaultSame. Content loads via JS only.
v0 (Vercel)Next.js, SSR available but not always configuredMixed. Depends on how the founder shipped it.
Replit AgentVaries, often Vite or Express + frontend JSAlmost always CSR unless explicitly configured otherwise

v0 is the exception that proves the rule. Vercel ships v0 on top of Next.js, which supports server-side rendering and static site generation natively. A v0 site can be configured correctly. Most founders do not configure it. They prompt their way to a working UI and deploy. The result is often the same CSR-only output as the other builders.

What this looks like in Google Search Console

The diagnostic pattern is consistent. Pages submitted via sitemap. Pages discovered but not indexed. Pages crawled but not indexed. Total indexed count flat at 1 or 2 URLs no matter how many you ship.

Before placing any keyword on any page, I run 3 checks: does the keyword match the product and location in reality, would the searcher be satisfied landing here, and does the SERP confirm the intent. On a CSR-only site, none of those checks matter. The pages do not exist in Google's index. The content might be perfect. The keyword targeting might be perfect. Google cannot read any of it.

Why "Request Indexing" will not save you

The most common mistake when fixing crawled-not-indexed pages is clicking Request Indexing on every URL without changing the page first. Google already crawled the page and rejected it. Asking again on an unchanged page gets the same answer.

On a CSR site, the page has not changed between requests. The HTML body is still empty. Hitting Request Indexing 47 times does not change what Googlebot sees. The fix is structural, not procedural.

The fix is a rebuild, and I quote it upfront now

I used to discover this problem in month 2 of a retainer, after the content programme had already started producing pages that would never index. The conversation with the client was painful. They had paid for content. The content was good. None of it was getting indexed. The fix was rebuilding the site on a stack that pre-renders content, which they had not budgeted for.

Now I run the view-source test on every prospect before scoping. If the site is CSR-only, the rebuild is part of the onboarding quote, not a surprise bill 3 months in. The honest version of the proposal includes the truth that the existing site cannot rank, regardless of how much content we add to it.

The rebuild stack depends on the use case. For e-commerce, Shopify with a custom theme or headless Shopify on Next.js. For service businesses and content sites, Next.js with SSG. For founders who want to keep iterating visually, Framer or Webflow both pre-render and both index cleanly.

The takeaway for any founder who shipped on an AI builder

Test before you scale. Open your homepage source. Look at the body. If the content is missing, your site is invisible to Google no matter how much you publish. No amount of SEO work, content production, or backlink building changes that. The foundation has to render server-side.

1 month of SEO work on a CSR-only site produces zero indexable pages. 3 months produces zero indexable pages. 12 months produces zero indexable pages. The compounding only starts after the foundation is fixed. AI builders are excellent for shipping a v1. They are not a permanent stack for a business that wants organic search to be a channel.

Can you fix it without a full rebuild?

Sometimes. Two middle-ground options exist before you commit to rebuilding from scratch.

The first is a prerendering service like Prerender.io. These sit in front of your site, render the JavaScript on a server, and serve the finished HTML to crawlers while regular visitors still get the client-side version. It works, but it adds a monthly cost, another point of failure, and a cache you have to keep fresh. I treat it as a bridge, not a destination.

The second is moving the same content onto a host that pre-renders by default. If your builder runs on Next.js, you can often switch a page to static generation or server rendering without throwing away the design. Framer and Webflow both pre-render every page, so migrating the content there fixes the foundation while keeping the visual workflow a non-technical founder wants.

The full rebuild only becomes necessary when the builder gives you no server-rendering path at all, which is the case with most Vite and React output from Lovable and Bolt today.

What to do this week if your site is not indexing

Run these 5 steps in order. The first 3 are free and take under an hour.

Frequently asked questions

How do I know if my website is client-side rendered?

Right-click your live page and choose View Page Source. That shows the raw HTML the server sent, before any JavaScript runs. If the headlines, paragraphs, and product copy you see in the browser are missing from that source, the page is client-side rendered and a crawler sees an empty shell.

Can Google index a JavaScript or React site at all?

Yes, but with conditions. Googlebot can execute JavaScript, and it holds JS-dependent pages in a second rendering pass that can add days or weeks to indexing. Render budgets are finite and failed renders are silent, so a site that depends entirely on client-side JavaScript indexes slowly and unreliably, if at all (Google Search Central).

Will sites built on Lovable, Bolt, or v0 ever rank on Google?

Only after the content is served as real HTML. v0 runs on Next.js and can be configured to pre-render, so a correctly shipped v0 site can rank. Lovable and Bolt default to client-side rendering with no server pass, so their default output cannot rank until you move the content onto a pre-rendered stack.

Does adding a sitemap fix the indexing problem?

No. A sitemap tells Google which URLs exist. It does nothing about what those URLs contain. If the HTML body is empty, submitting a sitemap just helps Google discover more empty pages faster.

Is a full rebuild the only fix?

Not always. A prerendering service can serve rendered HTML to crawlers as a bridge, and content built on Next.js can often switch to static or server rendering without a rebuild. A full rebuild is only forced when the builder gives you no server-rendering path.

How long does indexing take after I switch to server-side rendering?

Once the HTML contains your content, most pages index within 1 to 3 weeks, faster on an established domain. Request indexing in Search Console and resubmit your sitemap to speed up the first crawl.

Does this problem also affect AI search visibility?

Yes. ChatGPT, Perplexity, and Google AI Overviews pull from content they can read. A client-side-rendered page that a crawler sees as empty is invisible to AI engines for the same reason it is invisible to Google. Fixing the rendering foundation is step 1 for both. See our work on generative engine optimization for the AI search side.

Liam Lytton is the founder of The 66th, an SEO and GEO agency in Vancouver that has driven results including 1,500% organic traffic growth, 5x revenue, and 4x lead volume for clients across North America.

More notes.

All posts →
Another 'Best SEO Agencies' Listicle Drops, and the Pattern Is Getting Harder to Ignore
Industry

Another 'Best SEO Agencies' Listicle Drops, and the Pattern Is Getting Harder to Ignore

May 4, 20266 min read
DemandSage Just Published a 13-Tool AI Visibility Roundup, and the Tools Are Not the Story
AI Search

DemandSage Just Published a 13-Tool AI Visibility Roundup, and the Tools Are Not the Story

May 15, 20267 min read
The Cannibalization Problem Most Agencies Create On Purpose
SEO

The Cannibalization Problem Most Agencies Create On Purpose

May 4, 20268 min read
Reach out anytime

Ready to future-proof your business?

Book a Free Call