For my college course I built SiteScope (vikramyadav.me), a free technical SEO audit tool. You enter a site, it crawls every page it can reach, and it tells you what to fix first. No sign-up needed to run an audit. If you want, you can create an account to have your sites re-audited daily or weekly. Two things bugged me about free SEO checkers.
First, most test a single URL and hand back an unordered list. SiteScope follows internal links and the XML sitemap and checks every page it finds (up to 300 per audit). Then it ranks issues with one rule:
priority = severity × share of pages affected
A missing alt text on every page outranks a broken link on one page; a 5xx on half the site outranks both.
Second, a lot of sites load their content with JavaScript. SiteScope reads raw HTML, the way most AI crawlers do, so you can check whether your content needs JavaScript to show up. The tool itself uses no JavaScript framework. Every page, including the report, is server-rendered, because a tool that talks about JavaScript SEO should be readable by a crawler that runs none.
It also checks broken links, duplicate and near-duplicate pages (SimHash), the internal link graph (click depth, PageRank, orphan pages), titles, meta descriptions, H1s, canonicals, noindex and more. Reports download as PDF or JSON, and re-running an audit shows what was fixed and what is new since last time.
CF-Connecting-IP, but anyone hitting the server's IP directly could send that header with a new value each time. Now it only believes that header when the connection really comes from Cloudflare's IP ranges, and the limit lives in Postgres so a restart doesn't reset it.
Some things are still open: score-drop emails are waiting on an SMTP provider, and external link checks stop at 200 links per audit.
Try it at vikramyadav.me and see the code on GitHub. Feedback welcome!