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.
One crawl — testing, intelligence and competitor analysis together.
The bot uses your site like a person — clicking, filling forms, trying everything.
What it is built with, how strong and how fast it is — at a glance.
Your own backlink index and Domain Authority metric — no keys, from your own data.
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.
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.
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.
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.
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.
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.
When it crawls a site the bot tells you more than what is broken — authority, performance, technology and hosting, all in one place.
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.
Open it, paste a link, hit start. The bot does the rest.
One URL for a single site, or several competitor domains to build the index. The interface opens in your browser.
A real browser walks the site — clicking, testing forms, collecting links, catching errors.
A clean HTML report or an interactive index dashboard. With screenshots and raw data.
Authority is computed from links we crawled ourselves — no third party involved.
Tech detection, link graph and index all work instantly. No sign-up.
Respects robots.txt, identifies itself honestly, crawls politely.
Runs on your own machine, on your own terms. No terminal knowledge needed.
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.
If your question is not here, the README inside the download answers it in more depth.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Download it free and run it on your own machine. First report in minutes — no sign-up, no card.