Site QA + web intelligence · one tool

Test your site.
See your rivals.

Give it one link — the bot crawls your site, finds every bug, measures its stack and authority, then builds your own backlink index. The core of Ahrefs, running on a single machine.

No API keys · no third parties · runs on your own machine
testerbot · index
TesterBot Index dashboard — Domain Authority ranking and backlinks
DA 100 our own Domain
Authority metric
7,000+ technologies detected
WCAG accessibility audit
our own PageRank engine
respects robots.txt
Three jobs, one bot

Everything you need to know about your site

One crawl — testing, intelligence and competitor analysis together.

Finds the bugs

The bot uses your site like a person — clicking, filling forms, trying everything.

  • JavaScript exceptions, console errors
  • Broken links, 404/500s, images that fail
  • Dead buttons, forms that do nothing
  • Mobile overflow, accessibility (axe-core)

Reads the site

What it is built with, how strong and how fast it is — at a glance.

  • Domain authority (0–10)
  • Real-user performance — LCP, INP, CLS
  • Technology stack (WordPress, React…)
  • Hosting, CDN, server

Shows your rivals

Your own backlink index and Domain Authority metric — no keys, from your own data.

  • Domain Authority ranking (1–100)
  • Who links to whom (backlinks)
  • Link Intersect — backlink opportunities
  • A growing index (SQLite)
The full list

What a single crawl actually checks

Five areas, one pass over the site. Every finding names the page it came from and the element that caused it.

Most teams run an accessibility checker, a performance tool and an SEO crawler separately, then spend the afternoon working out why the three of them disagree about which pages exist. TesterBot crawls once and runs every check against that one shared view of the site, so a finding always points at a page the crawler really reached — and the counts add up.

Accessibility

A full axe-core pass on every crawled page, plus the checks axe cannot do alone: keyboard-only traversal of each interactive element, focus order against visual order, and contrast measured from the colours the browser actually painted rather than the values written in the stylesheet.

  • missing alt text
  • contrast below 4.5:1
  • links with no readable text
  • form fields with no label
  • focus order
  • skipped heading levels
  • ARIA role misuse
  • keyboard traps
  • duplicate landmarks

Things that are simply broken

The bot uses the site the way a person would — it clicks the buttons, submits the forms and follows the links — and records everything that fails while it does. This is the part a static crawler cannot do, because most of these problems only appear after JavaScript has run.

  • JavaScript exceptions
  • console errors
  • 404 and 500 responses
  • broken links
  • images that fail to load
  • buttons that do nothing
  • forms that silently discard data
  • validation that only exists in the browser

Performance and layout

Measured in a real Chromium instance, not simulated. Transfer weight per asset, the render-blocking chain in the head, images served far larger than the box they are drawn in, and the slowest response met anywhere on the crawl. Each page is also re-rendered at phone width to catch layout that overflows.

  • uncompressed images
  • render-blocking scripts
  • oversized assets
  • slow responses
  • horizontal overflow on mobile
  • LCP, INP and CLS

Security and exposure

Response headers, cookie flags, mixed content, and the files that reach production by accident — an .env with live credentials in it, a .git folder, a database backup. It also flags user input that is written back into the page without escaping.

  • missing Content-Security-Policy
  • cookies without Secure or HttpOnly
  • mixed content
  • exposed .env, .git and backups
  • unescaped user input
  • cross-origin form targets

SEO, structure and language

Titles, meta descriptions, canonicals, heading hierarchy, and whether the sitemap and robots file agree with each other and with what the crawler found. TesterBot also builds the internal link graph and scores it with PageRank, which surfaces the structural problems no single-page check can see — orphan pages, dead ends, and the pages the rest of the site is quietly pointing at.

  • duplicate titles
  • missing descriptions
  • canonical pointing at a 404
  • orphan pages
  • sitemap disagreement
  • internal PageRank
  • missing lang attribute
  • placeholder and debug text left in production
Site intelligence

The full picture, on top of every report

When it crawls a site the bot tells you more than what is broken — authority, performance, technology and hosting, all in one place.

  • Google’s own performance data (CrUX)
  • Link graph + your strongest pages
  • Clean HTML report + screenshots
testerbot · QA report
TesterBot QA report — site intelligence and findings
testerbot · Link Intersect
TesterBot Index — Domain Authority and backlink discovery
Link Intersect

