Open source SEO audit tools: what each project checks, read from its own repository
Lighthouse, Unlighthouse, SEOnaut, LibreCrawl, SiteOne Crawler and two Python options, matched to the audit job each one does best.
Published by AI Knows Us · Updated 21 October 2026
An open source SEO audit uses free software whose code you can read, run on your own machine and change. The strongest options today are Google's Lighthouse for page level checks, Unlighthouse to run Lighthouse across a whole site, and full site crawlers such as SEOnaut, LibreCrawl and SiteOne Crawler for broken links, redirects, titles, headings and duplicate tags. Python users can add advertools or python-seo-analyzer. Each project below was read from its own GitHub repository on 22 October 2026, and every one of them is under active development. Pick by the job: one page, every page, or data you want to analyse yourself.
Why teams choose open source for an audit
A paid crawler is a fine purchase, but an open source audit tool has three practical strengths.
- No crawl limit set by a price plan. The limit is your own hardware and your patience. A large site can be crawled as often as you like.
- The checks are visible. When a tool flags a page, you can read the rule in the code and see exactly why. That makes a finding easy to defend to a developer.
- It fits into a build pipeline. Several of these tools run from the command line and return an exit code, so a release can be stopped when a page breaks a rule.
The trade is set up time. You install the tool, sometimes with Docker or Node, and you read the results yourself rather than in a polished dashboard.
The tools, read from their repositories
| Project | Licence | What it does best | How you run it |
|---|---|---|---|
| Lighthouse (GoogleChrome/lighthouse) | Apache 2.0 | Page level SEO, performance, accessibility and best practice checks | Chrome DevTools panel, or the Node CLI |
| Lighthouse CI | Apache 2.0 | Running Lighthouse on every commit and asserting against the results | CI pipeline |
| Unlighthouse | MIT | Lighthouse across an entire site, with a browsable report | One npx command |
| SEOnaut | MIT | Full site crawl with issues sorted by severity | Docker, with a MySQL database |
| LibreCrawl | MIT | A desktop style crawler in the browser, with JavaScript rendering and exports | Startup script or Docker |
| SiteOne Crawler | MIT | A fast single binary crawler with an HTML audit report and a CI quality gate | Binary for Windows, macOS and Linux |
| advertools | MIT | Crawling, robots.txt testing and sitemap downloads as Python data | Python library |
| python-seo-analyzer | BSD style | A quick crawl with word counts and technical warnings | pip or Docker |
Lighthouse: the page level standard
Lighthouse is built into Chrome DevTools under the Lighthouse panel, so the simplest audit is to open DevTools and generate a report. For repeat work, install the CLI with npm install -g lighthouse. Its README says it needs Node 22 or later. To run only the SEO checks, add --only-categories=seo. The SEO category is a short list of crawlability and markup checks, and it is the right first pass on a template before you look at the whole site. We walk through each of those checks in the Lighthouse SEO guide.
npm install -g lighthouse
lighthouse https://www.example.com/ --only-categories=seo,performance
Lighthouse CI takes the same engine into your deployment process. Its repository describes it as a suite for running, saving, retrieving and asserting against Lighthouse results, which means a pull request can fail when a page loses its title or its meta description.
Unlighthouse: Lighthouse on every page
Lighthouse looks at one URL at a time. Unlighthouse scans an entire site with Lighthouse and gives you a report you can sort and filter. Its README lists a one line start, npx unlighthouse --site followed by your domain, and Node 22.18.0 or later. Use it when you need to know which templates fail, not only which page.
SEOnaut: a self hosted audit with severity levels
SEOnaut calls itself an open source SEO audit tool. It crawls the site and sorts issues into three levels: critical, high and low. Its README names broken links, redirect issues (temporary, permanent and loops), missing or duplicate meta tags and incorrectly ordered headings among the checks. It is written in Go, stores data in MySQL, and the recommended setup is Docker Compose. A hosted version is offered at seonaut.org if you want to try it before installing.
LibreCrawl: the crawler for people who want a desktop feel
LibreCrawl runs as a web application on your machine. Its feature list includes JavaScript rendering for sites built with React, Vue or Angular, title, meta description and heading extraction, internal and external link mapping, PageSpeed Insights integration for Core Web Vitals, automated issue detection, and exports to CSV, Excel, JSON or XML. Its README states it will always be free and open source.
SiteOne Crawler: one binary, a report and a quality gate
SiteOne Crawler ships as a single native binary for Windows, macOS and Linux, now rewritten in Rust. It produces an interactive HTML audit report with quality scores from 0 to 10 across categories including SEO, and finds 404s and redirects. Its --ci flag acts as a quality gate: by default it fails a build when the overall score or any of the performance, SEO, security and best practice scores falls below 5.0, or when any 404 or 5xx error appears. It can also generate sitemaps and export a site to Markdown.
advertools and python-seo-analyzer: audits as data
advertools is a Python library rather than an app. It includes an SEO crawler built on Scrapy, a function to test which URLs a robots.txt file blocks, and a function to download XML sitemaps. Everything arrives as a table, so you can join crawl data with Search Console exports and answer your own questions. python-seo-analyzer is installed with pip install pyseoanalyzer and crawls a site, counts words and warns of technical issues. Its optional AI analysis needs an API key from a model provider.
A practical open source audit, in five steps
- Crawl the whole site with SEOnaut, LibreCrawl or SiteOne Crawler. Export every URL with its status code, title, meta description, canonical and H1.
- Fix the errors first: 404s linked from your own pages, redirect chains and loops, and pages that should be indexable but carry noindex.
- Find duplicates: repeated titles and meta descriptions usually point to a template problem, so fix the template rather than each page.
- Run Lighthouse on one page per template, or Unlighthouse on the whole site, for performance and markup.
- Check against Google's own data. A crawler shows what is on your site. Search Console shows what Google indexed. Compare the two lists.
When the free stack runs out, usually because you need scheduled crawls with a shared dashboard for a team, a paid crawler earns its fee. Our comparison of technical SEO tools and audit software sets out where each paid plan stops.
Questions about open source SEO audit tools
Is there a free, open source alternative to Screaming Frog?
Yes. LibreCrawl describes itself as a free alternative to paid desktop crawlers, and SEOnaut and SiteOne Crawler both crawl a full site and report issues. Each needs a little more set up than a paid tool.
Can an open source tool audit a JavaScript site?
Yes. LibreCrawl lists JavaScript rendering for React, Vue and Angular sites, and Lighthouse loads the page in Chrome, so it sees the rendered result.
Do I need to know how to code?
Not for Lighthouse in DevTools, Unlighthouse or the SiteOne binary. advertools and python-seo-analyzer suit people comfortable with Python.
Can I run an audit on every release?
Yes. Lighthouse CI asserts against results on each commit, and SiteOne Crawler's --ci mode returns a failing exit code when your thresholds are not met.
Is the hosted version of SEOnaut the same as the open source one?
The SEOnaut README points to seonaut.org as a hosted version of the same tool. Self hosting keeps the crawl data on your own server.
The audit that reads the answer, not the page
Every tool above inspects your HTML, which is exactly right for search engines that rank pages. A buyer who asks ChatGPT or Gemini which supplier to use gets a written answer instead, and that answer can leave out a site that passes every check here. If you would rather have that answer measured for you across the main assistants, that is the work AI Knows Us does.