Study ยท October 2026

We scanned 780 websites. AI-built ones match the rest on every critical problem but one: more than 1 in 5 run their database from the browser

We took 788 websites from the public Common Crawl index - sites hosted on Lovable, Replit and Bolt, and, as a control group, on Wix, Webflow and Shopify - and ran each one through the same scanner anyone can use on this site. 780 answered.

The short version: AI-built sites are 4 times as likely to have a critical problem, and almost all of that gap is one pattern - the database behind the site, reached straight from the browser. Take that pattern out and they are as careful as everyone else.

AI-built sites with a critical problem
31%
Classic-builder sites with one
7.8%
AI-built, leaving out the database pattern
9%
Classic, leaving it out
7.8%

1. One pattern accounts for the whole gap

31% of AI-built sites (103 of 332) have at least one critical problem of their owner's making, against 7.8% (35 of 448) of sites built with Wix, Webflow and Shopify. Leave out the one pattern described in the next section and the figures are 9% and 7.8%: the same, within the noise of a sample this size.

"Of their owner's making" matters. Several problems our scanner rates critical are set by the platform on its free subdomains: Wix marks every wixsite.com page as not for search engines, Bolt blocks crawlers on every bolt.host site, and a canonical link pointing at the owner's own domain is correct, not a fault. Counted as the owner's problems, they made every single Wix site in the sample look critically broken - and our first draft of this article said AI-built sites were the better of the two. They are left out of every figure here.

2. More than 1 in 5 talk to their database straight from the browser

22.6% of AI-built sites (75 of 332) ship a Supabase project address and its anonymous key in the JavaScript every visitor downloads. In the control group the figure is 0%.

That needs saying carefully, because it is easy to overstate. The anonymous key is designed to be public. It is safe if Row Level Security is switched on for every table, with a policy saying who may read and write what. If it is not, anyone who opens the browser console can read the database, and often write to it.

We did not check which of these projects have Row Level Security configured. The only way to find out is to try to read the data, and these are other people's databases. So this is not a count of leaking sites. It is a count of sites where a single setting in a dashboard decides whether their visitors' data is private - built by a tool whose users are, by design, often not developers.

None of the sites exposed a service_role key, the one that bypasses every policy. That is the mistake that would make this section alarming, and nobody in the sample made it.

3. The rest, side by side

Only findings that are the site owner's doing are compared here. Security headers are left out on purpose: the hosting platform sets them for every site it serves, so "97% of sites lack header X" really means "three of four platforms do not send it". With four AI platforms and three classic ones, those figures describe platforms, not people.

FindingAI buildersControl
Supabase called from the browser22.6% (75 of 332)0% (0 of 448)safe only with Row Level Security
Open API endpoints referenced in the client12.3% (41 of 332)0% (0 of 448)
Paid API key in client code (OpenAI, Resend, ...)0.3% (1 of 332)2% (9 of 448)anyone can spend it
Page title left at the builder default0.3% (1 of 332)2.5% (11 of 448)
No main heading (h1)76.5% (254 of 332)40.2% (180 of 448)
No meta description14.8% (49 of 332)66.7% (299 of 448)
Zoom disabled on mobile28.6% (95 of 332)1.1% (5 of 448)an accessibility failure
Builder badge still showing41.3% (137 of 332)0% (0 of 448)

4. By builder

BuilderGroupSitesSupabase in browserWith a critical problemSame, without the database pattern
LovableAI builder20034.5%38%4.5%
ReplitAI builder1140%18.4%18.4%
Bolt.newAI builder1833.3%33.3%0%
WixClassic (control)1500%0%0%
ShopifyClassic (control)1490%8.1%8.1%
WebflowClassic (control)1490%15.4%15.4%

Bolt's sample is small; treat its row as indicative. Base44 is missing because the crawl index timed out on its domain, and Hostinger is excluded for the reason given under Method.

5. What the control group found in our own scanner

The control group exists to stop a study like this from blaming AI for things every small site does. It also caught a mistake of ours. On the first run, our detector labelled 68.9% of the classic-builder sites "likely AI-assisted" - 100% of Wix sites and 98% of Webflow sites.

The cause was a scoring rule. A confident match on a builder counted toward "is this AI?" whatever kind of builder it was, so the more certain the scanner was that a site was Wix, the more AI it thought the site looked. We changed it so that only AI-builder fingerprints score, re-ran every site, and the control group now comes out 0% "likely AI" and 0% "AI-built". Detection of the AI builders themselves did not move: 98.8% of the AI group is identified as AI-built.

Every number in this article is from the corrected run.

If you built your site with an AI builder

  1. If it uses Supabase, open the Supabase dashboard, go to Authentication, then Policies, and check that Row Level Security is enabled on every table in the public schema, each with an explicit policy.
  2. Make sure the only Supabase key in your front end is the anon key. A service_role key in browser code must be rotated today.
  3. Move any paid API key (OpenAI, Resend, Stripe secret) behind a server function. If it has been in the page, rotate it.
  4. Give the site a real title, a description and a main heading. The defaults are visible in every search result and link preview.

Or scan it: the scanner checks all of this and tells you which apply.

Method and limits

The aggregate numbers are available as JSON. The code that collected and counted them is open in the repository: scripts/study-harvest.js, scripts/study-run.js, scripts/study-report.js.