Home
​
Insights
​

How We Built a Website Analysis That Doesn't Guess

Why our free website analysis lets AI read but never judge, how one site health score is worked out, and what asking ChatGPT buyer questions taught us.
published on
October 14, 2026
updated on
October 15, 2026
category
author
Ajay Yadav
Website analysis blog thumb nail
Article

TL;DR

  • Our free website analysis reads key pages on a phone screen, runs 15 checks, reads the brand message, and asks ChatGPT, with web search, the questions a buyer would ask.
  • The first version let an AI model judge the brand message. It made confident claims that were false. Now the model only copies quotes, code-checks that each quote is really on the site, and every sentence in the report is a fixed template.
  • Every check has three outcomes: pass, fail, or not verified. If we cannot prove a failure, we don't report one.
  • The analysis gives one site health score, worked out the same way for every site, with the reasons for lost points shown. Our own site gets 89.
  • ChatGPT named Flozi, our AI visibility product, when the question included "Webflow", and never for the general question. That pattern held across three runs.

Why we built it

We had read a lot of automated website audits, some written about sites we built. They had the same problem: claims we could not check. A score with no working shown, a "duplicate heading on the blog template" that was not there when we looked, and advice written so generally it fitted any site.

We wanted a report we could hand to a founder and stand behind every line. That gave us three rules before we wrote any code:

  1. Every finding names the pages it is based on. "key pages", never "your site".
  2. Every check has three outcomes: pass, fail, or not verified. A page that blocks us, times out, or gives an ambiguous result is "not verified", never "fail".
  3. The report says what it did not test. Console errors, failed asset requests, keyboard navigation, and form submission are listed as not tested on every report.

The 15 checks

Each check runs on every key page it applies to, and the report says how many pages passed. A page with no form is left out of the form checks rather than counted as a pass.

Check What passes What fails
Mobile and site function
Viewport set for phones The page has a viewport tag and allows zoom No viewport tag, or zoom is blocked
No sideways scrolling The page is no wider than a 360px phone screen The page is wider, so visitors scroll sideways
Readable body text Body text is at least 12px, adjusted if the page is shrunk to fit Body text is smaller
Tap targets Links and buttons are at least 24px, or spaced far enough apart (WCAG 2.2) Small targets crowd each other. Hidden links, links in closed menus, and links inside paragraphs are not counted
Navigation and structure
Menu and footer links work Every internal menu and footer link opens a page (up to 80) A link leads to an error or a missing page
No redirect chains Links open directly or after one redirect A link goes through more than one redirect
Real 404 page A made-up address returns HTTP 404 It returns a normal page, or redirects to the home page
Way back from the 404 page The 404 page links back into the site The 404 page is a dead end
Content and AEO readiness
One main heading Each key page has exactly one H1 The page has no H1, or more than one
Template pages have their own heading Pages built from one template (up to 6 blog posts, for example) each have a different H1 Several pages share the same H1
Technical foundation
Images have alt text Every image has an alt attribute. An empty one counts as a pass, because it marks the image as decorative An image has no alt attribute at all
Page has a title The page has a title tag No title
Conversion path
Form fields have labels Every field has a visible label A field has only placeholder text. Cookie panels, search boxes and hidden spam traps are ignored
Email fields use the email type Email fields are type="email", so phones show the right keyboard An email field is plain text
A clear action The page has at least one button-style action None is found. This is reported as "not verified", never as a failure, because some buttons can't be detected

Two more sections of the report are not checks and are not scored: the brand message and the AI findings, both covered below.

Let the model read, never judge

The brand section asks simple questions: does the site say what it offers, does it say who it is for, and does it compare itself with alternatives?

Our first version asked an AI model to answer those questions and write a verdict. It read fluently and was often wrong, and the mistakes were always about what a site does not do. It said flozi.io and neue.world never compare themselves with other options, though both do so in many sentences. On another site, it said no industries were named, though the word appears more than a hundred times. Telling the model to act as a critical reviewer made it worse.

So we changed what the model is allowed to do. It now does two small jobs:

  • Copy. It pulls out whole sentences that state the offer or the audience, as exact quotes.
  • Sort. It labels candidate sentences. Code finds the sentences in the first place, and the model only says whether each one really compares the business with others.

Code does everything else. A quote that is not word for word in the page text is dropped. The report sentence is a template with the quote placed in it, and the page and field are named. On our own site that reads:

Compare itself with alternatives: "Unlike other agencies, we don't bill per hour." (contact us page text)

No sentence written by the model reaches the report. When something is missing, the wording is always "we did not find this in the pages we read", and only after code has searched for it.

