Automation and scraping · Edition No. 16 · 10 Sep 2026

StJudeWasHere/seonaut

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

← Automation and scrapingRead the whole edition →
10

StJudeWasHere/seonaut

💎 hidden gem

779 stars · MIT · no releases at all; 909 commits; commit history unreachable (robots)

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

Repo detailsthe review · specs · pros & cons · install

What it is

SEONaut is a self-hosted crawler with a web interface. It walks your site page by page and reports broken links, redirect chains, duplicate titles and descriptions, and problems with canonical and hreflang tags.What it is good for. Anyone with more than about twenty pages, which is the point where you can no longer keep them in your head. It has projects, so you can track your own site and check a competitor's separately, and it keeps crawl history so you can see whether a problem is getting better. SiteOne Crawler from Edition 7 does a one-off audit from the command line; this one is the version you keep, with a history and a screen. For a bilingual site there is a specific reason to care. Wrong hreflang tags — the tags that tell a search engine which page is the Russian one — are easy to get wrong and impossible to notice by eye.

Stars779
LicenceMIT
Latestno releases at all; 909 commits; commit history unreachable (robots)checked 7 Sep 2026
Written inGo
Good
  • MIT, self-hosted, no paid tier and no crawl limits. Every commercial version of this charges by the page.
  • It keeps history per project, so you can prove a fix worked instead of guessing.
  • It catches the bilingual problems specifically: canonical tags and hreflang pairs.
Watch for
  • It needs MySQL 8.4, which is a database you probably do not run yet. That is an extra thing on the box.
  • 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

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.