Runs on your machine v0.1.0 available

A crawler, and the diagnostics around it.

Consuela walks your whole site the way a search engine does, then audits every page for the issues that affect indexing and ranking. Everything stays on your machine — no upload, no account, no crawl credits to count.

v0.1.0The first public release Runs on your machineNo upload, no account Windows · macOS · LinuxSingle binary
Consuela acme.com
9,214 rows · 142 URL/s Export
Critical 38 Warning 116 Info 640 Pass 8,420
Address Status Title 1 Time
acme.com / 200 Acme — Home 84 ms
acme.com /blog/old-post-redirect 301 41 ms
acme.com /blog/technical-seo-audit-checklist 200 SEO audit 55 ms
acme.com /products/enterprise-widget 200 Products 92 ms
acme.com /products/widget/pro-pricing 200 Pricing 96 ms
acme.com /pricing?plan=enterprise 200 Pricing 102 ms
acme.com /about/team 200 About us 67 ms
acme.com /careers/senior-engineer 200 Careers 73 ms
acme.com /docs/getting-started 200 Documentation 61 ms
acme.com /docs/legacy-api-v1 404 38 ms
acme.com /help/contact-support 200 Help center 88 ms
acme.com /blog/2025/seo-audit 200 SEO audit 79 ms
acme.com /partners/integration-guide 200 Partners 71 ms
acme.com /press/product-launch-announcement 200 Press 68 ms
acme.com /support/kb/server-error 500 3011 ms
9,214 crawled · 64s elapsed · 142 URL/s · Complete
What it does

Built for the work that actually moves rankings

Consuela is not a longer checklist. It is a crawler that turns a site into data you can query, rank by impact, and plug into the systems you already run.

Critical 38
Warning 116
Notice 640
Pass 8,420
Issues ranked by impact Every issue is scored by severity so you fix what blocks indexing and traffic first, not whatever happens to appear first in a list.
Source HTML<div id="app"></div>
Rendered DOM<h1>Acme</h1>
<p>Enterprise widgets …</p>
Crawl what the crawler sees Headless Chrome renders the page, so SPAs, lazy-loaded content, and client-side routing are audited the way a modern search engine sees them.
Build
Tests
Crawl
Deploy
3 critical
CI-native from day one Run the same binary in a pipeline. Fail on critical or warning with JUnit XML output, so a regression never makes it to production twice.
>SELECT url, status FROM pages WHERE status >= 400
urlstatus
/legacy404
/admin500
Query your crawl with SQL The crawl is a SQLite file on disk. Slice it by status, depth, section, or change over time with the tools you already know.
Local first

Some sites you are not allowed to send to a third party

Consuela runs on your machine. The crawl file is yours to keep, the concurrency and per-host rate limits are yours to set, and nothing is uploaded.

$ consuela https://acme.com --concurrency 8 --db acme.db
crawling https://acme.com (max 500 urls)...
9,214 URLs · 64s elapsed
→ acme.db (84 MB)
$ consuela https://acme.com --format junit --fail-on warning
3 check(s) at or above 'Warning' threshold