We then ran the same saved pages through the brand section five times on each of 7 test sites. 20 of 21 answers came out the same every time. The one that changed came from a single borderline line on one home page, which the model sometimes counted as naming an audience and sometimes did not. We tightened the rule: an audience has to be a customer type, role, industry, team type, or company size, and "clients" or "your team" doesn't count. After that, three more runs on all 7 sites gave the same answers.

The small things that produce false findings

Most of the build time went into cases where a correct check gave a wrong result. A few examples:

  • Animated buttons. Many sites animate button text by putting each letter in its own element. Read naively, our own "Book a Call" button came out as "B o o k a C a l l", repeated for the hover effect, so one button looked like ten different ones.
  • Screenshots change the page. Asking for a screenshot changes the layout the page reports. On flozi.io the number of tap targets dropped from 58 to 38, and the screenshot matched what a real phone shows. Every page is now read with a screenshot.
  • Empty alt text is correct. An image with alt="" is marked as decorative, which is valid. Only an image with no alt attribute at all fails. One test site had 168 empty alts and no missing ones.
  • Collapsed menus. Links hidden inside a closed menu still have a size and position. Without filtering them out, one large site showed 32 crowded tap targets that no visitor could ever touch.
  • Filters that remove too much. A filter meant to remove cookie banners matched a class name that one CMS puts on almost every component, and it emptied whole pages. Filters are now narrow and capped in size.

We also stopped trusting all-pass results. Every check was tested against sites we knew would fail it, including a local test server with planted defects.

One score, with the reasons shown

We started with no score at all, because scores were what we trusted least in other reports. We added one back, with three conditions: it uses only the 15 scripted checks, it is worked out the same way for every site, and the report shows what lost points.

  • A problem on 1 of 8 pages costs less than the same problem on 8 of 8.
  • Problems that stop people from using or finding the site cost more than polish.
  • Checks we could not verify are left out, so a site that blocks a check is not marked down for it.
  • If too little of the site could be read or verified, the report gives no score instead of a misleading one.

The brand message and the AI findings are not part of the score. They come from model output, and AI answers change between runs.

Our own site scores 89 out of 100. The report shows where the points went: key pages have three H1 headings, one of them empty; pages built from one template share a main heading; and one row of links on the about page is too small to tap comfortably. Flozi scores 94, and lost points only for form fields that have placeholder text and no label.

Asking ChatGPT what a buyer would ask

The last section of the report asks ChatGPT, with live web search, questions a buyer would type, and records whether the business is named.

The questions are not keywords we pick. They are built from what the site itself says: the places it names, the services, the platforms and the sectors. This comes from a test we ran in September with 13 runs on ChatGPT. Neue World was recommended when a question combined a platform and a place we name outright (Webflow with Dubai, Abu Dhabi, the UAE or MENA). It was not recommended for a generic "web design agency Dubai" question, or for places and platforms we don't name.

Each analysis asks four buyer questions: the core service and place, the core plus the most distinctive detail, several details together, and the same need in a buyer's own words without any keywords. It also asks "what is this business?" and compares ChatGPT's answer with the site.

On flozi.io:

  • "ai visibility platform": not named.
  • "ai visibility platform for Webflow": named, 3rd.
  • "ai visibility platform for Webflow and Shopify": named, 5th.
  • The same need in a buyer's own words: not named.

Across three runs, the Webflow question named Flozi every time and the general question never did. The site calls Flozi an "AI Visibility Platform", while ChatGPT calls it an "AI-powered content optimization platform". The fix the report suggests follows from that: put "Webflow" next to "AI visibility platform" wherever the site says what it is.

On neue.world, ChatGPT named us for "Webflow agency in Dubai for GovTech" (1st), "Webflow agency Dubai" (2nd), and "ai design agency Dubai" (3rd). We were not named when a founder described a climate tech startup in their own words. ChatGPT also calls us a "design intelligence agency", a phrase that appears on one of our key pages but not in our main message.

AI answers change from run to run, so the report shows each question as asked once and labels the result as a signal, not a rate. The questions themselves can change slightly between analyses, because the details picked from the site can change too.

What it does not do

  • It reads public pages only. It has no access to Search Console, analytics, or rankings.
  • It reads about key pages on a phone screen, not the whole site. Every result says how many pages it is based on.
  • It never submits forms, logs in, or changes anything. Form checks look at how a form is built, not whether it sends.
  • It asks ChatGPT only. Other AI assistants are not checked yet.
  • The fixes are directions, not rewritten copy.

Try it

The analysis is free, with no account and no card. Enter a website and an email at analyse.neue.world, and the report opens on its own page in a few minutes. A site analysed in the last 7 days returns the saved report straight away.