Domains that link to your rivals — but not to you

Feed a few competitor sites into the index — the bot finds the domains linking to them and not to you. Those are the most valuable backlinks you can realistically win. Ahrefs’ flagship feature, from your own data.

  • Ranked by how many rivals they link to
  • Each domain’s own authority score
  • Follow / nofollow separated
How it works

Three steps, no terminal

Open it, paste a link, hit start. The bot does the rest.

1

Give it a link

One URL for a single site, or several competitor domains to build the index. The interface opens in your browser.

2

The bot crawls

A real browser walks the site — clicking, testing forms, collecting links, catching errors.

3

Get the result

A clean HTML report or an interactive index dashboard. With screenshots and raw data.

Why it is different

We do not rent the data — we build it

Your own data

Authority is computed from links we crawled ourselves — no third party involved.

No keys required

Tech detection, link graph and index all work instantly. No sign-up.

A good bot

Respects robots.txt, identifies itself honestly, crawls politely.

Yours to run

Runs on your own machine, on your own terms. No terminal knowledge needed.

See it first

A real report, before you download anything

This is the actual output — not a mockup. We built a small shop site, broke it on purpose, and pointed the bot at it, so one page can show every kind of problem it catches.

5
Critical
8
High
8
Medium
14
Low
6
Info
Pages 10 Took 49s Controls clicked 3 Forms tested 4 Findings 41
Open the sample report
Every finding opens up — the failing element, a screenshot, and what to change. This is the same file the tool writes to your own machine.
Questions

The things people ask first

If your question is not here, the README inside the download answers it in more depth.

Is TesterBot really free?

Yes. It is open source on GitHub under the MIT licence, it runs entirely on your own machine, and there is no paid tier waiting behind a feature you need. There is no server to pay for, because there is no server — which is also why nothing about your site is uploaded anywhere.

How is this different from Lighthouse?

Lighthouse audits one page at a time and scores it. TesterBot crawls the whole site, keeps one shared view of it, and adds the checks Lighthouse does not cover: security headers and exposed files, broken internal links, forms that silently fail, dead controls, language and content problems, and an internal link graph scored with PageRank.

The output is different too — one portable HTML report for the entire crawl, rather than a score per page.

Does it work on a JavaScript site?

Yes. Every page is loaded in a real Chromium instance through Playwright and inspected after the JavaScript has run, so React, Vue, Svelte and Next.js sites are measured the way a visitor actually receives them. Most of the problems TesterBot finds do not exist in the HTML the server sent.

Will it change anything on my site?

No. It never clicks a control labelled delete, pay, or log out, and it never follows a link off the domain you named. Forms are submitted only with obviously fake test data, and only when you leave that on; --no-forms turns it off entirely.

Point it at sites you own or have written permission to test.

Can it audit pages behind a login?

Yes. Put a test account in the config file and TesterBot signs in before it starts crawling, then covers the pages only your logged-in users ever see. The credentials stay in that file on your machine.

What do I need installed?

Python 3.9 or newer. The installer creates a virtual environment, installs the dependencies and fetches the Chromium build Playwright needs — nothing is installed system-wide. It runs on macOS, Linux and Windows.

How long does a run take?

Roughly four to six seconds per page, most of it spent waiting for the site itself. The ten-page sample run above finished in 49 seconds; a fifty-page crawl usually takes three to five minutes.

Can I run it in a build pipeline?

Yes. --fail-on critical fails the build whenever a problem of that severity exists. On a site that already has known issues that is too strict, so there is a gentler rule: give it the previous run with --baseline and add --fail-on-new high, and the build fails only when it introduced something.

Either way the HTML report can be kept as a build artifact.

Can I compare two runs?

Yes, and this is the part people end up using most. Point TesterBot at an earlier report with --baseline and it prints what was fixed, what is new, what only moved to another page, and what got re-graded — then writes a diff.html beside the report.

Every finding carries a stable identity, so a problem disappearing from the list is evidence the fix landed rather than a guess.

Is there a version without a terminal?

Yes. Run ./setup-app.sh and you get a desktop window with a field for the URL and a button. It runs the same engine and writes the same report.

Try the bot today

Download it free and run it on your own machine. First report in minutes — no sign-up, no card.

Hosted cloud version coming soon — today it runs locally.