Free technical SEO audit
A 24-factor technical and LLM-visibility audit of any site. It fetches your pages twice — once as raw HTML, once after JavaScript runs — and scores what it finds against a published specification, citing a source for every finding.
What it checks
Each section carries a fixed weight in the overall score. The percentages below are those weights — not a guess at what matters.
robots.txt, XML sitemaps, HTTP status codes, redirect chains, canonical tags, meta robots, and whether each sampled page is technically eligible to be indexed at all.
Structured data against a fixed schema set, and hreflang — including whether the language alternates you declare actually resolve.
Title tags, meta descriptions, the H1 and heading order, and internal linking — checked per page, then reconciled across pages for duplicates.
Raw content availability, entity clarity, content structure, answer extractability and freshness: whether a model can lift an answer out of the page.
Whether GPTBot, ClaudeBot, PerplexityBot and the rest are allowed in robots.txt, whether your content survives with JavaScript disabled, and llms.txt.
Core Web Vitals from real-user field data where Google has it, falling back to a lab pass — reported per page, never as one site-wide number.
Two further factors are reported as advisory and never scored, because the evidence behind them cannot carry a score.
How it works
About eight minutes end to end. Nothing is sampled before the gate clears.
Execution starts at the entry gate. If robots.txt cannot be read, the audit stops and says so rather than reporting the rest as healthy. A 404 passes the gate — Google treats it as no restrictions, and the opposite reading is the most common false positive in audit tooling.
It harvests the links on your homepage, drops anything robots.txt disallows, groups by URL pattern, and takes one page per group before any group gets a second. Target slate: homepage, service pages, product, pricing, category, two blog templates, author, about.
Once as raw HTML, once after JavaScript has run. The difference between the two is the finding: it is how the audit knows whether your content exists for a crawler that does not execute scripts.
Page-level checks run, then cross-page ones — duplicate titles and H1s, canonical clusters, schema @id stability. An unfilled slot in the sample is reported with its reason, never padded with an unrelated page.
Why trust it
The difference between a tool you can send to a client and one you cannot is what it does when it does not know.
Each factor and each child finding carries a reference: the publisher, the document, and what that source establishes for that specific finding. A finding whose only support is industry commentary is automatically capped from FAIL to WARN, with the reason stated.
A missing API key, a page it was not allowed to fetch, a browser-only observation it could not make — each is recorded as NOT_TESTABLE with a reason code, never as a defect in your site. A thin report says why it is thin.
Where the checklist names a factor the specification gives no rules for, the audit displays it and declines to score it. No threshold on any finding is made up to fill a gap.
Audits run without a browser cannot observe what is visible without interaction — a collapsed accordion, an off-screen tab. Those checks report NOT_TESTABLE rather than guessing from the markup.
Questions
What it looks at, what it will not claim, and why a report sometimes says it could not tell.
How long does it take?
About eight minutes for a ten-page audit. The audit fetches each page, runs a performance pass against it, and scores 24 factors, so it is doing real work for that whole time rather than waiting. Keep the tab open.
How many pages does it look at?
Up to ten, chosen to cover different page types rather than the ten most linked. You can name specific pages instead if you would rather audit a particular set — up to ten of those too.
Do I need to add anything to my site?
No. The audit reads what is publicly available, the same way a search crawler would. There is no tag to install and no access to grant.
Does it respect robots.txt?
Yes, and it is strict about it. robots.txt is the entry gate: pages it disallows for Googlebot are excluded from the sample before anything is fetched. Being able to reach a page is not the same as being allowed to.
What happens if my robots.txt is broken?
By default the audit stops and reports BLOCKED rather than scoring the rest of the site as if it were fine. You can choose to carry on with the control-file checks instead — a robots rule cannot conceal the file being audited.
Why does part of my report say NOT_TESTABLE?
Because something the audit needed was not available — a key, a page it was not allowed to fetch, or an observation it could not make. That is recorded as a missing input with a reason code, never as a fault in your site. It is the difference between "this is wrong" and "I could not tell".
Is this the same as the AI visibility report?
No, and they answer different questions. The AI visibility report asks what ChatGPT and Perplexity say about a brand. This one asks whether your site is technically fit to be crawled, indexed and quoted in the first place. Run this one when the answer to the other is disappointing.