# I measured 34 well-known SaaS sites for something nobody checks: can an AI read them?

> Source: <https://dev.to/saaspet/i-measured-34-well-known-saas-sites-for-something-nobody-checks-can-an-ai-read-them-973>
> Published: 2026-11-13 19:04:01+00:00

Your competitor is not ranking better than you. They are just readable, and you are not.

I spent a week building something unglamorous: a checker that fetches a site the way AI crawlers do, and reports what a machine actually gets. I ran it against 34 well-known SaaS sites. The median passed 11 of 15 measurements. Two reached 14. Nobody reached the top.

Here is what actually fails, in order of how common it is.

The markup that says which paragraph answers which question. This is the one almost everybody skips. You have a pricing page that answers "how much does it cost" in a paragraph, and nothing in your markup tells a machine that this paragraph is the answer to that question. So the assistant does not quote you. It takes your competitor's FAQ block, which does say so, and quotes that instead. The fix is adding the structured data you already have the content for.

The small discovery file. Answer engines look for a short, quotable summary of what a site is before they parse anything else. Most sites do not have it. The ones that do often leave dead links inside it, which is worse than not having it at all.

The price as an image. If your pricing lives in a widget or a gradient card and the number only exists after JavaScript runs, a crawler sees a blank space where the number should be. It will then either omit your price or invent one. I have seen an assistant invent "over 100 prop firms and a $10,000 median" about a site that published neither.

Robots.txt written years ago. Sometimes by an SEO plugin that blocks the newest agents by default. A crawler that gets a 403 is not a crawler that ranks you lower. It is a crawler that never saw you.

Now the part I got wrong, because it is instructive.

One domain scored perfect on the first run and failed two crawler checks on the next. My code was counting a rate limit as a content failure. A 429 means the site refused me that second, not that it cannot be read. Every "AI visibility audit" that runs once and prints a score has this bug somewhere, including commercial ones. If a tool cannot reproduce its own number ten minutes later, the number is not a measurement.

Why this matters more than it sounds: a model that cannot parse your page does not bounce. It does not appear in your analytics. It answers from whichever page did stay readable, and you find out months later when a prospect says they never heard of you.

I put the check online. It is free, no account, ten seconds: [citeai.tech](https://citeai.tech)

It gives you one number out of a hundred. The first fifteen measurements are machine-side and worth 90 points. The sixteenth asks several assistants real buyer questions with no browsing, and records whether any of them names you. That one costs model calls, so it is the paid part, nineteen dollars, and it is also the only one that answers the question you actually care about.

Two practical things before you go check your own site.

Run it twice, on different days. If the number moves, you are looking at a WAF, not at your content.

And do not wait for a perfect score. Fourteen out of fifteen is currently the best a well-known site achieves. The point is not the badge. The point is finding out which of the five things a machine needs is the one you never did.
