Getting found · Edition No. 16 · 10 Sep 2026

StJudeWasHere/seonaut

Crawls a whole site and lists the technical problems it found.

← Getting foundRead the whole edition →
10

StJudeWasHere/seonaut

💎 hidden gem
SEOnaut: audit a whole site. Crawls a site and lists the problems it found.

779 stars · MIT · no releases at all; 909 commits; commit history unreachable (robots) · Track this in Rising ↗

Self-hosted SEO auditing and reporting tool in Go — crawls a site and dashboards the technical issues.

Verified25 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive90

Last code pushed 8 Oct 2026, 19 days before this check.

Releases—

No releases published on GitHub; the code date above is the one to trust.

Maturity70

Public since March 2022, a little over 4 years.

Adoption58

832 stars and 143 forks.

Activity25

4 commits and 2 new issues in the last 90 days.

Community40

9 contributors. 1 pull requests merged in 90 days. A small team carries it.

Security40

No security policy file says how to report a problem. No published security advisories.

Licence MIT | no releases; ships as a container: permissive: use it for anything, keep the notice
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 25 Oct 2026 from the repository on GitHub. Covered in Edition 16.

▶Repo detailsthe review · specs · pros & cons · install

What it does

SEOnaut is a web application written in Go that you run yourself. It walks a site page by page and reports what it found, sorted into critical, high and low severity. It looks for broken links, redirect problems including temporary redirects, permanent redirects and loops, missing or duplicated title and description tags, and headings used in the wrong order. It keeps separate projects, so one site can be tracked over time while another is checked once, and it stores the history of each crawl so a fix can be proved rather than hoped for. Results are shown on a dashboard with charts. It stores its data in MySQL, and the example setup uses version 8.4. It publishes no tagged releases, so the thing you track is the container image. It serves plain unencrypted HTTP on port 9000 by default, and the project says to put a reverse proxy in front of it for HTTPS.

Why it matters

Who it suits. It fits a site with more than about twenty pages, which is the point where nobody can keep them in their head any more. It also fits anyone running several sites, because each one gets its own project and its own history. The history is the part a one-off command-line audit cannot give you. Skip it if a site is five pages long, and skip it if adding a MySQL database to the machine is more work than the problem is worth.

Verdict. Worth an afternoon if a site matters for search traffic, and the no-page-limit part is the real argument — every commercial version of this charges by the page. Two things to fix before it is reachable from outside. The example setup ships with the user seonaut and the password seonaut, and the default port serves plain HTTP. Change the first and put a proxy in front of the second. janreges/siteone-crawler is the lighter option when a one-off audit is all that is wanted and no database is welcome.

Stars779
LicenceMIT
Latestno releases at all; 909 commits; commit history unreachable (robots)checked 7 Sep 2026
Written inGo
Summary (Key Points)from the README
Key features
  • Severity-ranked audit: Issues are grouped into three levels: critical, high, and low.
  • Broken link detection: Finds broken links that can cause 404 errors.
  • Redirect analysis: Flags temporary and permanent redirects as well as redirect loops.
  • Meta tag checks: Detects missing or duplicate meta tags.
  • Heading order checks: Identifies incorrectly ordered headings.
  • Interactive dashboard: Uses Apache ECharts to present results in an interactive view.
  • Hosted option: A hosted version is available at seonaut.org.
  • MIT license: Open-source under the MIT license.
Ways to install
Platform or methodWhat it needsEffort
Docker ComposeDocker and a docker-compose.yml file that defines the database and appLow, uses default settings that can be overridden with environment variables
Docker from source codeDocker, Git, and a clone of the repositoryLow to moderate, requires cloning and building with docker compose
Manual buildA configured MySQL database and a manual compile of the Go applicationHigher, the README advises against it in favor of the Docker files
Important
  • Recommended setup: The README recommends the provided Docker files because they remove manual configuration.
  • Unencrypted by default: SEOnaut runs on port 9000 over plain HTTP, so HTTPS through a reverse proxy is advised.
  • Database required: The Docker route needs a MySQL database, which the compose setup supplies.
  • Further setup details: Full installation and configuration steps are in the INSTALL.md file, which the README points to rather than repeating.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Good
  • MIT, runs on a machine you control, no paid tier and no crawl limits. Commercial versions of this charge by the page.
  • It keeps history per project, so a fix can be proved instead of guessed at.
  • Findings are grouped into critical, high and low, so the list arrives in a usable order.
Watch for
  • It needs MySQL, which is an extra thing to install and look after. The example setup uses version 8.4.
  • The example setup ships with the user seonaut and the password seonaut. Change both before it is reachable from outside.
  • No tagged releases at all. You track the container image, and you cannot pin a version by release number.
Install
docker pull ghcr.io/stjudewashere/seonaut:latest
Screenshots
StJudeWasHere/seonaut: GitHub preview cardStJudeWasHere/seonaut: Screenshot 1

On Stack Radar: Marketing & Growth › SEO & Organic Search › Technical SEO.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.